diff --git a/milfs/LICENSE b/milfs/LICENSE
deleted file mode 100644
index 6b156fe..0000000
--- a/milfs/LICENSE
+++ /dev/null
@@ -1,675 +0,0 @@
-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/milfs/README.md b/milfs/README.md
deleted file mode 100644
index 3fec243..0000000
--- a/milfs/README.md
+++ /dev/null
@@ -1,76 +0,0 @@
-
- __ __ ___ ___ _______ _______
-| |_| || | | | | || |
-| || | | | | ___|| _____|
-| || | | | | |___ | |_____
-| || | | |___ | ___||_____ |
-| ||_|| || | | || | _____| |
-|_| |_||___| |_______||___| |_______|
-
-
-
-**DEFINICION**
-
-MILFS es una aplicación web para en la captura de datos de forma ágil y su
-posterior proceso, a priori se puede ver como un sistema apra la creación
-de formularios pero su poder va mas allá, MILFS maneja los campos de los
-campos de los formularios de manera semántica lo que prermite su posterior
-interpretación, por ejemplo:
-
-
-Si necesitamos recabar datos en un evento creamos un formulario con los campos:
-1. Nombres
-1. Email
-1. Telefono
-
-Estos campos solo los creamos la si no existen, luego para cada evento creamos
-un nuevo formulario y usamos los campos existentes y gracias a esto en la base
-de datos se almacenará siempre la información de "Nombres" en un campo "Nombres"
-lo cual le propporciona semántica a la información.
-
-MILFS también cuenta con campos especiales como el de mapa el cual proporciona
-la posibilidad de georeferenciar los datos capturados y luego exibirlos como un
-mapa.
-
-Si deseas capturar mucha información y almacenarla de manera estructurada o quieres
-reemplazar cientos de hojas electronicas por un sistema de datos, MILF es lo
-que estabas buscando.
-
-MILFS también cuenta con un subsistema de importación que te permite subir datos
-almacenados en un archivo CSV.
-
-Sabemos que aun nos falta mucha documentación para enseñar a manejar todo el poder
-de MILFS, Pero bueno, gracias por la ayuda ;-)
-
-
-**INSTALACION**
-
-1. Volcar la base de datos MYSQL desde el archivo milfs.sql.gz
-1. Mover el directorio milfs a /var/www/html/milfs o un lugar accesible.
-1. Modificar el archivo milfs/includes/datos.php con los datos de acceso a la base de datos MySQL.
-1. Mover el directorio images_secure a un lugar no accesible via web /var/www/images_secure Dar permiso de escritura al www-data sobre images_secure y su contenido.
-1. Ingresar por http al aplicativo eje. http://localhost/milfs
-1. Loguearse con usuario admin clave admin
-1. Actualizar los datos de la instución en el área de configuración. Especialmente un email válido
-1. Salir de la aplicación
-1. Solicitar cambio de la contraseña.
-1. Revisar las instrucciones enviadas al email.
-1. La instalación básica de MILFS tiene algunos campos creados y un formulario de muestra llamado contacto.
-
-
-
-**DISFRUTALO.**
-
-
- #====#
- |___|__\___
- | _ | |_ |}
- "(_)"" ""(_)"
-
-
-Twitter: @fredy_rivera
- @QWERTY.CO
-
-https://qwerty.co/milfs
-
-***
diff --git a/milfs/addon/brigada/.goutputstream-WQKM8X b/milfs/addon/brigada/.goutputstream-WQKM8X
deleted file mode 100644
index 521b5fa..0000000
--- a/milfs/addon/brigada/.goutputstream-WQKM8X
+++ /dev/null
@@ -1,510 +0,0 @@
-
-
- ";
-}
-
-$imagen = "
- ";
-
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tu navegador no soporta canvas.
-
-
-
-
-
-
-
-
-
-
Aviso
-
-
-
-
-
- Grabalo!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/brigada/funciones/funciones.php b/milfs/addon/brigada/funciones/funciones.php
deleted file mode 100644
index 31efbb4..0000000
--- a/milfs/addon/brigada/funciones/funciones.php
+++ /dev/null
@@ -1,91 +0,0 @@
-";
- $respuesta->addScript("javascript: document.getElementById('imagen').value= '$imagen' ;");
- $respuesta->addAssign("aviso","innerHTML","$preview");
- return $respuesta;
-
-}
-$xajax->registerFunction("brigadistas_grabar_imagen");
-
-function brigadistas_grabar($formulario) {
-
- $identificador = $formulario['identificador'];
- $control = md5("$identificador");
- $data = $formulario['debugConsole'];
- $imagen= grabar_imagen($data,$control);
- $texto_url = urlencode("#BrigadaDigital");
- $uri = urlencode("$_SESSION[url]/images/secure/?file=600/$imagen");
- $url ="https://twitter.com/share?url=$uri&text=$texto_url";
-
-
- //$respuesta->addScript("window.location.href ='$url';");
-
-
- $respuesta = new xajaxResponse('utf-8');
- //$identificador = $formulario['identificador'];
- $id_formulario = $formulario['formulario_id'];
- $campo_imagen = buscar_campo_tipo("$id_formulario","15");
- $formulario[$campo_imagen[0]][0] = $imagen;
- $empresa = remplacetas('form_id','id',"$id_formulario",'id_empresa',"") ;
- $id_empresa = $empresa[0];
-
- include_once("librerias/conex.php");
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-
- foreach($formulario as $campo=>$valor){
- if(is_array($valor)) {
- foreach($valor as $c=>$v){
- $consulta = "INSERT INTO form_datos ( timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( UNIX_TIMESTAMP(),'$_SESSION[id]','$id_empresa','$id_formulario','$ip' ,'$control', '$campo' , '".mysqli_real_escape_string($link, $v )."')
- ";
- $sql=mysqli_query($consulta,$link);
-
- // $campos .= " $campo // $valor // $c -> $v $consulta ";
- }
- }
- }
- $twitter = $formulario['498'][0];
- $_SESSION['logis'] = "$control";
- $_SESSION['mensaje'] = "$twitter";
- $preview = "
-
-
-
-
-
$twitter
-
-
-
-";
-$resultado = "$preview ";
-
- $respuesta->addAssign("aviso","innerHTML","$preview");
- //$respuesta->addAlert("$resultado");
- //$respuesta->addScript("javascript:location.reload(true);");
- return $respuesta;
-}
-$xajax->registerFunction("brigadistas_grabar");
-
-
-
-?>
\ No newline at end of file
diff --git a/milfs/addon/brigada/funciones/twitter/autoload.php b/milfs/addon/brigada/funciones/twitter/autoload.php
deleted file mode 100644
index cff03e8..0000000
--- a/milfs/addon/brigada/funciones/twitter/autoload.php
+++ /dev/null
@@ -1,36 +0,0 @@
-
\ No newline at end of file
diff --git a/milfs/addon/brigada/funciones/twitter/datos.php b/milfs/addon/brigada/funciones/twitter/datos.php
deleted file mode 100644
index 7b20e00..0000000
--- a/milfs/addon/brigada/funciones/twitter/datos.php
+++ /dev/null
@@ -1,31 +0,0 @@
-oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
-$request_token = $connection->oauth('oauth/request_token');
-//$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
-$user = $connection->get("account/verify_credentials");
-//print $user->screen_name;
-print_r($user);
-// Post Update
-
-$content = $connection->post('statuses/update', array('status' => 'Bonito dia'));
-print_r( $content);
-print_r($url);
-
-
-//print_r($request_token); //print connection contentsa
-
-
-?>
\ No newline at end of file
diff --git a/milfs/addon/brigada/funciones/twitter/hola.php b/milfs/addon/brigada/funciones/twitter/hola.php
deleted file mode 100644
index ba5b727..0000000
--- a/milfs/addon/brigada/funciones/twitter/hola.php
+++ /dev/null
@@ -1,65 +0,0 @@
-getAccessToken($_REQUEST['oauth_verifier']);
-$access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier']));
-
-
-/* Guardar el token de acceso. Normalmente, este token se guardará también en una base
- de datos para volver a ser utilizado en otras ocasiones. */
-$_SESSION['access_token'] = $access_token;
-
-/* Eliminar el token temporal de solicitud */
-unset($_SESSION['oauth_token']);
-unset($_SESSION['oauth_token_secret']);
-
-/* Si todo va bien, presentar al usuario la página principal "index.php" del servicio */
-//if (200 == $connection->http_code) {
- /* El usuario ha sido verificado */
- $_SESSION['status'] = 'verified';
- echo send_tweet($access_token);
- //}
-function base64_encode_image ($filename=string,$filetype=string) {
-if ($filename) {
-$imgbinary = fread(fopen($filename, "r"), filesize($filename));
-return base64_encode($imgbinary);
-}
-}
-
- function send_tweet($access_token) {
- $tweet = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
- $access_token['oauth_token'], $access_token['oauth_token_secret']);
- $nombre= $_SESSION['logis'].".png";
- $nombre = "$_SESSION[path_images_secure]/600/$nombre";
-
- $media1 = $tweet->upload('media/upload', array('media' => "$nombre"));
- $parameters = array('status' =>"$_SESSION[mensaje] #BrigadaDigital #CD2015 http://datos.labmde.org/jlogis",'media_ids' => implode(',', array($media1->media_id_string)),
-);
-
-$result = $tweet-> post('statuses/update', $parameters);
-$image = "$nombre";
-$base64 = base64_encode_image (''.$image,'png');
-$result = $tweet-> post('account/update_profile_image', array('image' => $base64.';type=image/jpg;filename='.$image));
-
- // $message = "Bonito dia $nombre";
- // $tweet->post('statuses/update', array('status' => "$message"));
- //
-}
-
-header('Location: https://twitter.com/hashtag/CD2015');
-
- // header('Location: ./index.php');
-//} else {
- //header('Location: ./clearsessions.php');
-//
diff --git a/milfs/addon/brigada/funciones/twitter/src/Config.php b/milfs/addon/brigada/funciones/twitter/src/Config.php
deleted file mode 100644
index 5815d61..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/Config.php
+++ /dev/null
@@ -1,64 +0,0 @@
-
- */
-class Config
-{
- /** @var int How long to wait for a response from the API */
- protected $timeout = 5;
- /** @var int how long to wait while connecting to the API */
- protected $connectionTimeout = 5;
- /**
- * Decode JSON Response as associative Array
- *
- * @see http://php.net/manual/en/function.json-decode.php
- *
- * @var bool
- */
- protected $decodeJsonAsArray = false;
- /** @var string User-Agent header */
- protected $userAgent = 'TwitterOAuth (+https://twitteroauth.com)';
- /** @var array Store proxy connection details */
- protected $proxy = [];
-
- /**
- * Set the connection and response timeouts.
- *
- * @param int $connectionTimeout
- * @param int $timeout
- */
- public function setTimeouts($connectionTimeout, $timeout)
- {
- $this->connectionTimeout = (int)$connectionTimeout;
- $this->timeout = (int)$timeout;
- }
-
- /**
- * @param bool $value
- */
- public function setDecodeJsonAsArray($value)
- {
- $this->decodeJsonAsArray = (bool)$value;
- }
-
- /**
- * @param string $userAgent
- */
- public function setUserAgent($userAgent)
- {
- $this->userAgent = (string)$userAgent;
- }
-
- /**
- * @param array $proxy
- */
- public function setProxy(array $proxy)
- {
- $this->proxy = $proxy;
- }
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/Consumer.php b/milfs/addon/brigada/funciones/twitter/src/Consumer.php
deleted file mode 100644
index ceaf1ef..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/Consumer.php
+++ /dev/null
@@ -1,36 +0,0 @@
-key = $key;
- $this->secret = $secret;
- $this->callbackUrl = $callbackUrl;
- }
-
- /**
- * @return string
- */
- public function __toString()
- {
- return "Consumer[key=$this->key,secret=$this->secret]";
- }
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/HmacSha1.php b/milfs/addon/brigada/funciones/twitter/src/HmacSha1.php
deleted file mode 100644
index d8cdab8..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/HmacSha1.php
+++ /dev/null
@@ -1,39 +0,0 @@
-getSignatureBaseString();
-
- $parts = [$consumer->secret, null !== $token ? $token->secret : ""];
-
- $parts = Util::urlencodeRfc3986($parts);
- $key = implode('&', $parts);
-
- return base64_encode(hash_hmac('sha1', $signatureBase, $key, true));
- }
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/Request.php b/milfs/addon/brigada/funciones/twitter/src/Request.php
deleted file mode 100644
index a60c23d..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/Request.php
+++ /dev/null
@@ -1,254 +0,0 @@
-parameters = $parameters;
- $this->httpMethod = $httpMethod;
- $this->httpUrl = $httpUrl;
- }
-
- /**
- * pretty much a helper function to set up the request
- *
- * @param Consumer $consumer
- * @param Token $token
- * @param string $httpMethod
- * @param string $httpUrl
- * @param array $parameters
- *
- * @return Request
- */
- public static function fromConsumerAndToken(
- Consumer $consumer,
- Token $token = null,
- $httpMethod,
- $httpUrl,
- array $parameters = []
- ) {
- $defaults = [
- "oauth_version" => Request::$version,
- "oauth_nonce" => Request::generateNonce(),
- "oauth_timestamp" => time(),
- "oauth_consumer_key" => $consumer->key
- ];
- if (null !== $token) {
- $defaults['oauth_token'] = $token->key;
- }
-
- $parameters = array_merge($defaults, $parameters);
-
- return new Request($httpMethod, $httpUrl, $parameters);
- }
-
- /**
- * @param string $name
- * @param string $value
- */
- public function setParameter($name, $value)
- {
- $this->parameters[$name] = $value;
- }
-
- /**
- * @param $name
- *
- * @return string|null
- */
- public function getParameter($name)
- {
- return isset($this->parameters[$name]) ? $this->parameters[$name] : null;
- }
-
- /**
- * @return array
- */
- public function getParameters()
- {
- return $this->parameters;
- }
-
- /**
- * @param $name
- */
- public function removeParameter($name)
- {
- unset($this->parameters[$name]);
- }
-
- /**
- * The request parameters, sorted and concatenated into a normalized string.
- *
- * @return string
- */
- public function getSignableParameters()
- {
- // Grab all parameters
- $params = $this->parameters;
-
- // Remove oauth_signature if present
- // Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.")
- if (isset($params['oauth_signature'])) {
- unset($params['oauth_signature']);
- }
-
- return Util::buildHttpQuery($params);
- }
-
- /**
- * Returns the base string of this request
- *
- * The base string defined as the method, the url
- * and the parameters (normalized), each urlencoded
- * and the concated with &.
- *
- * @return string
- */
- public function getSignatureBaseString()
- {
- $parts = [
- $this->getNormalizedHttpMethod(),
- $this->getNormalizedHttpUrl(),
- $this->getSignableParameters()
- ];
-
- $parts = Util::urlencodeRfc3986($parts);
-
- return implode('&', $parts);
- }
-
- /**
- * Returns the HTTP Method in uppercase
- *
- * @return string
- */
- public function getNormalizedHttpMethod()
- {
- return strtoupper($this->httpMethod);
- }
-
- /**
- * parses the url and rebuilds it to be
- * scheme://host/path
- *
- * @return string
- */
- public function getNormalizedHttpUrl()
- {
- $parts = parse_url($this->httpUrl);
-
- $scheme = $parts['scheme'];
- $host = strtolower($parts['host']);
- $path = $parts['path'];
-
- return "$scheme://$host$path";
- }
-
- /**
- * Builds a url usable for a GET request
- *
- * @return string
- */
- public function toUrl()
- {
- $postData = $this->toPostdata();
- $out = $this->getNormalizedHttpUrl();
- if ($postData) {
- $out .= '?' . $postData;
- }
- return $out;
- }
-
- /**
- * Builds the data one would send in a POST request
- *
- * @return string
- */
- public function toPostdata()
- {
- return Util::buildHttpQuery($this->parameters);
- }
-
- /**
- * Builds the Authorization: header
- *
- * @return string
- * @throws TwitterOAuthException
- */
- public function toHeader()
- {
- $first = true;
- $out = 'Authorization: OAuth';
- foreach ($this->parameters as $k => $v) {
- if (substr($k, 0, 5) != "oauth") {
- continue;
- }
- if (is_array($v)) {
- throw new TwitterOAuthException('Arrays not supported in headers');
- }
- $out .= ($first) ? ' ' : ', ';
- $out .= Util::urlencodeRfc3986($k) . '="' . Util::urlencodeRfc3986($v) . '"';
- $first = false;
- }
- return $out;
- }
-
- /**
- * @return string
- */
- public function __toString()
- {
- return $this->toUrl();
- }
-
- /**
- * @param SignatureMethod $signatureMethod
- * @param Consumer $consumer
- * @param Token $token
- */
- public function signRequest(SignatureMethod $signatureMethod, Consumer $consumer, Token $token = null)
- {
- $this->setParameter("oauth_signature_method", $signatureMethod->getName());
- $signature = $this->buildSignature($signatureMethod, $consumer, $token);
- $this->setParameter("oauth_signature", $signature);
- }
-
- /**
- * @param SignatureMethod $signatureMethod
- * @param Consumer $consumer
- * @param Token $token
- *
- * @return string
- */
- public function buildSignature(SignatureMethod $signatureMethod, Consumer $consumer, Token $token = null)
- {
- return $signatureMethod->buildSignature($this, $consumer, $token);
- }
-
- /**
- * @return string
- */
- public static function generateNonce()
- {
- return md5(microtime() . mt_rand());
- }
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/Response.php b/milfs/addon/brigada/funciones/twitter/src/Response.php
deleted file mode 100644
index cbab8ab..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/Response.php
+++ /dev/null
@@ -1,107 +0,0 @@
-
- */
-class Response
-{
- /** @var string|null API path from the most recent request */
- private $apiPath;
- /** @var int HTTP status code from the most recent request */
- private $httpCode = 0;
- /** @var array HTTP headers from the most recent request */
- private $headers = [];
- /** @var array|object Response body from the most recent request */
- private $body = [];
- /** @var array HTTP headers from the most recent request that start with X */
- private $xHeaders = [];
-
- /**
- * @param string $apiPath
- */
- public function setApiPath($apiPath)
- {
- $this->apiPath = $apiPath;
- }
-
- /**
- * @return string|null
- */
- public function getApiPath()
- {
- return $this->apiPath;
- }
-
- /**
- * @param array|object $body
- */
- public function setBody($body)
- {
- $this->body = $body;
- }
-
- /**
- * @return array|object|string
- */
- public function getBody()
- {
- return $this->body;
- }
-
- /**
- * @param int $httpCode
- */
- public function setHttpCode($httpCode)
- {
- $this->httpCode = $httpCode;
- }
-
- /**
- * @return int
- */
- public function getHttpCode()
- {
- return $this->httpCode;
- }
-
- /**
- * @param array $headers
- */
- public function setHeaders($headers)
- {
- foreach ($headers as $key => $value) {
- if (substr($key, 0, 1) == 'x') {
- $this->xHeaders[$key] = $value;
- }
- }
- $this->headers = $headers;
- }
-
- /**
- * @return array
- */
- public function getsHeaders()
- {
- return $this->headers;
- }
-
- /**
- * @param array $xHeaders
- */
- public function setXHeaders($xHeaders)
- {
- $this->xHeaders = $xHeaders;
- }
-
- /**
- * @return array
- */
- public function getXHeaders()
- {
- return $this->xHeaders;
- }
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/SignatureMethod.php b/milfs/addon/brigada/funciones/twitter/src/SignatureMethod.php
deleted file mode 100644
index 40fd51e..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/SignatureMethod.php
+++ /dev/null
@@ -1,66 +0,0 @@
-buildSignature($request, $consumer, $token);
-
- // Check for zero length, although unlikely here
- if (strlen($built) == 0 || strlen($signature) == 0) {
- return false;
- }
-
- if (strlen($built) != strlen($signature)) {
- return false;
- }
-
- // Avoid a timing leak with a (hopefully) time insensitive compare
- $result = 0;
- for ($i = 0; $i < strlen($signature); $i++) {
- $result |= ord($built{$i}) ^ ord($signature{$i});
- }
-
- return $result == 0;
- }
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/Token.php b/milfs/addon/brigada/funciones/twitter/src/Token.php
deleted file mode 100644
index 140c1ec..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/Token.php
+++ /dev/null
@@ -1,38 +0,0 @@
-key = $key;
- $this->secret = $secret;
- }
-
- /**
- * Generates the basic string serialization of a token that a server
- * would respond to request_token and access_token calls with
- *
- * @return string
- */
- public function __toString()
- {
- return sprintf("oauth_token=%s&oauth_token_secret=%s",
- Util::urlencodeRfc3986($this->key),
- Util::urlencodeRfc3986($this->secret)
- );
- }
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/TwitterOAuth.php b/milfs/addon/brigada/funciones/twitter/src/TwitterOAuth.php
deleted file mode 100644
index 739dc2d..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/TwitterOAuth.php
+++ /dev/null
@@ -1,448 +0,0 @@
-
- */
-class TwitterOAuth extends Config
-{
- const API_VERSION = '1.1';
- const API_HOST = 'https://api.twitter.com';
- const UPLOAD_HOST = 'https://upload.twitter.com';
- const UPLOAD_CHUNK = 40960; // 1024 * 40
-
- /** @var Response details about the result of the last request */
- private $response;
- /** @var string|null Application bearer token */
- private $bearer;
- /** @var Consumer Twitter application details */
- private $consumer;
- /** @var Token|null User access token details */
- private $token;
- /** @var HmacSha1 OAuth 1 signature type used by Twitter */
- private $signatureMethod;
-
- /**
- * Constructor
- *
- * @param string $consumerKey The Application Consumer Key
- * @param string $consumerSecret The Application Consumer Secret
- * @param string|null $oauthToken The Client Token (optional)
- * @param string|null $oauthTokenSecret The Client Token Secret (optional)
- */
- public function __construct($consumerKey, $consumerSecret, $oauthToken = null, $oauthTokenSecret = null)
- {
- $this->resetLastResponse();
- $this->signatureMethod = new HmacSha1();
- $this->consumer = new Consumer($consumerKey, $consumerSecret);
- if (!empty($oauthToken) && !empty($oauthTokenSecret)) {
- $this->token = new Token($oauthToken, $oauthTokenSecret);
- }
- if (empty($oauthToken) && !empty($oauthTokenSecret)) {
- $this->bearer = $oauthTokenSecret;
- }
- }
-
- /**
- * @param string $oauthToken
- * @param string $oauthTokenSecret
- */
- public function setOauthToken($oauthToken, $oauthTokenSecret)
- {
- $this->token = new Token($oauthToken, $oauthTokenSecret);
- }
-
- /**
- * @return string|null
- */
- public function getLastApiPath()
- {
- return $this->response->getApiPath();
- }
-
- /**
- * @return int
- */
- public function getLastHttpCode()
- {
- return $this->response->getHttpCode();
- }
-
- /**
- * @return array
- */
- public function getLastXHeaders()
- {
- return $this->response->getXHeaders();
- }
-
- /**
- * @return array|object|null
- */
- public function getLastBody()
- {
- return $this->response->getBody();
- }
-
- /**
- * Resets the last response cache.
- */
- public function resetLastResponse()
- {
- $this->response = new Response();
- }
-
- /**
- * Make URLs for user browser navigation.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return string
- */
- public function url($path, array $parameters)
- {
- $this->resetLastResponse();
- $this->response->setApiPath($path);
- $query = http_build_query($parameters);
- return sprintf('%s/%s?%s', self::API_HOST, $path, $query);
- }
-
- /**
- * Make /oauth/* requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array
- * @throws TwitterOAuthException
- */
- public function oauth($path, array $parameters = [])
- {
- $response = [];
- $this->resetLastResponse();
- $this->response->setApiPath($path);
- $url = sprintf('%s/%s', self::API_HOST, $path);
- $result = $this->oAuthRequest($url, 'POST', $parameters);
-
- if ($this->getLastHttpCode() != 200) {
- throw new TwitterOAuthException($result);
- }
-
- parse_str($result, $response);
- $this->response->setBody($response);
-
- return $response;
- }
-
- /**
- * Make /oauth2/* requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function oauth2($path, array $parameters = [])
- {
- $method = 'POST';
- $this->resetLastResponse();
- $this->response->setApiPath($path);
- $url = sprintf('%s/%s', self::API_HOST, $path);
- $request = Request::fromConsumerAndToken($this->consumer, $this->token, $method, $url, $parameters);
- $authorization = 'Authorization: Basic ' . $this->encodeAppAuthorization($this->consumer);
- $result = $this->request($request->getNormalizedHttpUrl(), $method, $authorization, $parameters);
- $response = JsonDecoder::decode($result, $this->decodeJsonAsArray);
- $this->response->setBody($response);
- return $response;
- }
-
- /**
- * Make GET requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function get($path, array $parameters = [])
- {
- return $this->http('GET', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Make POST requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function post($path, array $parameters = [])
- {
- return $this->http('POST', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Make DELETE requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function delete($path, array $parameters = [])
- {
- return $this->http('DELETE', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Make PUT requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function put($path, array $parameters = [])
- {
- return $this->http('PUT', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Upload media to upload.twitter.com.
- *
- * @param string $path
- * @param array $parameters
- * @param boolean $chunked
- *
- * @return array|object
- */
- public function upload($path, array $parameters = [], $chunked = false)
- {
- if ($chunked) {
- return $this->uploadMediaChunked($path, $parameters);
- } else {
- return $this->uploadMediaNotChunked($path, $parameters);
- }
- }
-
- /**
- * Private method to upload media (not chunked) to upload.twitter.com.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- private function uploadMediaNotChunked($path, $parameters)
- {
- $file = file_get_contents($parameters['media']);
- $base = base64_encode($file);
- $parameters['media'] = $base;
- return $this->http('POST', self::UPLOAD_HOST, $path, $parameters);
- }
-
- /**
- * Private method to upload media (chunked) to upload.twitter.com.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- private function uploadMediaChunked($path, $parameters)
- {
- // Init
- $init = $this->http('POST', self::UPLOAD_HOST, $path, [
- 'command' => 'INIT',
- 'media_type' => $parameters['media_type'],
- 'total_bytes' => filesize($parameters['media'])
- ]);
- // Append
- $segment_index = 0;
- $media = fopen($parameters['media'], 'rb');
- while (!feof($media))
- {
- $this->http('POST', self::UPLOAD_HOST, 'media/upload', [
- 'command' => 'APPEND',
- 'media_id' => $init->media_id_string,
- 'segment_index' => $segment_index++,
- 'media_data' => base64_encode(fread($media, self::UPLOAD_CHUNK))
- ]);
- }
- fclose($media);
- // Finalize
- $finalize = $this->http('POST', self::UPLOAD_HOST, 'media/upload', [
- 'command' => 'FINALIZE',
- 'media_id' => $init->media_id_string
- ]);
- return $finalize;
- }
-
- /**
- * @param string $method
- * @param string $host
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- private function http($method, $host, $path, array $parameters)
- {
- $this->resetLastResponse();
- $url = sprintf('%s/%s/%s.json', $host, self::API_VERSION, $path);
- $this->response->setApiPath($path);
- $result = $this->oAuthRequest($url, $method, $parameters);
- $response = JsonDecoder::decode($result, $this->decodeJsonAsArray);
- $this->response->setBody($response);
- return $response;
- }
-
- /**
- * Format and sign an OAuth / API request
- *
- * @param string $url
- * @param string $method
- * @param array $parameters
- *
- * @return string
- * @throws TwitterOAuthException
- */
- private function oAuthRequest($url, $method, array $parameters)
- {
- $request = Request::fromConsumerAndToken($this->consumer, $this->token, $method, $url, $parameters);
- if (array_key_exists('oauth_callback', $parameters)) {
- // Twitter doesn't like oauth_callback as a parameter.
- unset($parameters['oauth_callback']);
- }
- if ($this->bearer === null) {
- $request->signRequest($this->signatureMethod, $this->consumer, $this->token);
- $authorization = $request->toHeader();
- } else {
- $authorization = 'Authorization: Bearer ' . $this->bearer;
- }
- return $this->request($request->getNormalizedHttpUrl(), $method, $authorization, $parameters);
- }
-
- /**
- * Make an HTTP request
- *
- * @param string $url
- * @param string $method
- * @param string $authorization
- * @param array $postfields
- *
- * @return string
- * @throws TwitterOAuthException
- */
- private function request($url, $method, $authorization, $postfields)
- {
- /* Curl settings */
- $options = [
- // CURLOPT_VERBOSE => true,
- CURLOPT_CAINFO => __DIR__ . DIRECTORY_SEPARATOR . 'cacert.pem',
- CURLOPT_CONNECTTIMEOUT => $this->connectionTimeout,
- CURLOPT_HEADER => true,
- CURLOPT_HTTPHEADER => ['Accept: application/json', $authorization, 'Expect:'],
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_SSL_VERIFYHOST => 2,
- CURLOPT_SSL_VERIFYPEER => true,
- CURLOPT_TIMEOUT => $this->timeout,
- CURLOPT_URL => $url,
- CURLOPT_USERAGENT => $this->userAgent,
- CURLOPT_ENCODING => 'gzip',
- ];
-
- if (!empty($this->proxy)) {
- $options[CURLOPT_PROXY] = $this->proxy['CURLOPT_PROXY'];
- $options[CURLOPT_PROXYUSERPWD] = $this->proxy['CURLOPT_PROXYUSERPWD'];
- $options[CURLOPT_PROXYPORT] = $this->proxy['CURLOPT_PROXYPORT'];
- $options[CURLOPT_PROXYAUTH] = CURLAUTH_BASIC;
- $options[CURLOPT_PROXYTYPE] = CURLPROXY_HTTP;
- }
-
- switch ($method) {
- case 'GET':
- break;
- case 'POST':
- $options[CURLOPT_POST] = true;
- $options[CURLOPT_POSTFIELDS] = Util::buildHttpQuery($postfields);
- break;
- case 'DELETE':
- $options[CURLOPT_CUSTOMREQUEST] = 'DELETE';
- break;
- case 'PUT':
- $options[CURLOPT_CUSTOMREQUEST] = 'PUT';
- break;
- }
-
- if (in_array($method, ['GET', 'PUT', 'DELETE']) && !empty($postfields)) {
- $options[CURLOPT_URL] .= '?' . Util::buildHttpQuery($postfields);
- }
-
-
- $curlHandle = curl_init();
- curl_setopt_array($curlHandle, $options);
- $response = curl_exec($curlHandle);
-
- // Throw exceptions on cURL errors.
- if (curl_errno($curlHandle) > 0) {
- throw new TwitterOAuthException(curl_error($curlHandle), curl_errno($curlHandle));
- }
-
- $this->response->setHttpCode(curl_getinfo($curlHandle, CURLINFO_HTTP_CODE));
- $parts = explode("\r\n\r\n", $response);
- $responseBody = array_pop($parts);
- $responseHeader = array_pop($parts);
- $this->response->setHeaders($this->parseHeaders($responseHeader));
-
- curl_close($curlHandle);
-
- return $responseBody;
- }
-
- /**
- * Get the header info to store.
- *
- * @param string $header
- *
- * @return array
- */
- private function parseHeaders($header)
- {
- $headers = [];
- foreach (explode("\r\n", $header) as $line) {
- if (strpos($line, ':') !== false) {
- list ($key, $value) = explode(': ', $line);
- $key = str_replace('-', '_', strtolower($key));
- $headers[$key] = trim($value);
- }
- }
- return $headers;
- }
-
- /**
- * Encode application authorization header with base64.
- *
- * @param Consumer $consumer
- *
- * @return string
- */
- private function encodeAppAuthorization($consumer)
- {
- // TODO: key and secret should be rfc 1738 encoded
- $key = $consumer->key;
- $secret = $consumer->secret;
- return base64_encode($key . ':' . $secret);
- }
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/TwitterOAuthException.php b/milfs/addon/brigada/funciones/twitter/src/TwitterOAuthException.php
deleted file mode 100644
index 79903ec..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/TwitterOAuthException.php
+++ /dev/null
@@ -1,10 +0,0 @@
-
- */
-class TwitterOAuthException extends \Exception
-{
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/Util.php b/milfs/addon/brigada/funciones/twitter/src/Util.php
deleted file mode 100644
index fff6143..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/Util.php
+++ /dev/null
@@ -1,115 +0,0 @@
- array('b','c'), 'd' => 'e')
- *
- * @param mixed $input
- *
- * @return array
- */
- public static function parseParameters($input)
- {
- if (!isset($input) || !$input) {
- return [];
- }
-
- $pairs = explode('&', $input);
-
- $parameters = [];
- foreach ($pairs as $pair) {
- $split = explode('=', $pair, 2);
- $parameter = Util::urldecodeRfc3986($split[0]);
- $value = isset($split[1]) ? Util::urldecodeRfc3986($split[1]) : '';
-
- if (isset($parameters[$parameter])) {
- // We have already recieved parameter(s) with this name, so add to the list
- // of parameters with this name
-
- if (is_scalar($parameters[$parameter])) {
- // This is the first duplicate, so transform scalar (string) into an array
- // so we can add the duplicates
- $parameters[$parameter] = [$parameters[$parameter]];
- }
-
- $parameters[$parameter][] = $value;
- } else {
- $parameters[$parameter] = $value;
- }
- }
- return $parameters;
- }
-
- /**
- * @param $params
- *
- * @return string
- */
- public static function buildHttpQuery($params)
- {
- if (!$params) {
- return '';
- }
-
- // Urlencode both keys and values
- $keys = Util::urlencodeRfc3986(array_keys($params));
- $values = Util::urlencodeRfc3986(array_values($params));
- $params = array_combine($keys, $values);
-
- // Parameters are sorted by name, using lexicographical byte value ordering.
- // Ref: Spec: 9.1.1 (1)
- uksort($params, 'strcmp');
-
- $pairs = [];
- foreach ($params as $parameter => $value) {
- if (is_array($value)) {
- // If two or more parameters share the same name, they are sorted by their value
- // Ref: Spec: 9.1.1 (1)
- // June 12th, 2010 - changed to sort because of issue 164 by hidetaka
- sort($value, SORT_STRING);
- foreach ($value as $duplicateValue) {
- $pairs[] = $parameter . '=' . $duplicateValue;
- }
- } else {
- $pairs[] = $parameter . '=' . $value;
- }
- }
- // For each parameter, the name is separated from the corresponding value by an '=' character (ASCII code 61)
- // Each name-value pair is separated by an '&' character (ASCII code 38)
- return implode('&', $pairs);
- }
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/Util/JsonDecoder.php b/milfs/addon/brigada/funciones/twitter/src/Util/JsonDecoder.php
deleted file mode 100644
index c8589c5..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/Util/JsonDecoder.php
+++ /dev/null
@@ -1,26 +0,0 @@
-
- */
-class JsonDecoder
-{
- /**
- * Decodes a JSON string to stdObject or associative array
- *
- * @param string $string
- * @param bool $asArray
- *
- * @return array|object
- */
- public static function decode($string, $asArray)
- {
- if (version_compare(PHP_VERSION, '5.4.0', '>=') && !(defined('JSON_C_VERSION') && PHP_INT_SIZE > 4)) {
- return json_decode($string, $asArray, 512, JSON_BIGINT_AS_STRING);
- }
-
- return json_decode($string, $asArray);
- }
-}
diff --git a/milfs/addon/brigada/funciones/twitter/src/cacert.pem b/milfs/addon/brigada/funciones/twitter/src/cacert.pem
deleted file mode 100644
index 742dc6e..0000000
--- a/milfs/addon/brigada/funciones/twitter/src/cacert.pem
+++ /dev/null
@@ -1,3952 +0,0 @@
-##
-## Bundle of CA Root Certificates
-##
-## Certificate data from Mozilla as of: Wed Oct 28 04:12:04 2015
-##
-## This is a bundle of X.509 certificates of public Certificate Authorities
-## (CA). These were automatically extracted from Mozilla's root certificates
-## file (certdata.txt). This file can be found in the mozilla source tree:
-## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
-##
-## It contains the certificates in PEM format and therefore
-## can be directly used with curl / libcurl / php_curl, or with
-## an Apache+mod_ssl webserver for SSL client authentication.
-## Just configure this file as the SSLCACertificateFile.
-##
-## Conversion done with mk-ca-bundle.pl version 1.25.
-## SHA1: 6d7d2f0a4fae587e7431be191a081ac1257d300a
-##
-
-
-Equifax Secure CA
-=================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
-ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
-MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
-B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
-fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
-8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
-CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
-spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
-zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
-BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
-70+sB3c4
------END CERTIFICATE-----
-
-GlobalSign Root CA
-==================
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
-GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
-b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
-BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
-VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
-DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
-THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
-Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
-c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
-gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
-AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
-Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
-j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
-hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
-X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-
-GlobalSign Root CA - R2
-=======================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
-ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
-s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
-S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
-TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
-ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
-FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
-YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
-BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
-9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
-01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
-9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
-EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
-cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
-EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
-055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
-j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
-xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
-t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
-tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
-8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
-Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
-Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
-mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
-RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
-UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
-Entrust.net Premium 2048 Secure Server CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
-bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
-NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
-d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
-ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
-Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
-hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
-nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
-VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
-KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
-T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
-zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
-J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
-nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
------END CERTIFICATE-----
-
-Baltimore CyberTrust Root
-=========================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
-ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
-ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
-SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
-dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
-uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
-UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
-G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
-XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
-l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
-VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
-BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
-cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
-hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
-Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
-RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-AddTrust Low-Value Services Root
-================================
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
-cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
-CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
-ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
-54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
-oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
-Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
-GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
-HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
-AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
-HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
-ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
-iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
-mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
-ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
-AddTrust External Root
-======================
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
-VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
-NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
-cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
-Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
-+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
-Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
-aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
-2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
-7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
-VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
-VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
-j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
-e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
-G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
-AddTrust Public Services Root
-=============================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
-cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
-BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
-dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
-nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
-d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
-Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
-HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
-A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
-A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
-JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
-+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
-Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
-EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
-AddTrust Qualified Certificates Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
-cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
-CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
-IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
-64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
-KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
-L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
-wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
-MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
-BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
-azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
-GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
-RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
-iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
------END CERTIFICATE-----
-
-Entrust Root Certification Authority
-====================================
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
-b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
-A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
-MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
-MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
-Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
-dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
-A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
-Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
-j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
-rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
-MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
-hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
-Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
-v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
-W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
-tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-
-RSA Security 2048 v3
-====================
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
-ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
-MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
-BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
-Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
-WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
-KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
-+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
-MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
-FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
-v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
-0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
-VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
-nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
-pKnXwiJPZ9d37CAFYd4=
------END CERTIFICATE-----
-
-GeoTrust Global CA
-==================
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
-MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
-BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
-8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
-T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
-vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
-AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
-DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
-zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
-d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
-mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
-XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
-Mw==
------END CERTIFICATE-----
-
-GeoTrust Global CA 2
-====================
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
-MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
-NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
-LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
-Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
-HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
-K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
-srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
-ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
-OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
-x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
-H4z1Ir+rzoPz4iIprn2DQKi6bA==
------END CERTIFICATE-----
-
-GeoTrust Universal CA
-=====================
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
-MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
-Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
-JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
-RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
-7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
-8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
-qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
-Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
-Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
-KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
-ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
-XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
-hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
-qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
-oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
-xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
-KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
-DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
-xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
-p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
-P/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-
-GeoTrust Universal CA 2
-=======================
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
-MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
-SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
-DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
-j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
-JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
-QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
-WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
-20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
-ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
-SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
-8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
-+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
-BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
-4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
-mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
-A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
-Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
-pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
-FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
-gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
-X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-
-Visa eCommerce Root
-===================
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
-EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
-QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
-WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
-VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
-F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
-RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
-TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
-/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
-GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
-MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
-CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
-YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
-zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
-YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
-Certum Root CA
-==============
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
-ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
-Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
-by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
-wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
-kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
-89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
-Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
-NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
-hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
-GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
-GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
-0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
-qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-
-Comodo AAA Services root
-========================
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
-MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
-c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
-BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
-C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
-i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
-Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
-Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
-Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
-BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
-cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
-LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
-7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
-8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
-12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
-Comodo Secure Services root
-===========================
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
-MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
-Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
-BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
-9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
-rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
-oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
-p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
-FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
-YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
-aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
-4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
-DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
-pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
-RR3B7Hzs/Sk=
------END CERTIFICATE-----
-
-Comodo Trusted Services root
-============================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
-MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
-bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
-IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
-3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
-/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
-juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
-ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
-DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
-ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
-cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
-uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
-BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
-R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
-9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-
-QuoVadis Root CA
-================
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
-ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
-MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
-cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
-EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
-J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
-F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
-YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
-AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
-PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
-ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
-MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
-YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
-Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
-BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
-FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
-tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
-fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
-LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
-gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
-5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
-5nrQNiOKSnQ2+Q==
------END CERTIFICATE-----
-
-QuoVadis Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
-ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
-XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
-lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
-lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
-lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
-66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
-wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
-D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
-BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
-J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
-DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
-a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
-Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
-UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
-VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
-+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
-IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
-WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
-f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
-4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
-VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
-
-QuoVadis Root CA 3
-==================
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
-OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
-DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
-KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
-DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
-BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
-p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
-nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
-MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
-Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
-uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
-BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
-YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
-BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
-VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
-ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
-AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
-qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
-hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
-POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
-Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
-8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
-bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
-g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
-vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
-qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
-
-Security Communication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
-8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
-DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
-5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
-DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
-JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
-0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
-mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
-s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
-6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
-FL39vmwLAw==
------END CERTIFICATE-----
-
-Sonera Class 2 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
-NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
-/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
-dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
-f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
-tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
-nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
-XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
-0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
-cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
-Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
-EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
-llpwrN9M
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA
-=============================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
-ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
-HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
-bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
-vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
-jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
-C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
-vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
-22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
-HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
-dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
-BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
-EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
-MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
-nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-
-UTN DATACorp SGC Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
-BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
-MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
-HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
-dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
-raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
-wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
-9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
-33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
-DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
-BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
-LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
-DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
-I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
-EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
-DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
-UTN USERFirst Hardware Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
-BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
-OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
-eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
-ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
-wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
-tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
-i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
-Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
-gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
-lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
-UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
-BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
-XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
-lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
-iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
-nfhmqA==
------END CERTIFICATE-----
-
-Camerfirma Chambers of Commerce Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
-NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
-cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
-MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
-AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
-xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
-NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
-DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
-d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
-EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
-cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
-AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
-bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
-VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
-fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
-L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
-UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
-ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
-erfutGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-
-Camerfirma Global Chambersign Root
-==================================
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
-NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
-YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
-MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
-ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
-1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
-by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
-6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
-8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
-BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
-aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
-Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
-aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
-ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
-PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
-gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
-PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
-IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
-t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-
-NetLock Notary (Class A) Root
-=============================
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
-EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
-ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
-DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
-EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
-VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
-cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
-D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
-z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
-/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
-tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
-4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
-A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
-Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
-bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
-LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
-ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
-IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
-IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
-b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
-bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
-Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
-bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
-ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
-ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
-CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
-KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
-8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-
-XRamp Global CA Root
-====================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
-BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
-dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
-HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
-U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
-IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
-foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
-zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
-AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
-xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
-oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
-AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
-/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
-nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
-8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-
-Go Daddy Class 2 CA
-===================
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
-VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
-A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
-RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
-ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
-2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
-qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
-YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
-vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
-BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
-atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
-MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
-PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
-I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
-Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
-vZ8=
------END CERTIFICATE-----
-
-Starfield Class 2 CA
-====================
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
-U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
-MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
-A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
-SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
-bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
-JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
-epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
-F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
-MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
-hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
-bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
-afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
-PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
-KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
-QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
-YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
-AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
-Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
-U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
-LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
-cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
-dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
-AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
-3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
-vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
-fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
-fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
-EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
-1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
-lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
-g14=
------END CERTIFICATE-----
-
-Taiwan GRCA
-===========
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
-EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
-DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
-dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
-w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
-BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
-1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
-htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
-J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
-Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
-B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
-O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
-lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
-HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
-09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
-Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
-Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
-D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
-DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
-Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
-7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
-CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
-+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
------END CERTIFICATE-----
-
-Swisscom Root CA 1
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
-MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
-MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
-NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
-AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
-b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
-7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
-cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
-WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
-haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
-MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
-MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
-jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
-MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
-VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
-vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
-OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
-1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
-nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
-x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
-NY6E0F/6MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
-MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
-9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
-UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
-/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
-oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
-GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
-66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
-hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
-EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
-SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
-8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-
-DigiCert Global Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
-MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
-TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
-BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
-4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
-7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
-o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
-8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
-BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
-EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
-tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
-UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-
-DigiCert High Assurance EV Root CA
-==================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
-KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
-MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
-MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
-Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
-Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
-OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
-MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
-NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
-h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
-Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
-JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
-V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
-myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
-mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
------END CERTIFICATE-----
-
-Certplus Class 2 Primary CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
-BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
-OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
-dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
-5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
-Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
-YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
-e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
-CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
-YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
-L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
-P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
-TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
-7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
-//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-
-DST Root CA X3
-==============
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
-ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
-DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
-cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
-rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
-UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
-xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
-utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
-MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
-dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
-GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
-RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
-fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
-DST ACES CA X6
-==============
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
-MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
-MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
-CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
-DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
-pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
-GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
-MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
-Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
-dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
-CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
-5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
-Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
-vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
-oKfN5XozNmr6mis=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
-MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
-dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
-LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
-x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
-QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
-5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
-AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
-Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
-hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
-9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
-UrbnBEI=
------END CERTIFICATE-----
-
-SwissSign Gold CA - G2
-======================
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
-EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
-MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
-c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
-t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
-jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
-vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
-ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
-AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
-jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
-peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
-7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
-GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
-OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
-5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
-44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
-Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
-Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
-mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
-vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
-KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
-NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
-viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
-
-SwissSign Silver CA - G2
-========================
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
-BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
-DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
-aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
-9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
-N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
-+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
-6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
-MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
-qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
-FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
-ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
-celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
-CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
-tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
-4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
-kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
-3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
-/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
-DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
-e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
-WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
-DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
-DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority
-========================================
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
-CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
-cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
-b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
-nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
-RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
-tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
-hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
-Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
-NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
-Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
-1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-
-thawte Primary Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
-MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
-SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
-KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
-FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
-oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
-1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
-q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
-aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
-afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
-AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
-uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
-jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
-z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G5
-============================================================
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
-dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
-j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
-Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
-Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
-fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
-BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
-Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
-SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
-X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
-KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
-Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
-ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-
-SecureTrust CA
-==============
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
-dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
-BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
-OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
-DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
-GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
-01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
-ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
-aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
-SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
-mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
-nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-
-Secure Global CA
-================
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
-bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
-MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
-Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
-YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
-bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
-8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
-HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
-0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
-oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
-MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
-OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
-CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
-3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-
-COMODO Certification Authority
-==============================
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
-MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
-T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
-+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
-xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
-4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
-1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
-rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
-b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
-AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
-OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
-IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
-+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
------END CERTIFICATE-----
-
-Network Solutions Certificate Authority
-=======================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
-EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
-IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
-MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
-jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
-aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
-crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
-/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
-AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
-bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
-A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
-4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
-GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
-ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
-WellsSecure Public Root Certificate Authority
-=============================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
-F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
-NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
-bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
-VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
-iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
-i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
-bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
-K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
-AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
-cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
-lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
-i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
-GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
-K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
-bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
-qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
-E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
-tylv2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
-
-COMODO ECC Certification Authority
-==================================
------BEGIN CERTIFICATE-----
-MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
-R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
-ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
-GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
-Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
-4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
-wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
-FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
-U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
------END CERTIFICATE-----
-
-IGC/A
-=====
------BEGIN CERTIFICATE-----
-MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
-VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
-Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
-MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
-EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
-STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
-TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
-So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
-HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
-frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
-tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
-egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
-iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
-q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
-MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
-Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
-lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
-0mBWWg==
------END CERTIFICATE-----
-
-Security Communication EV RootCA1
-=================================
------BEGIN CERTIFICATE-----
-MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
-BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
-Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
-/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
-WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
-ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
-bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
-9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
-SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
-iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
-Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
-mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
-T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
------END CERTIFICATE-----
-
-OISTE WISeKey Global Root GA CA
-===============================
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
-BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
-A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
-bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
-VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
-IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
-IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
-Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
-Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
-d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
-/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
-LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
-MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
-+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
-okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA
-=========================
------BEGIN CERTIFICATE-----
-MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
-BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
-EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
-MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
-dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
-GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
-d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
-oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
-QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
-PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
-MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
-IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
-VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
-LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
-dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
-AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
-4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
-AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
-egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
-Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
-PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
-c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
-cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
-IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
-WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
-MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
-MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
-Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
-HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
-nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
-aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
-86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
-yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
-S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
------END CERTIFICATE-----
-
-Certigna
-========
------BEGIN CERTIFICATE-----
-MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
-EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
-MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
-Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
-XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
-GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
-ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
-DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
-Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
-tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
-BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
-SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
-hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
-ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
-PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
-1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
-WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
------END CERTIFICATE-----
-
-Deutsche Telekom Root CA 2
-==========================
------BEGIN CERTIFICATE-----
-MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
-RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
-A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
-MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
-A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
-b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
-bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
-KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
-AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
-Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
-jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
-HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
-E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
-zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
-rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
-dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
-Cm26OWMohpLzGITY+9HPBVZkVw==
------END CERTIFICATE-----
-
-Cybertrust Global Root
-======================
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
-ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
-MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
-ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
-+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
-0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
-AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
-89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
-8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
-MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
-A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
-lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
-5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
-hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
-X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
-WL1WMRJOEcgh4LMRkWXbtKaIOM5V
------END CERTIFICATE-----
-
-ePKI Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
-EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
-Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
-MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
-MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
-IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
-lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
-qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
-12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
-WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
-ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
-lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
-vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
-Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
-MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
-ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
-1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
-KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
-xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
-NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
-GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
-xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
-gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
-sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
-BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
------END CERTIFICATE-----
-
-T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
-=============================================================================================================================
------BEGIN CERTIFICATE-----
-MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
-DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
-aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
-b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
-BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
-S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
-MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
-IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
-n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
-IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
-dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
-cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
-Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
-xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
-6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
-hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
-BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
-N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
-y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
-LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
-dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
------END CERTIFICATE-----
-
-Buypass Class 2 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
-MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
-c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
-cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
-0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
-0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
-uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
-AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
-1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
-7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
-fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
-wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
------END CERTIFICATE-----
-
-EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
-==========================================================================
------BEGIN CERTIFICATE-----
-MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
-QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
-Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
-ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
-IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
-X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
-gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
-eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
-TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
-Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
-uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
-qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
-ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
-Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
-Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
-FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
-zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
-XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
-bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
-RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
-1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
-2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
-Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
-AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
------END CERTIFICATE-----
-
-certSIGN ROOT CA
-================
------BEGIN CERTIFICATE-----
-MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
-VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
-Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
-CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
-JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
-rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
-ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
-0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
-AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
-Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
-AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
-SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
-x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
-vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
-TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
------END CERTIFICATE-----
-
-CNNIC ROOT
-==========
------BEGIN CERTIFICATE-----
-MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
-ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
-OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
-o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
-VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
-VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
-czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
-y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
-wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
-lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
-Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
-O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
-BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
-G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
-mxE=
------END CERTIFICATE-----
-
-ApplicationCA - Japanese Government
-===================================
------BEGIN CERTIFICATE-----
-MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
-SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
-MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
-cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
-fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
-wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
-jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
-nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
-WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
-BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
-vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
-o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
-/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
-io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
-dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
-rosot4LKGAfmt1t06SAZf7IbiVQ=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G3
-=============================================
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
-IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
-NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
-YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
-LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
-K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
-c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
-IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
-dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
-2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
-cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
-Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
-t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
-
-thawte Primary Root CA - G2
-===========================
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
-VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
-IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
-Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
-MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
-b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
-IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
-LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
-8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
-mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
-G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
-rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
-
-thawte Primary Root CA - G3
-===========================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
-ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
-VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
-A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
-P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
-+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
-7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
-vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
-KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
-A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
-8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
-er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G2
-=============================================
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
-Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
-OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
-b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
-BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
-KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
-EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
-ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
-npaqBA+K
------END CERTIFICATE-----
-
-VeriSign Universal Root Certification Authority
-===============================================
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
-1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
-MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
-9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
-AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
-tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
-CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
-a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
-Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
-Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
-P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
-wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
-mJO37M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G4
-============================================================
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
-VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
-b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
-ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
-cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
-b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
-Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
-rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
-/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
-HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
-Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
-A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
-AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
-
-NetLock Arany (Class Gold) Főtanúsítvány
-============================================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
-A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
-dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
-cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
-MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
-ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
-c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
-0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
-/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
-H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
-fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
-neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
-qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
-YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
-bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
-NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
-dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA - G2
-==================================
------BEGIN CERTIFICATE-----
-MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
-TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
-ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
-5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
-vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
-CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
-e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
-OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
-CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
-48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
-trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
-qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
-AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
-ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
-A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
-+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
-f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
-kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
-CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
-URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
-CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
-oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
-IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
-66+KAQ==
------END CERTIFICATE-----
-
-CA Disig
-========
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
-QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
-MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
-bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
-GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
-Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
-hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
-ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
-gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
-AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
-aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
-ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
-BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
-WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
-mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
-CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
-ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
-4Z7CRneC9VkGjCFMhwnN5ag=
------END CERTIFICATE-----
-
-Juur-SK
-=======
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
-c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
-DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
-SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
-aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
-TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
-+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
-UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
-Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
-MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
-HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
-AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
-cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
-AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
-cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
-FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
-A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
-ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
-abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
-IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
-Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
-yyqcjg==
------END CERTIFICATE-----
-
-Hongkong Post Root CA 1
-=======================
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
-DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
-NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
-IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
-ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
-auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
-qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
-V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
-HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
-h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
-l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
-IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
-T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
-c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
------END CERTIFICATE-----
-
-SecureSign RootCA11
-===================
------BEGIN CERTIFICATE-----
-MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
-SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
-b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
-KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
-cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
-TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
-wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
-g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
-O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
-bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
-t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
-OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
-bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
-Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
-y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
-lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
------END CERTIFICATE-----
-
-ACEDICOM Root
-=============
------BEGIN CERTIFICATE-----
-MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
-T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
-MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
-A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
-WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
-YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
-MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
-m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
-HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
-xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
-3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
-2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
-TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
-4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
-9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
-bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
-aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
-eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
-zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
-ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
-KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
-nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
-I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
-MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
-tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
-MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
-c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
-dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
-BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
-U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
-fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
-0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
-pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
-1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
-AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
-QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
-FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
-lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
-I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
-tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
-yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
-LXpUq3DDfSJlgnCW
------END CERTIFICATE-----
-
-GlobalSign Root CA - R3
-=======================
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
-iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
-0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
-rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
-OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
-xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
-lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
-EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
-bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
-YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
-kpeDMdmztcpHWD9f
------END CERTIFICATE-----
-
-Autoridad de Certificacion Firmaprofesional CIF A62634068
-=========================================================
------BEGIN CERTIFICATE-----
-MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
-BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
-MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
-QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
-NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
-Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
-B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
-7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
-ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
-plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
-MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
-LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
-bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
-vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
-EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
-DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
-cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
-bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
-ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
-51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
-R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
-T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
-Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
-osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
-crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
-saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
-KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
-6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
------END CERTIFICATE-----
-
-Izenpe.com
-==========
------BEGIN CERTIFICATE-----
-MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
-EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
-MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
-QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
-03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
-ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
-+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
-PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
-OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
-F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
-0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
-0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
-leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
-AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
-SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
-NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
-MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
-BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
-Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
-kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
-hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
-g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
-aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
-nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
-ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
-Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
-WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
------END CERTIFICATE-----
-
-Chambers of Commerce Root - 2008
-================================
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
-Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
-ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
-EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
-cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
-XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
-h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
-ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
-NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
-D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
-lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
-0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
-EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
-G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
-BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
-bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
-bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
-CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
-AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
-wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
-3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
-RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
-M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
-YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
-9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
-zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
-nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
------END CERTIFICATE-----
-
-Global Chambersign Root - 2008
-==============================
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
-NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
-Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
-QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
-VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
-XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
-ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
-/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
-TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
-H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
-Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
-HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
-AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
-BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
-BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
-aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
-aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
-1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
-dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
-/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
-ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
-dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
-9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
-foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
-qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
-P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
-c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
-
-Go Daddy Root Certificate Authority - G2
-========================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
-MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
-MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
-b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
-A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
-9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
-+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
-fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
-NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
-BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
-vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
-5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
-N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
-LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
------END CERTIFICATE-----
-
-Starfield Root Certificate Authority - G2
-=========================================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
-eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
-DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
-VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
-dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
-W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
-bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
-N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
-ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
-JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
-TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
-4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
-F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
-pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
-c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
------END CERTIFICATE-----
-
-Starfield Services Root Certificate Authority - G2
-==================================================
------BEGIN CERTIFICATE-----
-MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
-IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
-dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
-h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
-hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
-LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
-rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
-SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
-E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
-xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
-iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
-YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
------END CERTIFICATE-----
-
-AffirmTrust Commercial
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
-MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
-DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
-C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
-BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
-MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
-HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
-hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
-qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
-0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
-sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
------END CERTIFICATE-----
-
-AffirmTrust Networking
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
-MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
-Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
-dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
-/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
-h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
-HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
-UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
-12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
-WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
-/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
------END CERTIFICATE-----
-
-AffirmTrust Premium
-===================
------BEGIN CERTIFICATE-----
-MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
-OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
-dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
-BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
-5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
-+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
-GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
-p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
-S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
-6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
-/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
-+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
-MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
-Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
-6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
-L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
-+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
-BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
-IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
-g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
-zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
------END CERTIFICATE-----
-
-AffirmTrust Premium ECC
-=======================
------BEGIN CERTIFICATE-----
-MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
-BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
-MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
-cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
-IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
-N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
-BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
-BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
-57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
-eQ==
------END CERTIFICATE-----
-
-Certum Trusted Network CA
-=========================
------BEGIN CERTIFICATE-----
-MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
-ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
-MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
-ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
-l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
-J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
-fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
-cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
-Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
-DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
-jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
-mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
-Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
------END CERTIFICATE-----
-
-Certinomis - Autorité Racine
-=============================
------BEGIN CERTIFICATE-----
-MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
-Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
-LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
-A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
-JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
-wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
-Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
-2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
-jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
-c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
-lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
-xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
-530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
-4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
-KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
-WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
-R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
-nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
-CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
-JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
-qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
-WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
-wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
-vgt2Fl43N+bYdJeimUV5
------END CERTIFICATE-----
-
-Root CA Generalitat Valenciana
-==============================
------BEGIN CERTIFICATE-----
-MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
-ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
-IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
-WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
-CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
-F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
-ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
-D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
-JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
-AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
-dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
-ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
-AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
-YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
-AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
-aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
-AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
-YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
-AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
-OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
-dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
-BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
-A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
-b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
-TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
-Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
-NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
-iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
-+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
------END CERTIFICATE-----
-
-A-Trust-nQual-03
-================
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
-Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
-a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
-dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
-RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
-ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
-c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
-zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
-yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
-SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
-iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
-cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
-eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
-ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
-sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
-JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
-ahq97BvIxYSazQ==
------END CERTIFICATE-----
-
-TWCA Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
-VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
-EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
-IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
-QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
-oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
-4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
-y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
-9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
-mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
-QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
-T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
-Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
------END CERTIFICATE-----
-
-Security Communication RootCA2
-==============================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
-SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
-aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
-+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
-3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
-spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
-EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
-QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
-CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
-u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
-3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
-tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
-mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
------END CERTIFICATE-----
-
-EC-ACC
-======
------BEGIN CERTIFICATE-----
-MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
-BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
-ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
-VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
-CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
-BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
-MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
-SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
-Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
-cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
-w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
-ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
-HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
-E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
-0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
-VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
-Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
-dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
-lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
-Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
-l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
-E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
-5EI=
------END CERTIFICATE-----
-
-Hellenic Academic and Research Institutions RootCA 2011
-=======================================================
------BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
-O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
-aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
-AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
-IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
-1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
-71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
-8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
-3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
-MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
-MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
-b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
-XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
-TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
-/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
-7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
------END CERTIFICATE-----
-
-Actalis Authentication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
-BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
-AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
-MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
-IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
-IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
-wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
-by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
-zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
-YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
-oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
-EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
-hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
-EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
-jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
-iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
-ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
-WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
-JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
-K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
-Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
-4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
-2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
-lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
-OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
-vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
------END CERTIFICATE-----
-
-Trustis FPS Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
-EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
-IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
-BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
-RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
-H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
-cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
-o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
-AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
-BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
-GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
-yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
-8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
-l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
-iB6XzCGcKQENZetX2fNXlrtIzYE=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
-VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
-Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
-dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
-c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
-bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
-aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
-aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
-L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
-cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
-fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
-N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
-Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
-tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
-e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
-2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
-HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
-JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
-D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
------END CERTIFICATE-----
-
-StartCom Certification Authority G2
-===================================
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
-ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
-o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
-4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
-Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
-Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
-O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
-vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
-nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
-FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
-z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
-KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
-2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
-J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
-JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
-/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
-nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
-blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
-l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
-7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
-obp573PYtlNXLfbQ4ddI
------END CERTIFICATE-----
-
-Buypass Class 2 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
-DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
-g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
-9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
-/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
-CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
-awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
-zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
-Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
-Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
-M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
-A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
-osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
-aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
-DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
-LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
-oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
-wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
-CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
-rJgWVqA=
------END CERTIFICATE-----
-
-Buypass Class 3 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
-DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
-sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
-5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
-7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
-ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
-2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
-/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
-RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
-Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
-j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
-cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
-uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
-Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
-ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
-KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
-6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
-UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
-eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
-Cp/HuZc=
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 3
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
-MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
-9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
-NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
-iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
-0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
-AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
-fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
-ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
-P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
-e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
------END CERTIFICATE-----
-
-EE Certification Centre Root CA
-===============================
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
-dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
-MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
-UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
-ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
-TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
-rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
-93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
-P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
-MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
-BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
-xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
-lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
-3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
-dcGWxZ0=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2007
-=================================================
------BEGIN CERTIFICATE-----
-MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
-DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
-a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
-BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
-bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
-YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
-KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
-KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
-rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
-AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
-Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
-aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
-Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
-BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
-poRq0Tl9
------END CERTIFICATE-----
-
-D-TRUST Root Class 3 CA 2 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
-Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
-LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
-ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
-BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
-KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
-p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
-AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
-4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
-eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
-MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
-PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
-OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
-2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
-o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
-dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
-X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
------END CERTIFICATE-----
-
-D-TRUST Root Class 3 CA 2 EV 2009
-=================================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
-OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
-OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
-egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
-zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
-7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
-sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
-11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
-cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
-ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
-MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
-b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
-c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
-PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
-nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
-ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
-NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
-w9y4AyHqnxbxLFS1
------END CERTIFICATE-----
-
-PSCProcert
-==========
------BEGIN CERTIFICATE-----
-MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
-ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
-MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
-dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
-cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
-IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
-MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
-DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
-ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
-Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
-wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
-3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
-RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
-EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
-0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
-0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
-td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
-Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
-r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
-AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
-Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
-xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
-ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
-EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
-Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
-ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
-9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
-MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
-LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
-ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
-YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
-Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
-dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
-T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
-g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
-uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
-n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
-FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
-5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
-3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
-poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
-eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
------END CERTIFICATE-----
-
-China Internet Network Information Center EV Certificates Root
-==============================================================
------BEGIN CERTIFICATE-----
-MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
-BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
-aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
-Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
-A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
-PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
-cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
-jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
-98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
-klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
-KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
-7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
-glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
-0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
-7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
-ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
-5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
------END CERTIFICATE-----
-
-Swisscom Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2
-MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM
-LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo
-ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ
-wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH
-Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a
-SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS
-NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab
-mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY
-Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3
-qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
-BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu
-MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO
-v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ
-82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz
-o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs
-a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx
-OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW
-mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o
-+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC
-rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX
-5OfNeOI5wSsSnqaeG8XmDtkx2Q==
------END CERTIFICATE-----
-
-Swisscom Root EV CA 2
-=====================
------BEGIN CERTIFICATE-----
-MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE
-BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl
-cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN
-MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT
-HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg
-Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz
-o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy
-Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti
-GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li
-qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH
-Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG
-alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa
-m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox
-bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi
-xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/
-BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
-MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB
-bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL
-j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU
-wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7
-XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH
-59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/
-23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq
-J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA
-HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi
-uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW
-l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
------END CERTIFICATE-----
-
-CA Disig Root R1
-================
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw
-EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
-ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx
-EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
-c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy
-3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8
-u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2
-m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk
-CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa
-YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6
-vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL
-LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX
-ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is
-XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ
-04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
-xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B
-LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM
-CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb
-VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85
-YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS
-ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix
-lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N
-UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ
-a7+h89n07eLw4+1knj0vllJPgFOL
------END CERTIFICATE-----
-
-CA Disig Root R2
-================
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw
-EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
-ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx
-EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
-c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC
-w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia
-xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7
-A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S
-GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV
-g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa
-5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE
-koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A
-Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i
-Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u
-Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
-tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV
-sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je
-dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8
-1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx
-mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01
-utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0
-sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg
-UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV
-7+ZtsH8tZ/3zbBt1RqPlShfppNcL
------END CERTIFICATE-----
-
-ACCVRAIZ1
-=========
------BEGIN CERTIFICATE-----
-MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
-SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
-MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
-UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
-jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
-RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
-aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
-0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
-WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
-8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
-5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
-9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
-Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
-Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
-Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
-VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
-Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
-QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
-AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
-YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
-AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
-IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
-aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
-dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
-MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
-hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
-R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
-YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
-nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
-TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
-sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
-I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
-Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
-3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
-EfbRD0tVNEYqi4Y7
------END CERTIFICATE-----
-
-TWCA Global Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
-CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
-QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
-EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
-Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
-nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
-r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
-Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
-tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
-KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
-sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
-yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
-kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
-zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
-AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
-cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
-LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
-8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
-/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
-lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
-A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
-i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
-EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
-zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
------END CERTIFICATE-----
-
-TeliaSonera Root CA v1
-======================
------BEGIN CERTIFICATE-----
-MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
-CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
-MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
-VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
-6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
-3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
-B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
-Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
-oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
-F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
-oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
-gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
-TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
-AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
-DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
-zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
-0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
-pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
-G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
-c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
-JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
-qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
-Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
-WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
------END CERTIFICATE-----
-
-E-Tugra Certification Authority
-===============================
------BEGIN CERTIFICATE-----
-MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
-DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
-ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
-ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
-NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
-QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
-cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
-DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
-hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
-CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
-ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
-BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
-E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
-rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
-jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
-rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
-dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
-/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
-MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
-kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
-XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
-VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
-a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
-dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
-KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
-Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
-8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
-C7TbO6Orb1wdtn7os4I07QZcJA==
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 2
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
-MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
-SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
-vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
-2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
-WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
-YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
-r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
-vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
-3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
-9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
------END CERTIFICATE-----
-
-Atos TrustedRoot 2011
-=====================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
-cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
-MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
-A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
-hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
-54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
-DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
-HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
-z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
-l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
-bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
-CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
-k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
-TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
-61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
-3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
------END CERTIFICATE-----
-
-QuoVadis Root CA 1 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE
-PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm
-PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6
-Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN
-ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l
-g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
-7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX
-9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f
-iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg
-t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI
-hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
-MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3
-GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct
-Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
-+V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh
-3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
-wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6
-O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0
-FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV
-hMJKzRwuJIczYOXD
------END CERTIFICATE-----
-
-QuoVadis Root CA 2 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh
-ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY
-NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t
-oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o
-MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l
-V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo
-L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ
-sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD
-6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh
-lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI
-hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
-AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K
-pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9
-x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz
-dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X
-U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw
-mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD
-zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN
-JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr
-O3jtZsSOeWmD3n+M
------END CERTIFICATE-----
-
-QuoVadis Root CA 3 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286
-IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL
-Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe
-6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3
-I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U
-VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7
-5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi
-Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM
-dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt
-rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI
-hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
-KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS
-t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ
-TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du
-DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib
-Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD
-hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX
-0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW
-dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2
-PpxxVJkES/1Y+Zj0
------END CERTIFICATE-----
-
-DigiCert Assured ID Root G2
-===========================
------BEGIN CERTIFICATE-----
-MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
-MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
-35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
-bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
-VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
-YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
-lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
-w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
-0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
-d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
-hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
-jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
-IhNzbM8m9Yop5w==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root G3
-===========================
------BEGIN CERTIFICATE-----
-MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
-VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
-MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
-BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
-RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
-KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
-UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
-YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
-1vUhZscv6pZjamVFkpUBtA==
------END CERTIFICATE-----
-
-DigiCert Global Root G2
-=======================
------BEGIN CERTIFICATE-----
-MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
-MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
-kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
-3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
-BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
-UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
-o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
-5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
-F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
-WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
-QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
-iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
-MrY=
------END CERTIFICATE-----
-
-DigiCert Global Root G3
-=======================
------BEGIN CERTIFICATE-----
-MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
-VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
-MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
-aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
-AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
-YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
-BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
-Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
-3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
-VOKa5Vt8sycX
------END CERTIFICATE-----
-
-DigiCert Trusted Root G4
-========================
------BEGIN CERTIFICATE-----
-MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw
-HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
-MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
-pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o
-k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa
-vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY
-QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6
-MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm
-mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
-f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH
-dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8
-oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
-DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
-ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY
-ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr
-yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy
-7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah
-ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN
-5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb
-/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa
-5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK
-G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
-82Z+
------END CERTIFICATE-----
-
-WoSign
-======
------BEGIN CERTIFICATE-----
-MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
-EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g
-QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ
-BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
-vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO
-CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX
-2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5
-KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR
-+ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez
-EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk
-lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2
-8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY
-yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C
-AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R
-8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
-LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq
-T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj
-y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC
-2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes
-5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/
-EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh
-mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx
-kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi
-kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w==
------END CERTIFICATE-----
-
-WoSign China
-============
------BEGIN CERTIFICATE-----
-MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG
-EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv
-geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD
-VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k
-8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5
-uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85
-dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5
-Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy
-b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc
-76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m
-+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6
-yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX
-GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA
-A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
-yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY
-r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115
-j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A
-kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97
-qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y
-jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB
-ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv
-T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO
-kI26oQ==
------END CERTIFICATE-----
-
-COMODO RSA Certification Authority
-==================================
------BEGIN CERTIFICATE-----
-MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC
-R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
-ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn
-dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ
-FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+
-5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG
-x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX
-2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL
-OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3
-sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C
-GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5
-WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
-FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt
-rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+
-nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg
-tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW
-sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp
-pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA
-zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq
-ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52
-7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I
-LaZRfyHBNVOFBkpdn627G190
------END CERTIFICATE-----
-
-USERTrust RSA Certification Authority
-=====================================
------BEGIN CERTIFICATE-----
-MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE
-BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
-ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE
-BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
-ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz
-0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j
-Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn
-RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O
-+T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq
-/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE
-Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM
-lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8
-yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+
-eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
-BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW
-FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ
-7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ
-Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM
-8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi
-FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi
-yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c
-J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw
-sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx
-Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9
------END CERTIFICATE-----
-
-USERTrust ECC Certification Authority
-=====================================
------BEGIN CERTIFICATE-----
-MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
-aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
-aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2
-0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez
-nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV
-HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB
-HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
-9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
------END CERTIFICATE-----
-
-GlobalSign ECC Root CA - R4
-===========================
------BEGIN CERTIFICATE-----
-MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
-OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
-AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
-MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
-JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
------END CERTIFICATE-----
-
-GlobalSign ECC Root CA - R5
-===========================
------BEGIN CERTIFICATE-----
-MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6
-SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS
-h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
-BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
-uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
-yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA - G3
-==================================
------BEGIN CERTIFICATE-----
-MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC
-TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
-ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y
-olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t
-x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy
-EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K
-Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur
-mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5
-1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp
-07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo
-FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE
-41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB
-AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu
-yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
-U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq
-KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1
-v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA
-8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b
-8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r
-mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq
-1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI
-JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV
-tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk=
------END CERTIFICATE-----
-
-Staat der Nederlanden EV Root CA
-================================
------BEGIN CERTIFICATE-----
-MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M
-MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl
-cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk
-SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW
-O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r
-0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8
-Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV
-XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr
-08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV
-0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd
-74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx
-fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa
-ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
-eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu
-c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq
-5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN
-b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN
-f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi
-5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
-WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK
-DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy
-eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
------END CERTIFICATE-----
-
-IdenTrust Commercial Root CA 1
-==============================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG
-EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS
-b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES
-MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB
-IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld
-hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/
-mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi
-1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C
-XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl
-3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy
-NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV
-WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg
-xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix
-uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
-AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI
-hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
-6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg
-ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt
-ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV
-YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX
-feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro
-kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe
-2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz
-Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R
-cGzM7vRX+Bi6hG6H
------END CERTIFICATE-----
-
-IdenTrust Public Sector Root CA 1
-=================================
------BEGIN CERTIFICATE-----
-MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG
-EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv
-ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV
-UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS
-b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy
-P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6
-Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI
-rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf
-qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS
-mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn
-ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh
-LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v
-iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL
-4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B
-Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw
-DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
-t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A
-mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt
-GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt
-m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx
-NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4
-Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI
-ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC
-ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ
-3Wl9af0AVqW3rLatt8o+Ae+c
------END CERTIFICATE-----
-
-Entrust Root Certification Authority - G2
-=========================================
------BEGIN CERTIFICATE-----
-MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
-bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
-b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
-HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
-DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
-OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
-eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
-/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
-HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
-s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
-TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
-AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
-0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
-iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
-Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
-nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
-vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
-e4pIb4tF9g==
------END CERTIFICATE-----
-
-Entrust Root Certification Authority - EC1
-==========================================
------BEGIN CERTIFICATE-----
-MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
-FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
-YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
-ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
-FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
-LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
-dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
-IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
-AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
-9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
-vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
-kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
------END CERTIFICATE-----
-
-CFCA EV ROOT
-============
------BEGIN CERTIFICATE-----
-MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE
-CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB
-IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw
-MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD
-DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV
-BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD
-7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN
-uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW
-ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7
-xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f
-py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K
-gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol
-hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ
-tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf
-BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
-ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q
-ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua
-4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG
-E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX
-BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn
-aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy
-PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX
-kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
-ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
------END CERTIFICATE-----
-
-TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
-=========================================================
------BEGIN CERTIFICATE-----
-MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
-BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
-bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
-RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
-ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
-SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
-n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
-ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
-jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
-ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
-9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
-4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
-HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
-hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
-BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
-URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
-lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
-B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
------END CERTIFICATE-----
-
-TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
-=========================================================
------BEGIN CERTIFICATE-----
-MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5
-MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL
-BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf
-aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm
-aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a
-2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED
-wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb
-HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV
-+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT
-9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
-9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R
-fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
-o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW
-hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1
-O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw==
------END CERTIFICATE-----
-
-Certinomis - Root CA
-====================
------BEGIN CERTIFICATE-----
-MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
-Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg
-LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx
-EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
-ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos
-P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
-d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap
-z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00
-8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x
-RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE
-6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t
-FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV
-PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
-i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj
-YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I
-6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
-AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
-WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw
-Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX
-lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ
-y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9
-Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng
-DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi
-I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM
-cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr
-hkIGuUE=
------END CERTIFICATE-----
diff --git a/milfs/addon/brigada/funciones/twitter/tuitear.php b/milfs/addon/brigada/funciones/twitter/tuitear.php
deleted file mode 100644
index 43ff03c..0000000
--- a/milfs/addon/brigada/funciones/twitter/tuitear.php
+++ /dev/null
@@ -1,31 +0,0 @@
-getRequestToken(OAUTH_CALLBACK);
-$request_token = $connection->oauth('oauth/request_token');
-
-/* Guarda la credenciales temporales en sesión. */
-$_SESSION['oauth_token'] = $token = $request_token['oauth_token'];
-$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
-//switch ($connection->http_code) {
-// case 200:
- /* Construye la url de autorización y envía al usuario a Twitter. */
- $url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
- //$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
- //$url = $connection->getAuthorizeURL($token);
-// print $url;
- header('Location: ' . $url);
- //break;
- // default:
- /* Indica que se ha producido un error. */
- // echo 'Error de conexión a Twitter.';
- // echo "\nHTTP CODE: " . $connection->http_code;
-//}
\ No newline at end of file
diff --git a/milfs/addon/brigada/grabar.php b/milfs/addon/brigada/grabar.php
deleted file mode 100644
index 64746ac..0000000
--- a/milfs/addon/brigada/grabar.php
+++ /dev/null
@@ -1,177 +0,0 @@
-addScript("window.location.href ='$url';");
- $preview = "
-
-
-";
-
- //$respuesta = new xajaxResponse('utf-8');
- //$identificador = $formulario['identificador'];
- $id_formulario = $_POST['formulario_id'];
- $campo_imagen = buscar_campo_tipo("$id_formulario","15");
- $_POST[$campo_imagen[0]][0] = $imagen;
- $empresa = remplacetas('form_id','id',"$id_formulario",'id_empresa',"") ;
- $id_empresa = $empresa[0];
- include_once("$_SESSION[path]/funciones/conex.php");
- //include_once("$_SESSION[url]funciones/conex.php");
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
- foreach($_POST as $campo=>$valor){
- if(is_array($valor)) {
- foreach($valor as $c=>$v){
- $consulta = "INSERT INTO form_datos ( timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( UNIX_TIMESTAMP(),'$_SESSION[id]','$id_empresa','$id_formulario','$ip' ,'$control', '$campo' , '$v')
- ";
- $sql=mysqli_query($consulta,$link);
- // $campos .= " $campo // $valor // $c -> $v $consulta ";
- }
- }
- }
-
-$resultado = "$preview $consulta ";
-
- ///$respuesta->addAssign("aviso","innerHTML","$preview");
- //$respuesta->addAlert("$resultado");
- //$respuesta->addScript("javascript:location.reload(true);");
- return $resultado;
-}
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($consulta,$link);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-function grabar_imagen($imagen,$control) {
-
- $imgData = str_replace(' ','+',$imagen);
- $imgData = substr($imgData,strpos($imgData,",")+1);
- $imgData = base64_decode($imgData);
-
- $nombre= $control.".png";
- $filePath = "$_SESSION[path]/tmp/".$nombre;
-
- $file = fopen($filePath, 'w');
- fwrite($file, $imgData);
- fclose($file);
- $full= "$_SESSION[path_images_secure]/full/".$nombre;
- if (!rename($filePath,$full)){}
- else {
- echo generar_miniatura($nombre,"150");
- echo generar_miniatura($nombre,"300");
- echo generar_miniatura($nombre,"600");
- }
-
- //return "$nombre";
- return "$nombre";
-}
-
-
-function generar_miniatura($file,$width) {
//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[0] / $file_info[1];
// Calculamos las nuevas dimensiones
$newwidth = $width;
$newheight = round($newwidth / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 80);
-imagepng($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 9);
-//imagegif($thumb,"$_SESSION[path_images_secure]/".$width."/$file");
-//imagejpeg($thumb,null, 80);
-}
-
-function buscar_campo_tipo($id,$tipo) {
- //// esta función retorna el id para un campo de un tipo especifico dentro de un formulario.
-$consulta ="SELECT form_campos.id, form_campos.campo_nombre FROM form_tipo_campo,form_campos,form_contenido_campos
- WHERE form_tipo_campo.id_tipo_campo = form_campos.campo_tipo
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = '$tipo'
- AND form_contenido_campos.id_form = '$id'";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0'){
- $resultado[0]=mysqli_result($sql,0,"id");
- $resultado[1]=mysqli_result($sql,0,"campo_nombre");
- $resultado[2] =$consulta;
- }else{ $resultado[0]='';
- $resultado[2] =$consulta;
- }
-return $resultado;
-}
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-?>
\ No newline at end of file
diff --git a/milfs/addon/brigada/images/logos/150.png b/milfs/addon/brigada/images/logos/150.png
deleted file mode 100644
index cbc5867..0000000
Binary files a/milfs/addon/brigada/images/logos/150.png and /dev/null differ
diff --git a/milfs/addon/brigada/images/logos/250.png b/milfs/addon/brigada/images/logos/250.png
deleted file mode 100644
index cab9694..0000000
Binary files a/milfs/addon/brigada/images/logos/250.png and /dev/null differ
diff --git a/milfs/addon/brigada/images/logos/c.png b/milfs/addon/brigada/images/logos/c.png
deleted file mode 100644
index 1d95ac7..0000000
Binary files a/milfs/addon/brigada/images/logos/c.png and /dev/null differ
diff --git a/milfs/addon/brigada/index.html b/milfs/addon/brigada/index.html
deleted file mode 100644
index e69de29..0000000
diff --git a/milfs/addon/brigada/js/demo.js b/milfs/addon/brigada/js/demo.js
deleted file mode 100644
index 6c0a334..0000000
--- a/milfs/addon/brigada/js/demo.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * JavaScript Load Image Demo JS 1.9.1
- * https://github.com/blueimp/JavaScript-Load-Image
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-
-
diff --git a/milfs/addon/brigada/js/load-image-meta.js b/milfs/addon/brigada/js/load-image-meta.js
deleted file mode 100644
index d808508..0000000
--- a/milfs/addon/brigada/js/load-image-meta.js
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * JavaScript Load Image Meta 1.0.2
- * https://github.com/blueimp/JavaScript-Load-Image
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Image meta data handling implementation
- * based on the help and contribution of
- * Achim Stöhr.
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/*jslint continue:true */
-/*global define, window, DataView, Blob, Uint8Array, console */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define(['load-image'], factory);
- } else {
- // Browser globals:
- factory(window.loadImage);
- }
-}(function (loadImage) {
- 'use strict';
-
- var hasblobSlice = window.Blob && (Blob.prototype.slice ||
- Blob.prototype.webkitSlice || Blob.prototype.mozSlice);
-
- loadImage.blobSlice = hasblobSlice && function () {
- var slice = this.slice || this.webkitSlice || this.mozSlice;
- return slice.apply(this, arguments);
- };
-
- loadImage.metaDataParsers = {
- jpeg: {
- 0xffe1: [] // APP1 marker
- }
- };
-
- // Parses image meta data and calls the callback with an object argument
- // with the following properties:
- // * imageHead: The complete image head as ArrayBuffer (Uint8Array for IE10)
- // The options arguments accepts an object and supports the following properties:
- // * maxMetaDataSize: Defines the maximum number of bytes to parse.
- // * disableImageHead: Disables creating the imageHead property.
- loadImage.parseMetaData = function (file, callback, options) {
- options = options || {};
- var that = this,
- // 256 KiB should contain all EXIF/ICC/IPTC segments:
- maxMetaDataSize = options.maxMetaDataSize || 262144,
- data = {},
- noMetaData = !(window.DataView && file && file.size >= 12 &&
- file.type === 'image/jpeg' && loadImage.blobSlice);
- if (noMetaData || !loadImage.readFile(
- loadImage.blobSlice.call(file, 0, maxMetaDataSize),
- function (e) {
- if (e.target.error) {
- // FileReader error
- console.log(e.target.error);
- callback(data);
- return;
- }
- // Note on endianness:
- // Since the marker and length bytes in JPEG files are always
- // stored in big endian order, we can leave the endian parameter
- // of the DataView methods undefined, defaulting to big endian.
- var buffer = e.target.result,
- dataView = new DataView(buffer),
- offset = 2,
- maxOffset = dataView.byteLength - 4,
- headLength = offset,
- markerBytes,
- markerLength,
- parsers,
- i;
- // Check for the JPEG marker (0xffd8):
- if (dataView.getUint16(0) === 0xffd8) {
- while (offset < maxOffset) {
- markerBytes = dataView.getUint16(offset);
- // Search for APPn (0xffeN) and COM (0xfffe) markers,
- // which contain application-specific meta-data like
- // Exif, ICC and IPTC data and text comments:
- if ((markerBytes >= 0xffe0 && markerBytes <= 0xffef) ||
- markerBytes === 0xfffe) {
- // The marker bytes (2) are always followed by
- // the length bytes (2), indicating the length of the
- // marker segment, which includes the length bytes,
- // but not the marker bytes, so we add 2:
- markerLength = dataView.getUint16(offset + 2) + 2;
- if (offset + markerLength > dataView.byteLength) {
- console.log('Invalid meta data: Invalid segment size.');
- break;
- }
- parsers = loadImage.metaDataParsers.jpeg[markerBytes];
- if (parsers) {
- for (i = 0; i < parsers.length; i += 1) {
- parsers[i].call(
- that,
- dataView,
- offset,
- markerLength,
- data,
- options
- );
- }
- }
- offset += markerLength;
- headLength = offset;
- } else {
- // Not an APPn or COM marker, probably safe to
- // assume that this is the end of the meta data
- break;
- }
- }
- // Meta length must be longer than JPEG marker (2)
- // plus APPn marker (2), followed by length bytes (2):
- if (!options.disableImageHead && headLength > 6) {
- if (buffer.slice) {
- data.imageHead = buffer.slice(0, headLength);
- } else {
- // Workaround for IE10, which does not yet
- // support ArrayBuffer.slice:
- data.imageHead = new Uint8Array(buffer)
- .subarray(0, headLength);
- }
- }
- } else {
- console.log('Invalid JPEG file: Missing JPEG marker.');
- }
- callback(data);
- },
- 'readAsArrayBuffer'
- )) {
- callback(data);
- }
- };
-
-}));
diff --git a/milfs/addon/brigada/js/load-image-orientation.js b/milfs/addon/brigada/js/load-image-orientation.js
deleted file mode 100644
index f0a32fa..0000000
--- a/milfs/addon/brigada/js/load-image-orientation.js
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * JavaScript Load Image Orientation 1.1.0
- * https://github.com/blueimp/JavaScript-Load-Image
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/*global define, window */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define(['load-image'], factory);
- } else {
- // Browser globals:
- factory(window.loadImage);
- }
-}(function (loadImage) {
- 'use strict';
-
- var originalHasCanvasOption = loadImage.hasCanvasOption,
- originalTransformCoordinates = loadImage.transformCoordinates,
- originalGetTransformedOptions = loadImage.getTransformedOptions;
-
- // This method is used to determine if the target image
- // should be a canvas element:
- loadImage.hasCanvasOption = function (options) {
- return originalHasCanvasOption.call(loadImage, options) ||
- options.orientation;
- };
-
- // Transform image orientation based on
- // the given EXIF orientation option:
- loadImage.transformCoordinates = function (canvas, options) {
- originalTransformCoordinates.call(loadImage, canvas, options);
- var ctx = canvas.getContext('2d'),
- width = canvas.width,
- height = canvas.height,
- orientation = options.orientation;
- if (!orientation || orientation > 8) {
- return;
- }
- if (orientation > 4) {
- canvas.width = height;
- canvas.height = width;
- }
- switch (orientation) {
- case 2:
- // horizontal flip
- ctx.translate(width, 0);
- ctx.scale(-1, 1);
- break;
- case 3:
- // 180° rotate left
- ctx.translate(width, height);
- ctx.rotate(Math.PI);
- break;
- case 4:
- // vertical flip
- ctx.translate(0, height);
- ctx.scale(1, -1);
- break;
- case 5:
- // vertical flip + 90 rotate right
- ctx.rotate(0.5 * Math.PI);
- ctx.scale(1, -1);
- break;
- case 6:
- // 90° rotate right
- ctx.rotate(0.5 * Math.PI);
- ctx.translate(0, -height);
- break;
- case 7:
- // horizontal flip + 90 rotate right
- ctx.rotate(0.5 * Math.PI);
- ctx.translate(width, -height);
- ctx.scale(-1, 1);
- break;
- case 8:
- // 90° rotate left
- ctx.rotate(-0.5 * Math.PI);
- ctx.translate(-width, 0);
- break;
- }
- };
-
- // Transforms coordinate and dimension options
- // based on the given orientation option:
- loadImage.getTransformedOptions = function (img, opts) {
- var options = originalGetTransformedOptions.call(loadImage, img, opts),
- orientation = options.orientation,
- newOptions,
- i;
- if (!orientation || orientation > 8 || orientation === 1) {
- return options;
- }
- newOptions = {};
- for (i in options) {
- if (options.hasOwnProperty(i)) {
- newOptions[i] = options[i];
- }
- }
- switch (options.orientation) {
- case 2:
- // horizontal flip
- newOptions.left = options.right;
- newOptions.right = options.left;
- break;
- case 3:
- // 180° rotate left
- newOptions.left = options.right;
- newOptions.top = options.bottom;
- newOptions.right = options.left;
- newOptions.bottom = options.top;
- break;
- case 4:
- // vertical flip
- newOptions.top = options.bottom;
- newOptions.bottom = options.top;
- break;
- case 5:
- // vertical flip + 90 rotate right
- newOptions.left = options.top;
- newOptions.top = options.left;
- newOptions.right = options.bottom;
- newOptions.bottom = options.right;
- break;
- case 6:
- // 90° rotate right
- newOptions.left = options.top;
- newOptions.top = options.right;
- newOptions.right = options.bottom;
- newOptions.bottom = options.left;
- break;
- case 7:
- // horizontal flip + 90 rotate right
- newOptions.left = options.bottom;
- newOptions.top = options.right;
- newOptions.right = options.top;
- newOptions.bottom = options.left;
- break;
- case 8:
- // 90° rotate left
- newOptions.left = options.bottom;
- newOptions.top = options.left;
- newOptions.right = options.top;
- newOptions.bottom = options.right;
- break;
- }
- if (options.orientation > 4) {
- newOptions.maxWidth = options.maxHeight;
- newOptions.maxHeight = options.maxWidth;
- newOptions.minWidth = options.minHeight;
- newOptions.minHeight = options.minWidth;
- newOptions.sourceWidth = options.sourceHeight;
- newOptions.sourceHeight = options.sourceWidth;
- }
- return newOptions;
- };
-
-}));
diff --git a/milfs/addon/brigada/js/load-image.all.min.js b/milfs/addon/brigada/js/load-image.all.min.js
deleted file mode 100644
index edabcd1..0000000
--- a/milfs/addon/brigada/js/load-image.all.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(a){"use strict";var b=function(a,c,d){var e,f,g=document.createElement("img");if(g.onerror=c,g.onload=function(){!f||d&&d.noRevoke||b.revokeObjectURL(f),c&&c(b.scale(g,d))},b.isInstanceOf("Blob",a)||b.isInstanceOf("File",a))e=f=b.createObjectURL(a),g._type=a.type;else{if("string"!=typeof a)return!1;e=a,d&&d.crossOrigin&&(g.crossOrigin=d.crossOrigin)}return e?(g.src=e,g):b.readFile(a,function(a){var b=a.target;b&&b.result?g.src=b.result:c&&c(a)})},c=window.createObjectURL&&window||window.URL&&URL.revokeObjectURL&&URL||window.webkitURL&&webkitURL;b.isInstanceOf=function(a,b){return Object.prototype.toString.call(b)==="[object "+a+"]"},b.transformCoordinates=function(){},b.getTransformedOptions=function(a,b){var c,d,e,f,g=b.aspectRatio;if(!g)return b;c={};for(d in b)b.hasOwnProperty(d)&&(c[d]=b[d]);return c.crop=!0,e=a.naturalWidth||a.width,f=a.naturalHeight||a.height,e/f>g?(c.maxWidth=f*g,c.maxHeight=f):(c.maxWidth=e,c.maxHeight=e/g),c},b.renderImageToCanvas=function(a,b,c,d,e,f,g,h,i,j){return a.getContext("2d").drawImage(b,c,d,e,f,g,h,i,j),a},b.hasCanvasOption=function(a){return a.canvas||a.crop||a.aspectRatio},b.scale=function(a,c){c=c||{};var d,e,f,g,h,i,j,k,l,m=document.createElement("canvas"),n=a.getContext||b.hasCanvasOption(c)&&m.getContext,o=a.naturalWidth||a.width,p=a.naturalHeight||a.height,q=o,r=p,s=function(){var a=Math.max((f||q)/q,(g||r)/r);a>1&&(q*=a,r*=a)},t=function(){var a=Math.min((d||q)/q,(e||r)/r);1>a&&(q*=a,r*=a)};return n&&(c=b.getTransformedOptions(a,c),j=c.left||0,k=c.top||0,c.sourceWidth?(h=c.sourceWidth,void 0!==c.right&&void 0===c.left&&(j=o-h-c.right)):h=o-j-(c.right||0),c.sourceHeight?(i=c.sourceHeight,void 0!==c.bottom&&void 0===c.top&&(k=p-i-c.bottom)):i=p-k-(c.bottom||0),q=h,r=i),d=c.maxWidth,e=c.maxHeight,f=c.minWidth,g=c.minHeight,n&&d&&e&&c.crop?(q=d,r=e,l=h/i-d/e,0>l?(i=e*h/d,void 0===c.top&&void 0===c.bottom&&(k=(p-i)/2)):l>0&&(h=d*i/e,void 0===c.left&&void 0===c.right&&(j=(o-h)/2))):((c.contain||c.cover)&&(f=d=d||f,g=e=e||g),c.cover?(t(),s()):(s(),t())),n?(m.width=q,m.height=r,b.transformCoordinates(m,c),b.renderImageToCanvas(m,a,j,k,h,i,0,0,q,r)):(a.width=q,a.height=r,a)},b.createObjectURL=function(a){return c?c.createObjectURL(a):!1},b.revokeObjectURL=function(a){return c?c.revokeObjectURL(a):!1},b.readFile=function(a,b,c){if(window.FileReader){var d=new FileReader;if(d.onload=d.onerror=b,c=c||"readAsDataURL",d[c])return d[c](a),d}return!1},"function"==typeof define&&define.amd?define(function(){return b}):a.loadImage=b}(window),function(a){"use strict";"function"==typeof define&&define.amd?define(["load-image"],a):a(window.loadImage)}(function(a){"use strict";if(window.navigator&&window.navigator.platform&&/iP(hone|od|ad)/.test(window.navigator.platform)){var b=a.renderImageToCanvas;a.detectSubsampling=function(a){var b,c;return a.width*a.height>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-a.width+1,0),0===c.getImageData(0,0,1,1).data[3]):!1},a.detectVerticalSquash=function(a,b){var c,d,e,f,g,h=a.naturalHeight||a.height,i=document.createElement("canvas"),j=i.getContext("2d");for(b&&(h/=2),i.width=1,i.height=h,j.drawImage(a,0,0),c=j.getImageData(0,0,1,h).data,d=0,e=h,f=h;f>d;)g=c[4*(f-1)+3],0===g?e=f:d=f,f=e+d>>1;return f/h||1},a.renderImageToCanvas=function(c,d,e,f,g,h,i,j,k,l){if("image/jpeg"===d._type){var m,n,o,p,q=c.getContext("2d"),r=document.createElement("canvas"),s=1024,t=r.getContext("2d");if(r.width=s,r.height=s,q.save(),m=a.detectSubsampling(d),m&&(e/=2,f/=2,g/=2,h/=2),n=a.detectVerticalSquash(d,m),m||1!==n){for(f*=n,k=Math.ceil(s*k/g),l=Math.ceil(s*l/h/n),j=0,p=0;h>p;){for(i=0,o=0;g>o;)t.clearRect(0,0,s,s),t.drawImage(d,e,f,g,h,-o,-p,g,h),q.drawImage(r,0,0,s,s,i,j,k,l),o+=s,i+=k;p+=s,j+=l}return q.restore(),c}}return b(c,d,e,f,g,h,i,j,k,l)}}}),function(a){"use strict";"function"==typeof define&&define.amd?define(["load-image"],a):a(window.loadImage)}(function(a){"use strict";var b=a.hasCanvasOption,c=a.transformCoordinates,d=a.getTransformedOptions;a.hasCanvasOption=function(c){return b.call(a,c)||c.orientation},a.transformCoordinates=function(b,d){c.call(a,b,d);var e=b.getContext("2d"),f=b.width,g=b.height,h=d.orientation;if(h&&!(h>8))switch(h>4&&(b.width=g,b.height=f),h){case 2:e.translate(f,0),e.scale(-1,1);break;case 3:e.translate(f,g),e.rotate(Math.PI);break;case 4:e.translate(0,g),e.scale(1,-1);break;case 5:e.rotate(.5*Math.PI),e.scale(1,-1);break;case 6:e.rotate(.5*Math.PI),e.translate(0,-g);break;case 7:e.rotate(.5*Math.PI),e.translate(f,-g),e.scale(-1,1);break;case 8:e.rotate(-.5*Math.PI),e.translate(-f,0)}},a.getTransformedOptions=function(b,c){var e,f,g=d.call(a,b,c),h=g.orientation;if(!h||h>8||1===h)return g;e={};for(f in g)g.hasOwnProperty(f)&&(e[f]=g[f]);switch(g.orientation){case 2:e.left=g.right,e.right=g.left;break;case 3:e.left=g.right,e.top=g.bottom,e.right=g.left,e.bottom=g.top;break;case 4:e.top=g.bottom,e.bottom=g.top;break;case 5:e.left=g.top,e.top=g.left,e.right=g.bottom,e.bottom=g.right;break;case 6:e.left=g.top,e.top=g.right,e.right=g.bottom,e.bottom=g.left;break;case 7:e.left=g.bottom,e.top=g.right,e.right=g.top,e.bottom=g.left;break;case 8:e.left=g.bottom,e.top=g.left,e.right=g.top,e.bottom=g.right}return g.orientation>4&&(e.maxWidth=g.maxHeight,e.maxHeight=g.maxWidth,e.minWidth=g.minHeight,e.minHeight=g.minWidth,e.sourceWidth=g.sourceHeight,e.sourceHeight=g.sourceWidth),e}}),function(a){"use strict";"function"==typeof define&&define.amd?define(["load-image"],a):a(window.loadImage)}(function(a){"use strict";var b=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);a.blobSlice=b&&function(){var a=this.slice||this.webkitSlice||this.mozSlice;return a.apply(this,arguments)},a.metaDataParsers={jpeg:{65505:[]}},a.parseMetaData=function(b,c,d){d=d||{};var e=this,f=d.maxMetaDataSize||262144,g={},h=!(window.DataView&&b&&b.size>=12&&"image/jpeg"===b.type&&a.blobSlice);(h||!a.readFile(a.blobSlice.call(b,0,f),function(b){if(b.target.error)return console.log(b.target.error),void c(g);var f,h,i,j,k=b.target.result,l=new DataView(k),m=2,n=l.byteLength-4,o=m;if(65496===l.getUint16(0)){for(;n>m&&(f=l.getUint16(m),f>=65504&&65519>=f||65534===f);){if(h=l.getUint16(m+2)+2,m+h>l.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(i=a.metaDataParsers.jpeg[f])for(j=0;j6&&(g.imageHead=k.slice?k.slice(0,o):new Uint8Array(k).subarray(0,o))}else console.log("Invalid JPEG file: Missing JPEG marker.");c(g)},"readAsArrayBuffer"))&&c(g)}}),function(a){"use strict";"function"==typeof define&&define.amd?define(["load-image","load-image-meta"],a):a(window.loadImage)}(function(a){"use strict";a.ExifMap=function(){return this},a.ExifMap.prototype.map={Orientation:274},a.ExifMap.prototype.get=function(a){return this[a]||this[this.map[a]]},a.getExifThumbnail=function(a,b,c){var d,e,f;if(!c||b+c>a.byteLength)return void console.log("Invalid Exif data: Invalid thumbnail data.");for(d=[],e=0;c>e;e+=1)f=a.getUint8(b+e),d.push((16>f?"0":"")+f.toString(16));return"data:image/jpeg,%"+d.join("%")},a.exifTagTypes={1:{getValue:function(a,b){return a.getUint8(b)},size:1},2:{getValue:function(a,b){return String.fromCharCode(a.getUint8(b))},size:1,ascii:!0},3:{getValue:function(a,b,c){return a.getUint16(b,c)},size:2},4:{getValue:function(a,b,c){return a.getUint32(b,c)},size:4},5:{getValue:function(a,b,c){return a.getUint32(b,c)/a.getUint32(b+4,c)},size:8},9:{getValue:function(a,b,c){return a.getInt32(b,c)},size:4},10:{getValue:function(a,b,c){return a.getInt32(b,c)/a.getInt32(b+4,c)},size:8}},a.exifTagTypes[7]=a.exifTagTypes[1],a.getExifValue=function(b,c,d,e,f,g){var h,i,j,k,l,m,n=a.exifTagTypes[e];if(!n)return void console.log("Invalid Exif data: Invalid tag type.");if(h=n.size*f,i=h>4?c+b.getUint32(d+8,g):d+8,i+h>b.byteLength)return void console.log("Invalid Exif data: Invalid data offset.");if(1===f)return n.getValue(b,i,g);for(j=[],k=0;f>k;k+=1)j[k]=n.getValue(b,i+k*n.size,g);if(n.ascii){for(l="",k=0;ka.byteLength)return void console.log("Invalid Exif data: Invalid directory offset.");if(f=a.getUint16(c,d),g=c+2+12*f,g+4>a.byteLength)return void console.log("Invalid Exif data: Invalid directory size.");for(h=0;f>h;h+=1)this.parseExifTag(a,b,c+2+12*h,d,e);return a.getUint32(g,d)},a.parseExifData=function(b,c,d,e,f){if(!f.disableExif){var g,h,i,j=c+10;if(1165519206===b.getUint32(c+4)){if(j+8>b.byteLength)return void console.log("Invalid Exif data: Invalid segment size.");if(0!==b.getUint16(c+8))return void console.log("Invalid Exif data: Missing byte alignment offset.");switch(b.getUint16(j)){case 18761:g=!0;break;case 19789:g=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==b.getUint16(j+2,g))return void console.log("Invalid Exif data: Missing TIFF marker.");h=b.getUint32(j+4,g),e.exif=new a.ExifMap,h=a.parseExifTags(b,j,j+h,g,e),h&&!f.disableExifThumbnail&&(i={exif:{}},h=a.parseExifTags(b,j,j+h,g,i),i.exif[513]&&(e.exif.Thumbnail=a.getExifThumbnail(b,j+i.exif[513],i.exif[514]))),e.exif[34665]&&!f.disableExifSub&&a.parseExifTags(b,j,j+e.exif[34665],g,e),e.exif[34853]&&!f.disableExifGps&&a.parseExifTags(b,j,j+e.exif[34853],g,e)}}},a.metaDataParsers.jpeg[65505].push(a.parseExifData)}),function(a){"use strict";"function"==typeof define&&define.amd?define(["load-image","load-image-exif"],a):a(window.loadImage)}(function(a){"use strict";a.ExifMap.prototype.tags={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},a.ExifMap.prototype.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}},a.ExifMap.prototype.getText=function(a){var b=this.get(a);switch(a){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[a][b];case"ExifVersion":case"FlashpixVersion":return String.fromCharCode(b[0],b[1],b[2],b[3]);case"ComponentsConfiguration":return this.stringValues[a][b[0]]+this.stringValues[a][b[1]]+this.stringValues[a][b[2]]+this.stringValues[a][b[3]];case"GPSVersionID":return b[0]+"."+b[1]+"."+b[2]+"."+b[3]}return String(b)},function(a){var b,c=a.tags,d=a.map;for(b in c)c.hasOwnProperty(b)&&(d[c[b]]=b)}(a.ExifMap.prototype),a.ExifMap.prototype.getAll=function(){var a,b,c={};for(a in this)this.hasOwnProperty(a)&&(b=this.tags[a],b&&(c[b]=this.getText(b)));return c}});
\ No newline at end of file
diff --git a/milfs/addon/brigada/js/load-image.js b/milfs/addon/brigada/js/load-image.js
deleted file mode 100644
index ff9568c..0000000
--- a/milfs/addon/brigada/js/load-image.js
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * JavaScript Load Image 1.10.0
- * https://github.com/blueimp/JavaScript-Load-Image
- *
- * Copyright 2011, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/*jslint nomen: true */
-/*global define, window, document, URL, webkitURL, Blob, File, FileReader */
-
-(function ($) {
- 'use strict';
-
- // Loads an image for a given File object.
- // Invokes the callback with an img or optional canvas
- // element (if supported by the browser) as parameter:
- var loadImage = function (file, callback, options) {
- var img = document.createElement('img'),
- url,
- oUrl;
- //img.setAttribute('class', 'watermark');
- // img.setAttribute('id', 'image_output2');
- img.onerror = callback;
- img.onload = function () {
- if (oUrl && !(options && options.noRevoke)) {
- loadImage.revokeObjectURL(oUrl);
- }
- if (callback) {
- callback(loadImage.scale(img, options));
- }
- };
- if (loadImage.isInstanceOf('Blob', file) ||
- // Files are also Blob instances, but some browsers
- // (Firefox 3.6) support the File API but not Blobs:
- loadImage.isInstanceOf('File', file)) {
- url = oUrl = loadImage.createObjectURL(file);
- // Store the file type for resize processing:
- img._type = file.type;
- } else if (typeof file === 'string') {
- url = file;
- if (options && options.crossOrigin) {
- img.crossOrigin = options.crossOrigin;
- }
- } else {
- return false;
- }
- if (url) {
- img.src = url;
- //document.getElementById('image_output').src = url ;
- //document.getElementById('image_output').className = "watermark" ;
- return img;
- }
- return loadImage.readFile(file, function (e) {
- var target = e.target;
- if (target && target.result) {
- img.src = target.result;
- } else {
- if (callback) {
- callback(e);
- }
- }
- });
- },
- // The check for URL.revokeObjectURL fixes an issue with Opera 12,
- // which provides URL.createObjectURL but doesn't properly implement it:
- urlAPI = (window.createObjectURL && window) ||
- (window.URL && URL.revokeObjectURL && URL) ||
- (window.webkitURL && webkitURL);
-
- loadImage.isInstanceOf = function (type, obj) {
- // Cross-frame instanceof check
- return Object.prototype.toString.call(obj) === '[object ' + type + ']';
- };
-
- // Transform image coordinates, allows to override e.g.
- // the canvas orientation based on the orientation option,
- // gets canvas, options passed as arguments:
- loadImage.transformCoordinates = function () {
- return;
- };
-
- // Returns transformed options, allows to override e.g.
- // maxWidth, maxHeight and crop options based on the aspectRatio.
- // gets img, options passed as arguments:
- loadImage.getTransformedOptions = function (img, options) {
- var aspectRatio = options.aspectRatio,
- newOptions,
- i,
- width,
- height;
- if (!aspectRatio) {
- return options;
- }
- newOptions = {};
- for (i in options) {
- if (options.hasOwnProperty(i)) {
- newOptions[i] = options[i];
- }
- }
- newOptions.crop = true;
- width = img.naturalWidth || img.width;
- height = img.naturalHeight || img.height;
- if (width / height > aspectRatio) {
- newOptions.maxWidth = height * aspectRatio;
- newOptions.maxHeight = height;
- } else {
- newOptions.maxWidth = width;
- newOptions.maxHeight = width / aspectRatio;
- }
- return newOptions;
- };
-
- // Canvas render method, allows to override the
- // rendering e.g. to work around issues on iOS:
- loadImage.renderImageToCanvas = function (
- canvas,
- img,
- sourceX,
- sourceY,
- sourceWidth,
- sourceHeight,
- destX,
- destY,
- destWidth,
- destHeight
- ) {
- canvas.getContext('2d').drawImage(
- img,
- sourceX,
- sourceY,
- sourceWidth,
- sourceHeight,
- destX,
- destY,
- destWidth,
- destHeight
- );
- return canvas;
- };
-
- // This method is used to determine if the target image
- // should be a canvas element:
- loadImage.hasCanvasOption = function (options) {
- return options.canvas || options.crop || options.aspectRatio;
- };
-
- // Scales and/or crops the given image (img or canvas HTML element)
- // using the given options.
- // Returns a canvas object if the browser supports canvas
- // and the hasCanvasOption method returns true or a canvas
- // object is passed as image, else the scaled image:
- loadImage.scale = function (img, options) {
- options = options || {};
- var canvas = document.createElement('canvas'),
- useCanvas = img.getContext ||
- (loadImage.hasCanvasOption(options) && canvas.getContext),
- width = img.naturalWidth || img.width,
- height = img.naturalHeight || img.height,
- destWidth = width,
- destHeight = height,
- maxWidth,
- maxHeight,
- minWidth,
- minHeight,
- sourceWidth,
- sourceHeight,
- sourceX,
- sourceY,
- tmp,
- scaleUp = function () {
- var scale = Math.max(
- (minWidth || destWidth) / destWidth,
- (minHeight || destHeight) / destHeight
- );
- if (scale > 1) {
- destWidth = destWidth * scale;
- destHeight = destHeight * scale;
- }
- },
- scaleDown = function () {
- var scale = Math.min(
- (maxWidth || destWidth) / destWidth,
- (maxHeight || destHeight) / destHeight
- );
- if (scale < 1) {
- destWidth = destWidth * scale;
- destHeight = destHeight * scale;
- }
- };
- if (useCanvas) {
- options = loadImage.getTransformedOptions(img, options);
- sourceX = options.left || 0;
- sourceY = options.top || 0;
- if (options.sourceWidth) {
- sourceWidth = options.sourceWidth;
- if (options.right !== undefined && options.left === undefined) {
- sourceX = width - sourceWidth - options.right;
- }
- } else {
- sourceWidth = width - sourceX - (options.right || 0);
- }
- if (options.sourceHeight) {
- sourceHeight = options.sourceHeight;
- if (options.bottom !== undefined && options.top === undefined) {
- sourceY = height - sourceHeight - options.bottom;
- }
- } else {
- sourceHeight = height - sourceY - (options.bottom || 0);
- }
- destWidth = sourceWidth;
- destHeight = sourceHeight;
- }
- maxWidth = options.maxWidth;
- maxHeight = options.maxHeight;
- minWidth = options.minWidth;
- minHeight = options.minHeight;
- if (useCanvas && maxWidth && maxHeight && options.crop) {
- destWidth = maxWidth;
- destHeight = maxHeight;
- tmp = sourceWidth / sourceHeight - maxWidth / maxHeight;
- if (tmp < 0) {
- sourceHeight = maxHeight * sourceWidth / maxWidth;
- if (options.top === undefined && options.bottom === undefined) {
- sourceY = (height - sourceHeight) / 2;
- }
- } else if (tmp > 0) {
- sourceWidth = maxWidth * sourceHeight / maxHeight;
- if (options.left === undefined && options.right === undefined) {
- sourceX = (width - sourceWidth) / 2;
- }
- }
- } else {
- if (options.contain || options.cover) {
- minWidth = maxWidth = maxWidth || minWidth;
- minHeight = maxHeight = maxHeight || minHeight;
- }
- if (options.cover) {
- scaleDown();
- scaleUp();
- } else {
- scaleUp();
- scaleDown();
- }
- }
- if (useCanvas) {
- canvas.width = destWidth;
- canvas.height = destHeight;
- loadImage.transformCoordinates(
- canvas,
- options
- );
- return loadImage.renderImageToCanvas(
- canvas,
- img,
- sourceX,
- sourceY,
- sourceWidth,
- sourceHeight,
- 0,
- 0,
- destWidth,
- destHeight
- );
- }
- img.width = destWidth;
- img.height = destHeight;
- return img;
- };
-
- loadImage.createObjectURL = function (file) {
- return urlAPI ? urlAPI.createObjectURL(file) : false;
- };
-
- loadImage.revokeObjectURL = function (url) {
- return urlAPI ? urlAPI.revokeObjectURL(url) : false;
- };
-
- // Loads a given File object via FileReader interface,
- // invokes the callback with the event object (load or error).
- // The result can be read via event.target.result:
- loadImage.readFile = function (file, callback, method) {
- if (window.FileReader) {
- var fileReader = new FileReader();
- fileReader.onload = fileReader.onerror = callback;
- method = method || 'readAsDataURL';
- if (fileReader[method]) {
- fileReader[method](file);
- return fileReader;
- }
- }
- return false;
- };
-
- if (typeof define === 'function' && define.amd) {
- define(function () {
- return loadImage;
- });
- } else {
- $.loadImage = loadImage;
- }
-}(window));
diff --git a/milfs/addon/brigada/logis.php b/milfs/addon/brigada/logis.php
deleted file mode 100644
index 89fd343..0000000
--- a/milfs/addon/brigada/logis.php
+++ /dev/null
@@ -1,363 +0,0 @@
-
-
- ";
-}
-
-$imagen = "
- ";
-
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tu navegador no soporta canvas.
-
-
-
-
- Tu navegador no soporta canvas.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Grabalo!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/brigada/logis.php.php b/milfs/addon/brigada/logis.php.php
deleted file mode 100644
index aebaa03..0000000
--- a/milfs/addon/brigada/logis.php.php
+++ /dev/null
@@ -1,207 +0,0 @@
-
-
- ";
-}
-
-$imagen = "
- ";
-
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tu navegador no soporta canvas.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/brigada/logis_completo.php b/milfs/addon/brigada/logis_completo.php
deleted file mode 100644
index e526ead..0000000
--- a/milfs/addon/brigada/logis_completo.php
+++ /dev/null
@@ -1,207 +0,0 @@
-
-
- ";
-}
-
-$imagen = "
- ";
-
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tu navegador no soporta canvas.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/brigadistas/brigadistas.php b/milfs/addon/brigadistas/brigadistas.php
deleted file mode 100644
index 1d7bba5..0000000
--- a/milfs/addon/brigadistas/brigadistas.php
+++ /dev/null
@@ -1,436 +0,0 @@
-
-
- ";
-}
-
-$imagen = "
- ";
-
-?>
-
-
-
-
-
-
-
-
-
-
-
Elige un Logo
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Grabalo!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/brigadistas/funciones/funciones.php b/milfs/addon/brigadistas/funciones/funciones.php
deleted file mode 100644
index cb7e86b..0000000
--- a/milfs/addon/brigadistas/funciones/funciones.php
+++ /dev/null
@@ -1,84 +0,0 @@
-";
- $respuesta->addScript("javascript: document.getElementById('imagen').value= '$imagen' ;");
- $respuesta->addAssign("aviso","innerHTML","$preview");
- return $respuesta;
-
-}
-$xajax->registerFunction("brigadistas_grabar_imagen");
-
-function brigadistas_grabar($formulario) {
-
- $identificador = $formulario['identificador'];
- $control = md5("$identificador");
- $data = $formulario['debugConsole'];
- $imagen= grabar_imagen($data,$control);
- $texto_url = urlencode("#BrigadaDigital");
- $uri = urlencode("$_SESSION[url]/images/secure/?file=600/$imagen");
- $url ="https://twitter.com/share?url=$uri&text=$texto_url";
- //$respuesta->addScript("window.location.href ='$url';");
- $preview = "
-
-
-";
-
- $respuesta = new xajaxResponse('utf-8');
- //$identificador = $formulario['identificador'];
- $id_formulario = $formulario['formulario_id'];
- $campo_imagen = buscar_campo_tipo("$id_formulario","15");
- $formulario[$campo_imagen[0]][0] = $imagen;
- $empresa = remplacetas('form_id','id',"$id_formulario",'id_empresa',"") ;
- $id_empresa = $empresa[0];
-
- include_once("librerias/conex.php");
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-
- foreach($formulario as $campo=>$valor){
- if(is_array($valor)) {
- foreach($valor as $c=>$v){
- $consulta = "INSERT INTO form_datos ( timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( UNIX_TIMESTAMP(),'$_SESSION[id]','$id_empresa','$id_formulario','$ip' ,'$control', '$campo' , '$v')
- ";
- $sql=mysqli_query($consulta,$link);
- // $campos .= " $campo // $valor // $c -> $v $consulta ";
- }
- }
- }
-
-$resultado = "$preview ";
-
- $respuesta->addAssign("aviso","innerHTML","$preview");
- //$respuesta->addAlert("$resultado");
- //$respuesta->addScript("javascript:location.reload(true);");
- return $respuesta;
-}
-$xajax->registerFunction("brigadistas_grabar");
-
-
-
-?>
\ No newline at end of file
diff --git a/milfs/addon/brigadistas/images/logos/a.png b/milfs/addon/brigadistas/images/logos/a.png
deleted file mode 100644
index fce0d03..0000000
Binary files a/milfs/addon/brigadistas/images/logos/a.png and /dev/null differ
diff --git a/milfs/addon/brigadistas/images/logos/b.png b/milfs/addon/brigadistas/images/logos/b.png
deleted file mode 100644
index 8eab5ac..0000000
Binary files a/milfs/addon/brigadistas/images/logos/b.png and /dev/null differ
diff --git a/milfs/addon/brigadistas/images/logos/c.png b/milfs/addon/brigadistas/images/logos/c.png
deleted file mode 100644
index 1d95ac7..0000000
Binary files a/milfs/addon/brigadistas/images/logos/c.png and /dev/null differ
diff --git a/milfs/addon/brigadistas/index.php b/milfs/addon/brigadistas/index.php
deleted file mode 100644
index e69de29..0000000
diff --git a/milfs/addon/dummy/config.php b/milfs/addon/dummy/config.php
deleted file mode 100644
index e69de29..0000000
diff --git a/milfs/addon/dummy/index.php b/milfs/addon/dummy/index.php
deleted file mode 100644
index e69de29..0000000
diff --git a/milfs/addon/funciones.php b/milfs/addon/funciones.php
deleted file mode 100644
index 4a78e1c..0000000
--- a/milfs/addon/funciones.php
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/milfs/addon/logis/.goutputstream-WQKM8X b/milfs/addon/logis/.goutputstream-WQKM8X
deleted file mode 100644
index 521b5fa..0000000
--- a/milfs/addon/logis/.goutputstream-WQKM8X
+++ /dev/null
@@ -1,510 +0,0 @@
-
-
- ";
-}
-
-$imagen = "
- ";
-
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tu navegador no soporta canvas.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Aviso
-
-
-
-
-
- Grabalo!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/logis/funciones/funciones.php b/milfs/addon/logis/funciones/funciones.php
deleted file mode 100644
index 672f1cd..0000000
--- a/milfs/addon/logis/funciones/funciones.php
+++ /dev/null
@@ -1,91 +0,0 @@
-";
- $respuesta->addScript("javascript: document.getElementById('imagen').value= '$imagen' ;");
- $respuesta->addAssign("aviso","innerHTML","$preview");
- return $respuesta;
-
-}
-$xajax->registerFunction("brigadistas_grabar_imagen");
-
-function brigadistas_grabar($formulario) {
-
- $identificador = $formulario['identificador'];
- $control = md5("$identificador");
- $data = $formulario['debugConsole'];
- $imagen= grabar_imagen($data,$control);
- $texto_url = urlencode("#BrigadaDigital");
- $uri = urlencode("$_SESSION[url]/images/secure/?file=600/$imagen");
- $url ="https://twitter.com/share?url=$uri&text=$texto_url";
-
-
- //$respuesta->addScript("window.location.href ='$url';");
-
-
- $respuesta = new xajaxResponse('utf-8');
- //$identificador = $formulario['identificador'];
- $id_formulario = $formulario['formulario_id'];
- $campo_imagen = buscar_campo_tipo("$id_formulario","15");
- $formulario[$campo_imagen[0]][0] = $imagen;
- $empresa = remplacetas('form_id','id',"$id_formulario",'id_empresa',"") ;
- $id_empresa = $empresa[0];
-
- include_once("librerias/conex.php");
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-
- foreach($formulario as $campo=>$valor){
- if(is_array($valor)) {
- foreach($valor as $c=>$v){
- $consulta = "INSERT INTO form_datos ( timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( UNIX_TIMESTAMP(),'$_SESSION[id]','$id_empresa','$id_formulario','$ip' ,'$control', '$campo' , '".mysqli_real_escape_string($link, $v )."')
- ";
- $sql=mysqli_query($consulta,$link);
-
- // $campos .= " $campo // $valor // $c -> $v $consulta ";
- }
- }
- }
- $twitter = $formulario['498'][0];
- $_SESSION['logis'] = "$control";
- $_SESSION['mensaje'] = "$twitter";
- $preview = "
-
-
-
-
-
-
-
-
-";
-$resultado = "$preview ";
-
- $respuesta->addAssign("aviso","innerHTML","$preview");
- //$respuesta->addAlert("$resultado");
- //$respuesta->addScript("javascript:location.reload(true);");
- return $respuesta;
-}
-$xajax->registerFunction("brigadistas_grabar");
-
-
-
-?>
\ No newline at end of file
diff --git a/milfs/addon/logis/funciones/twitter/autoload.php b/milfs/addon/logis/funciones/twitter/autoload.php
deleted file mode 100644
index cff03e8..0000000
--- a/milfs/addon/logis/funciones/twitter/autoload.php
+++ /dev/null
@@ -1,36 +0,0 @@
-
\ No newline at end of file
diff --git a/milfs/addon/logis/funciones/twitter/datos.php b/milfs/addon/logis/funciones/twitter/datos.php
deleted file mode 100644
index 7b20e00..0000000
--- a/milfs/addon/logis/funciones/twitter/datos.php
+++ /dev/null
@@ -1,31 +0,0 @@
-oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
-$request_token = $connection->oauth('oauth/request_token');
-//$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
-$user = $connection->get("account/verify_credentials");
-//print $user->screen_name;
-print_r($user);
-// Post Update
-
-$content = $connection->post('statuses/update', array('status' => 'Bonito dia'));
-print_r( $content);
-print_r($url);
-
-
-//print_r($request_token); //print connection contentsa
-
-
-?>
\ No newline at end of file
diff --git a/milfs/addon/logis/funciones/twitter/hola.php b/milfs/addon/logis/funciones/twitter/hola.php
deleted file mode 100644
index 09aa8ce..0000000
--- a/milfs/addon/logis/funciones/twitter/hola.php
+++ /dev/null
@@ -1,65 +0,0 @@
-getAccessToken($_REQUEST['oauth_verifier']);
-$access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier']));
-
-
-/* Guardar el token de acceso. Normalmente, este token se guardará también en una base
- de datos para volver a ser utilizado en otras ocasiones. */
-$_SESSION['access_token'] = $access_token;
-
-/* Eliminar el token temporal de solicitud */
-unset($_SESSION['oauth_token']);
-unset($_SESSION['oauth_token_secret']);
-
-/* Si todo va bien, presentar al usuario la página principal "index.php" del servicio */
-//if (200 == $connection->http_code) {
- /* El usuario ha sido verificado */
- $_SESSION['status'] = 'verified';
- echo send_tweet($access_token);
- //}
-function base64_encode_image ($filename=string,$filetype=string) {
-if ($filename) {
-$imgbinary = fread(fopen($filename, "r"), filesize($filename));
-return base64_encode($imgbinary);
-}
-}
-
- function send_tweet($access_token) {
- $tweet = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
- $access_token['oauth_token'], $access_token['oauth_token_secret']);
- $nombre= $_SESSION['logis'].".png";
- $nombre = "$_SESSION[path_images_secure]/600/$nombre";
-
- $media1 = $tweet->upload('media/upload', array('media' => "$nombre"));
- $parameters = array('status' =>"$_SESSION[mensaje] #BrigadaDigital #CD2015 http://datos.labmde.org/jlogis",'media_ids' => implode(',', array($media1->media_id_string)),
-);
-
-$result = $tweet-> post('statuses/update', $parameters);
-/*$image = "$nombre";
-$base64 = base64_encode_image (''.$image,'png');
-$result = $tweet-> post('account/update_profile_image', array('image' => $base64.';type=image/jpg;filename='.$image));
-*/
- // $message = "Bonito dia $nombre";
- // $tweet->post('statuses/update', array('status' => "$message"));
- //
-}
-
-header('Location: https://twitter.com/hashtag/CD2015');
-
- // header('Location: ./index.php');
-//} else {
- //header('Location: ./clearsessions.php');
-//
diff --git a/milfs/addon/logis/funciones/twitter/src/Config.php b/milfs/addon/logis/funciones/twitter/src/Config.php
deleted file mode 100644
index 5815d61..0000000
--- a/milfs/addon/logis/funciones/twitter/src/Config.php
+++ /dev/null
@@ -1,64 +0,0 @@
-
- */
-class Config
-{
- /** @var int How long to wait for a response from the API */
- protected $timeout = 5;
- /** @var int how long to wait while connecting to the API */
- protected $connectionTimeout = 5;
- /**
- * Decode JSON Response as associative Array
- *
- * @see http://php.net/manual/en/function.json-decode.php
- *
- * @var bool
- */
- protected $decodeJsonAsArray = false;
- /** @var string User-Agent header */
- protected $userAgent = 'TwitterOAuth (+https://twitteroauth.com)';
- /** @var array Store proxy connection details */
- protected $proxy = [];
-
- /**
- * Set the connection and response timeouts.
- *
- * @param int $connectionTimeout
- * @param int $timeout
- */
- public function setTimeouts($connectionTimeout, $timeout)
- {
- $this->connectionTimeout = (int)$connectionTimeout;
- $this->timeout = (int)$timeout;
- }
-
- /**
- * @param bool $value
- */
- public function setDecodeJsonAsArray($value)
- {
- $this->decodeJsonAsArray = (bool)$value;
- }
-
- /**
- * @param string $userAgent
- */
- public function setUserAgent($userAgent)
- {
- $this->userAgent = (string)$userAgent;
- }
-
- /**
- * @param array $proxy
- */
- public function setProxy(array $proxy)
- {
- $this->proxy = $proxy;
- }
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/Consumer.php b/milfs/addon/logis/funciones/twitter/src/Consumer.php
deleted file mode 100644
index ceaf1ef..0000000
--- a/milfs/addon/logis/funciones/twitter/src/Consumer.php
+++ /dev/null
@@ -1,36 +0,0 @@
-key = $key;
- $this->secret = $secret;
- $this->callbackUrl = $callbackUrl;
- }
-
- /**
- * @return string
- */
- public function __toString()
- {
- return "Consumer[key=$this->key,secret=$this->secret]";
- }
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/HmacSha1.php b/milfs/addon/logis/funciones/twitter/src/HmacSha1.php
deleted file mode 100644
index d8cdab8..0000000
--- a/milfs/addon/logis/funciones/twitter/src/HmacSha1.php
+++ /dev/null
@@ -1,39 +0,0 @@
-getSignatureBaseString();
-
- $parts = [$consumer->secret, null !== $token ? $token->secret : ""];
-
- $parts = Util::urlencodeRfc3986($parts);
- $key = implode('&', $parts);
-
- return base64_encode(hash_hmac('sha1', $signatureBase, $key, true));
- }
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/Request.php b/milfs/addon/logis/funciones/twitter/src/Request.php
deleted file mode 100644
index a60c23d..0000000
--- a/milfs/addon/logis/funciones/twitter/src/Request.php
+++ /dev/null
@@ -1,254 +0,0 @@
-parameters = $parameters;
- $this->httpMethod = $httpMethod;
- $this->httpUrl = $httpUrl;
- }
-
- /**
- * pretty much a helper function to set up the request
- *
- * @param Consumer $consumer
- * @param Token $token
- * @param string $httpMethod
- * @param string $httpUrl
- * @param array $parameters
- *
- * @return Request
- */
- public static function fromConsumerAndToken(
- Consumer $consumer,
- Token $token = null,
- $httpMethod,
- $httpUrl,
- array $parameters = []
- ) {
- $defaults = [
- "oauth_version" => Request::$version,
- "oauth_nonce" => Request::generateNonce(),
- "oauth_timestamp" => time(),
- "oauth_consumer_key" => $consumer->key
- ];
- if (null !== $token) {
- $defaults['oauth_token'] = $token->key;
- }
-
- $parameters = array_merge($defaults, $parameters);
-
- return new Request($httpMethod, $httpUrl, $parameters);
- }
-
- /**
- * @param string $name
- * @param string $value
- */
- public function setParameter($name, $value)
- {
- $this->parameters[$name] = $value;
- }
-
- /**
- * @param $name
- *
- * @return string|null
- */
- public function getParameter($name)
- {
- return isset($this->parameters[$name]) ? $this->parameters[$name] : null;
- }
-
- /**
- * @return array
- */
- public function getParameters()
- {
- return $this->parameters;
- }
-
- /**
- * @param $name
- */
- public function removeParameter($name)
- {
- unset($this->parameters[$name]);
- }
-
- /**
- * The request parameters, sorted and concatenated into a normalized string.
- *
- * @return string
- */
- public function getSignableParameters()
- {
- // Grab all parameters
- $params = $this->parameters;
-
- // Remove oauth_signature if present
- // Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.")
- if (isset($params['oauth_signature'])) {
- unset($params['oauth_signature']);
- }
-
- return Util::buildHttpQuery($params);
- }
-
- /**
- * Returns the base string of this request
- *
- * The base string defined as the method, the url
- * and the parameters (normalized), each urlencoded
- * and the concated with &.
- *
- * @return string
- */
- public function getSignatureBaseString()
- {
- $parts = [
- $this->getNormalizedHttpMethod(),
- $this->getNormalizedHttpUrl(),
- $this->getSignableParameters()
- ];
-
- $parts = Util::urlencodeRfc3986($parts);
-
- return implode('&', $parts);
- }
-
- /**
- * Returns the HTTP Method in uppercase
- *
- * @return string
- */
- public function getNormalizedHttpMethod()
- {
- return strtoupper($this->httpMethod);
- }
-
- /**
- * parses the url and rebuilds it to be
- * scheme://host/path
- *
- * @return string
- */
- public function getNormalizedHttpUrl()
- {
- $parts = parse_url($this->httpUrl);
-
- $scheme = $parts['scheme'];
- $host = strtolower($parts['host']);
- $path = $parts['path'];
-
- return "$scheme://$host$path";
- }
-
- /**
- * Builds a url usable for a GET request
- *
- * @return string
- */
- public function toUrl()
- {
- $postData = $this->toPostdata();
- $out = $this->getNormalizedHttpUrl();
- if ($postData) {
- $out .= '?' . $postData;
- }
- return $out;
- }
-
- /**
- * Builds the data one would send in a POST request
- *
- * @return string
- */
- public function toPostdata()
- {
- return Util::buildHttpQuery($this->parameters);
- }
-
- /**
- * Builds the Authorization: header
- *
- * @return string
- * @throws TwitterOAuthException
- */
- public function toHeader()
- {
- $first = true;
- $out = 'Authorization: OAuth';
- foreach ($this->parameters as $k => $v) {
- if (substr($k, 0, 5) != "oauth") {
- continue;
- }
- if (is_array($v)) {
- throw new TwitterOAuthException('Arrays not supported in headers');
- }
- $out .= ($first) ? ' ' : ', ';
- $out .= Util::urlencodeRfc3986($k) . '="' . Util::urlencodeRfc3986($v) . '"';
- $first = false;
- }
- return $out;
- }
-
- /**
- * @return string
- */
- public function __toString()
- {
- return $this->toUrl();
- }
-
- /**
- * @param SignatureMethod $signatureMethod
- * @param Consumer $consumer
- * @param Token $token
- */
- public function signRequest(SignatureMethod $signatureMethod, Consumer $consumer, Token $token = null)
- {
- $this->setParameter("oauth_signature_method", $signatureMethod->getName());
- $signature = $this->buildSignature($signatureMethod, $consumer, $token);
- $this->setParameter("oauth_signature", $signature);
- }
-
- /**
- * @param SignatureMethod $signatureMethod
- * @param Consumer $consumer
- * @param Token $token
- *
- * @return string
- */
- public function buildSignature(SignatureMethod $signatureMethod, Consumer $consumer, Token $token = null)
- {
- return $signatureMethod->buildSignature($this, $consumer, $token);
- }
-
- /**
- * @return string
- */
- public static function generateNonce()
- {
- return md5(microtime() . mt_rand());
- }
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/Response.php b/milfs/addon/logis/funciones/twitter/src/Response.php
deleted file mode 100644
index cbab8ab..0000000
--- a/milfs/addon/logis/funciones/twitter/src/Response.php
+++ /dev/null
@@ -1,107 +0,0 @@
-
- */
-class Response
-{
- /** @var string|null API path from the most recent request */
- private $apiPath;
- /** @var int HTTP status code from the most recent request */
- private $httpCode = 0;
- /** @var array HTTP headers from the most recent request */
- private $headers = [];
- /** @var array|object Response body from the most recent request */
- private $body = [];
- /** @var array HTTP headers from the most recent request that start with X */
- private $xHeaders = [];
-
- /**
- * @param string $apiPath
- */
- public function setApiPath($apiPath)
- {
- $this->apiPath = $apiPath;
- }
-
- /**
- * @return string|null
- */
- public function getApiPath()
- {
- return $this->apiPath;
- }
-
- /**
- * @param array|object $body
- */
- public function setBody($body)
- {
- $this->body = $body;
- }
-
- /**
- * @return array|object|string
- */
- public function getBody()
- {
- return $this->body;
- }
-
- /**
- * @param int $httpCode
- */
- public function setHttpCode($httpCode)
- {
- $this->httpCode = $httpCode;
- }
-
- /**
- * @return int
- */
- public function getHttpCode()
- {
- return $this->httpCode;
- }
-
- /**
- * @param array $headers
- */
- public function setHeaders($headers)
- {
- foreach ($headers as $key => $value) {
- if (substr($key, 0, 1) == 'x') {
- $this->xHeaders[$key] = $value;
- }
- }
- $this->headers = $headers;
- }
-
- /**
- * @return array
- */
- public function getsHeaders()
- {
- return $this->headers;
- }
-
- /**
- * @param array $xHeaders
- */
- public function setXHeaders($xHeaders)
- {
- $this->xHeaders = $xHeaders;
- }
-
- /**
- * @return array
- */
- public function getXHeaders()
- {
- return $this->xHeaders;
- }
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/SignatureMethod.php b/milfs/addon/logis/funciones/twitter/src/SignatureMethod.php
deleted file mode 100644
index 40fd51e..0000000
--- a/milfs/addon/logis/funciones/twitter/src/SignatureMethod.php
+++ /dev/null
@@ -1,66 +0,0 @@
-buildSignature($request, $consumer, $token);
-
- // Check for zero length, although unlikely here
- if (strlen($built) == 0 || strlen($signature) == 0) {
- return false;
- }
-
- if (strlen($built) != strlen($signature)) {
- return false;
- }
-
- // Avoid a timing leak with a (hopefully) time insensitive compare
- $result = 0;
- for ($i = 0; $i < strlen($signature); $i++) {
- $result |= ord($built{$i}) ^ ord($signature{$i});
- }
-
- return $result == 0;
- }
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/Token.php b/milfs/addon/logis/funciones/twitter/src/Token.php
deleted file mode 100644
index 140c1ec..0000000
--- a/milfs/addon/logis/funciones/twitter/src/Token.php
+++ /dev/null
@@ -1,38 +0,0 @@
-key = $key;
- $this->secret = $secret;
- }
-
- /**
- * Generates the basic string serialization of a token that a server
- * would respond to request_token and access_token calls with
- *
- * @return string
- */
- public function __toString()
- {
- return sprintf("oauth_token=%s&oauth_token_secret=%s",
- Util::urlencodeRfc3986($this->key),
- Util::urlencodeRfc3986($this->secret)
- );
- }
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/TwitterOAuth.php b/milfs/addon/logis/funciones/twitter/src/TwitterOAuth.php
deleted file mode 100644
index 739dc2d..0000000
--- a/milfs/addon/logis/funciones/twitter/src/TwitterOAuth.php
+++ /dev/null
@@ -1,448 +0,0 @@
-
- */
-class TwitterOAuth extends Config
-{
- const API_VERSION = '1.1';
- const API_HOST = 'https://api.twitter.com';
- const UPLOAD_HOST = 'https://upload.twitter.com';
- const UPLOAD_CHUNK = 40960; // 1024 * 40
-
- /** @var Response details about the result of the last request */
- private $response;
- /** @var string|null Application bearer token */
- private $bearer;
- /** @var Consumer Twitter application details */
- private $consumer;
- /** @var Token|null User access token details */
- private $token;
- /** @var HmacSha1 OAuth 1 signature type used by Twitter */
- private $signatureMethod;
-
- /**
- * Constructor
- *
- * @param string $consumerKey The Application Consumer Key
- * @param string $consumerSecret The Application Consumer Secret
- * @param string|null $oauthToken The Client Token (optional)
- * @param string|null $oauthTokenSecret The Client Token Secret (optional)
- */
- public function __construct($consumerKey, $consumerSecret, $oauthToken = null, $oauthTokenSecret = null)
- {
- $this->resetLastResponse();
- $this->signatureMethod = new HmacSha1();
- $this->consumer = new Consumer($consumerKey, $consumerSecret);
- if (!empty($oauthToken) && !empty($oauthTokenSecret)) {
- $this->token = new Token($oauthToken, $oauthTokenSecret);
- }
- if (empty($oauthToken) && !empty($oauthTokenSecret)) {
- $this->bearer = $oauthTokenSecret;
- }
- }
-
- /**
- * @param string $oauthToken
- * @param string $oauthTokenSecret
- */
- public function setOauthToken($oauthToken, $oauthTokenSecret)
- {
- $this->token = new Token($oauthToken, $oauthTokenSecret);
- }
-
- /**
- * @return string|null
- */
- public function getLastApiPath()
- {
- return $this->response->getApiPath();
- }
-
- /**
- * @return int
- */
- public function getLastHttpCode()
- {
- return $this->response->getHttpCode();
- }
-
- /**
- * @return array
- */
- public function getLastXHeaders()
- {
- return $this->response->getXHeaders();
- }
-
- /**
- * @return array|object|null
- */
- public function getLastBody()
- {
- return $this->response->getBody();
- }
-
- /**
- * Resets the last response cache.
- */
- public function resetLastResponse()
- {
- $this->response = new Response();
- }
-
- /**
- * Make URLs for user browser navigation.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return string
- */
- public function url($path, array $parameters)
- {
- $this->resetLastResponse();
- $this->response->setApiPath($path);
- $query = http_build_query($parameters);
- return sprintf('%s/%s?%s', self::API_HOST, $path, $query);
- }
-
- /**
- * Make /oauth/* requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array
- * @throws TwitterOAuthException
- */
- public function oauth($path, array $parameters = [])
- {
- $response = [];
- $this->resetLastResponse();
- $this->response->setApiPath($path);
- $url = sprintf('%s/%s', self::API_HOST, $path);
- $result = $this->oAuthRequest($url, 'POST', $parameters);
-
- if ($this->getLastHttpCode() != 200) {
- throw new TwitterOAuthException($result);
- }
-
- parse_str($result, $response);
- $this->response->setBody($response);
-
- return $response;
- }
-
- /**
- * Make /oauth2/* requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function oauth2($path, array $parameters = [])
- {
- $method = 'POST';
- $this->resetLastResponse();
- $this->response->setApiPath($path);
- $url = sprintf('%s/%s', self::API_HOST, $path);
- $request = Request::fromConsumerAndToken($this->consumer, $this->token, $method, $url, $parameters);
- $authorization = 'Authorization: Basic ' . $this->encodeAppAuthorization($this->consumer);
- $result = $this->request($request->getNormalizedHttpUrl(), $method, $authorization, $parameters);
- $response = JsonDecoder::decode($result, $this->decodeJsonAsArray);
- $this->response->setBody($response);
- return $response;
- }
-
- /**
- * Make GET requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function get($path, array $parameters = [])
- {
- return $this->http('GET', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Make POST requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function post($path, array $parameters = [])
- {
- return $this->http('POST', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Make DELETE requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function delete($path, array $parameters = [])
- {
- return $this->http('DELETE', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Make PUT requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function put($path, array $parameters = [])
- {
- return $this->http('PUT', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Upload media to upload.twitter.com.
- *
- * @param string $path
- * @param array $parameters
- * @param boolean $chunked
- *
- * @return array|object
- */
- public function upload($path, array $parameters = [], $chunked = false)
- {
- if ($chunked) {
- return $this->uploadMediaChunked($path, $parameters);
- } else {
- return $this->uploadMediaNotChunked($path, $parameters);
- }
- }
-
- /**
- * Private method to upload media (not chunked) to upload.twitter.com.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- private function uploadMediaNotChunked($path, $parameters)
- {
- $file = file_get_contents($parameters['media']);
- $base = base64_encode($file);
- $parameters['media'] = $base;
- return $this->http('POST', self::UPLOAD_HOST, $path, $parameters);
- }
-
- /**
- * Private method to upload media (chunked) to upload.twitter.com.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- private function uploadMediaChunked($path, $parameters)
- {
- // Init
- $init = $this->http('POST', self::UPLOAD_HOST, $path, [
- 'command' => 'INIT',
- 'media_type' => $parameters['media_type'],
- 'total_bytes' => filesize($parameters['media'])
- ]);
- // Append
- $segment_index = 0;
- $media = fopen($parameters['media'], 'rb');
- while (!feof($media))
- {
- $this->http('POST', self::UPLOAD_HOST, 'media/upload', [
- 'command' => 'APPEND',
- 'media_id' => $init->media_id_string,
- 'segment_index' => $segment_index++,
- 'media_data' => base64_encode(fread($media, self::UPLOAD_CHUNK))
- ]);
- }
- fclose($media);
- // Finalize
- $finalize = $this->http('POST', self::UPLOAD_HOST, 'media/upload', [
- 'command' => 'FINALIZE',
- 'media_id' => $init->media_id_string
- ]);
- return $finalize;
- }
-
- /**
- * @param string $method
- * @param string $host
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- private function http($method, $host, $path, array $parameters)
- {
- $this->resetLastResponse();
- $url = sprintf('%s/%s/%s.json', $host, self::API_VERSION, $path);
- $this->response->setApiPath($path);
- $result = $this->oAuthRequest($url, $method, $parameters);
- $response = JsonDecoder::decode($result, $this->decodeJsonAsArray);
- $this->response->setBody($response);
- return $response;
- }
-
- /**
- * Format and sign an OAuth / API request
- *
- * @param string $url
- * @param string $method
- * @param array $parameters
- *
- * @return string
- * @throws TwitterOAuthException
- */
- private function oAuthRequest($url, $method, array $parameters)
- {
- $request = Request::fromConsumerAndToken($this->consumer, $this->token, $method, $url, $parameters);
- if (array_key_exists('oauth_callback', $parameters)) {
- // Twitter doesn't like oauth_callback as a parameter.
- unset($parameters['oauth_callback']);
- }
- if ($this->bearer === null) {
- $request->signRequest($this->signatureMethod, $this->consumer, $this->token);
- $authorization = $request->toHeader();
- } else {
- $authorization = 'Authorization: Bearer ' . $this->bearer;
- }
- return $this->request($request->getNormalizedHttpUrl(), $method, $authorization, $parameters);
- }
-
- /**
- * Make an HTTP request
- *
- * @param string $url
- * @param string $method
- * @param string $authorization
- * @param array $postfields
- *
- * @return string
- * @throws TwitterOAuthException
- */
- private function request($url, $method, $authorization, $postfields)
- {
- /* Curl settings */
- $options = [
- // CURLOPT_VERBOSE => true,
- CURLOPT_CAINFO => __DIR__ . DIRECTORY_SEPARATOR . 'cacert.pem',
- CURLOPT_CONNECTTIMEOUT => $this->connectionTimeout,
- CURLOPT_HEADER => true,
- CURLOPT_HTTPHEADER => ['Accept: application/json', $authorization, 'Expect:'],
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_SSL_VERIFYHOST => 2,
- CURLOPT_SSL_VERIFYPEER => true,
- CURLOPT_TIMEOUT => $this->timeout,
- CURLOPT_URL => $url,
- CURLOPT_USERAGENT => $this->userAgent,
- CURLOPT_ENCODING => 'gzip',
- ];
-
- if (!empty($this->proxy)) {
- $options[CURLOPT_PROXY] = $this->proxy['CURLOPT_PROXY'];
- $options[CURLOPT_PROXYUSERPWD] = $this->proxy['CURLOPT_PROXYUSERPWD'];
- $options[CURLOPT_PROXYPORT] = $this->proxy['CURLOPT_PROXYPORT'];
- $options[CURLOPT_PROXYAUTH] = CURLAUTH_BASIC;
- $options[CURLOPT_PROXYTYPE] = CURLPROXY_HTTP;
- }
-
- switch ($method) {
- case 'GET':
- break;
- case 'POST':
- $options[CURLOPT_POST] = true;
- $options[CURLOPT_POSTFIELDS] = Util::buildHttpQuery($postfields);
- break;
- case 'DELETE':
- $options[CURLOPT_CUSTOMREQUEST] = 'DELETE';
- break;
- case 'PUT':
- $options[CURLOPT_CUSTOMREQUEST] = 'PUT';
- break;
- }
-
- if (in_array($method, ['GET', 'PUT', 'DELETE']) && !empty($postfields)) {
- $options[CURLOPT_URL] .= '?' . Util::buildHttpQuery($postfields);
- }
-
-
- $curlHandle = curl_init();
- curl_setopt_array($curlHandle, $options);
- $response = curl_exec($curlHandle);
-
- // Throw exceptions on cURL errors.
- if (curl_errno($curlHandle) > 0) {
- throw new TwitterOAuthException(curl_error($curlHandle), curl_errno($curlHandle));
- }
-
- $this->response->setHttpCode(curl_getinfo($curlHandle, CURLINFO_HTTP_CODE));
- $parts = explode("\r\n\r\n", $response);
- $responseBody = array_pop($parts);
- $responseHeader = array_pop($parts);
- $this->response->setHeaders($this->parseHeaders($responseHeader));
-
- curl_close($curlHandle);
-
- return $responseBody;
- }
-
- /**
- * Get the header info to store.
- *
- * @param string $header
- *
- * @return array
- */
- private function parseHeaders($header)
- {
- $headers = [];
- foreach (explode("\r\n", $header) as $line) {
- if (strpos($line, ':') !== false) {
- list ($key, $value) = explode(': ', $line);
- $key = str_replace('-', '_', strtolower($key));
- $headers[$key] = trim($value);
- }
- }
- return $headers;
- }
-
- /**
- * Encode application authorization header with base64.
- *
- * @param Consumer $consumer
- *
- * @return string
- */
- private function encodeAppAuthorization($consumer)
- {
- // TODO: key and secret should be rfc 1738 encoded
- $key = $consumer->key;
- $secret = $consumer->secret;
- return base64_encode($key . ':' . $secret);
- }
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/TwitterOAuthException.php b/milfs/addon/logis/funciones/twitter/src/TwitterOAuthException.php
deleted file mode 100644
index 79903ec..0000000
--- a/milfs/addon/logis/funciones/twitter/src/TwitterOAuthException.php
+++ /dev/null
@@ -1,10 +0,0 @@
-
- */
-class TwitterOAuthException extends \Exception
-{
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/Util.php b/milfs/addon/logis/funciones/twitter/src/Util.php
deleted file mode 100644
index fff6143..0000000
--- a/milfs/addon/logis/funciones/twitter/src/Util.php
+++ /dev/null
@@ -1,115 +0,0 @@
- array('b','c'), 'd' => 'e')
- *
- * @param mixed $input
- *
- * @return array
- */
- public static function parseParameters($input)
- {
- if (!isset($input) || !$input) {
- return [];
- }
-
- $pairs = explode('&', $input);
-
- $parameters = [];
- foreach ($pairs as $pair) {
- $split = explode('=', $pair, 2);
- $parameter = Util::urldecodeRfc3986($split[0]);
- $value = isset($split[1]) ? Util::urldecodeRfc3986($split[1]) : '';
-
- if (isset($parameters[$parameter])) {
- // We have already recieved parameter(s) with this name, so add to the list
- // of parameters with this name
-
- if (is_scalar($parameters[$parameter])) {
- // This is the first duplicate, so transform scalar (string) into an array
- // so we can add the duplicates
- $parameters[$parameter] = [$parameters[$parameter]];
- }
-
- $parameters[$parameter][] = $value;
- } else {
- $parameters[$parameter] = $value;
- }
- }
- return $parameters;
- }
-
- /**
- * @param $params
- *
- * @return string
- */
- public static function buildHttpQuery($params)
- {
- if (!$params) {
- return '';
- }
-
- // Urlencode both keys and values
- $keys = Util::urlencodeRfc3986(array_keys($params));
- $values = Util::urlencodeRfc3986(array_values($params));
- $params = array_combine($keys, $values);
-
- // Parameters are sorted by name, using lexicographical byte value ordering.
- // Ref: Spec: 9.1.1 (1)
- uksort($params, 'strcmp');
-
- $pairs = [];
- foreach ($params as $parameter => $value) {
- if (is_array($value)) {
- // If two or more parameters share the same name, they are sorted by their value
- // Ref: Spec: 9.1.1 (1)
- // June 12th, 2010 - changed to sort because of issue 164 by hidetaka
- sort($value, SORT_STRING);
- foreach ($value as $duplicateValue) {
- $pairs[] = $parameter . '=' . $duplicateValue;
- }
- } else {
- $pairs[] = $parameter . '=' . $value;
- }
- }
- // For each parameter, the name is separated from the corresponding value by an '=' character (ASCII code 61)
- // Each name-value pair is separated by an '&' character (ASCII code 38)
- return implode('&', $pairs);
- }
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/Util/JsonDecoder.php b/milfs/addon/logis/funciones/twitter/src/Util/JsonDecoder.php
deleted file mode 100644
index c8589c5..0000000
--- a/milfs/addon/logis/funciones/twitter/src/Util/JsonDecoder.php
+++ /dev/null
@@ -1,26 +0,0 @@
-
- */
-class JsonDecoder
-{
- /**
- * Decodes a JSON string to stdObject or associative array
- *
- * @param string $string
- * @param bool $asArray
- *
- * @return array|object
- */
- public static function decode($string, $asArray)
- {
- if (version_compare(PHP_VERSION, '5.4.0', '>=') && !(defined('JSON_C_VERSION') && PHP_INT_SIZE > 4)) {
- return json_decode($string, $asArray, 512, JSON_BIGINT_AS_STRING);
- }
-
- return json_decode($string, $asArray);
- }
-}
diff --git a/milfs/addon/logis/funciones/twitter/src/cacert.pem b/milfs/addon/logis/funciones/twitter/src/cacert.pem
deleted file mode 100644
index 742dc6e..0000000
--- a/milfs/addon/logis/funciones/twitter/src/cacert.pem
+++ /dev/null
@@ -1,3952 +0,0 @@
-##
-## Bundle of CA Root Certificates
-##
-## Certificate data from Mozilla as of: Wed Oct 28 04:12:04 2015
-##
-## This is a bundle of X.509 certificates of public Certificate Authorities
-## (CA). These were automatically extracted from Mozilla's root certificates
-## file (certdata.txt). This file can be found in the mozilla source tree:
-## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
-##
-## It contains the certificates in PEM format and therefore
-## can be directly used with curl / libcurl / php_curl, or with
-## an Apache+mod_ssl webserver for SSL client authentication.
-## Just configure this file as the SSLCACertificateFile.
-##
-## Conversion done with mk-ca-bundle.pl version 1.25.
-## SHA1: 6d7d2f0a4fae587e7431be191a081ac1257d300a
-##
-
-
-Equifax Secure CA
-=================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
-ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
-MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
-B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
-fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
-8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
-CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
-spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
-zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
-BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
-70+sB3c4
------END CERTIFICATE-----
-
-GlobalSign Root CA
-==================
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
-GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
-b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
-BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
-VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
-DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
-THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
-Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
-c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
-gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
-AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
-Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
-j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
-hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
-X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-
-GlobalSign Root CA - R2
-=======================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
-ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
-s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
-S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
-TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
-ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
-FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
-YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
-BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
-9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
-01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
-9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
-EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
-cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
-EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
-055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
-j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
-xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
-t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
-tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
-8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
-Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
-Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
-mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
-RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
-UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
-Entrust.net Premium 2048 Secure Server CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
-bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
-NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
-d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
-ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
-Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
-hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
-nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
-VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
-KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
-T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
-zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
-J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
-nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
------END CERTIFICATE-----
-
-Baltimore CyberTrust Root
-=========================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
-ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
-ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
-SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
-dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
-uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
-UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
-G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
-XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
-l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
-VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
-BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
-cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
-hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
-Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
-RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-AddTrust Low-Value Services Root
-================================
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
-cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
-CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
-ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
-54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
-oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
-Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
-GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
-HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
-AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
-HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
-ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
-iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
-mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
-ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
-AddTrust External Root
-======================
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
-VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
-NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
-cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
-Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
-+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
-Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
-aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
-2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
-7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
-VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
-VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
-j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
-e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
-G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
-AddTrust Public Services Root
-=============================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
-cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
-BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
-dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
-nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
-d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
-Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
-HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
-A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
-A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
-JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
-+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
-Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
-EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
-AddTrust Qualified Certificates Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
-cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
-CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
-IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
-64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
-KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
-L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
-wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
-MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
-BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
-azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
-GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
-RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
-iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
------END CERTIFICATE-----
-
-Entrust Root Certification Authority
-====================================
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
-b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
-A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
-MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
-MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
-Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
-dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
-A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
-Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
-j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
-rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
-MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
-hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
-Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
-v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
-W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
-tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-
-RSA Security 2048 v3
-====================
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
-ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
-MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
-BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
-Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
-WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
-KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
-+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
-MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
-FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
-v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
-0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
-VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
-nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
-pKnXwiJPZ9d37CAFYd4=
------END CERTIFICATE-----
-
-GeoTrust Global CA
-==================
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
-MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
-BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
-8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
-T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
-vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
-AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
-DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
-zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
-d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
-mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
-XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
-Mw==
------END CERTIFICATE-----
-
-GeoTrust Global CA 2
-====================
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
-MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
-NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
-LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
-Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
-HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
-K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
-srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
-ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
-OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
-x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
-H4z1Ir+rzoPz4iIprn2DQKi6bA==
------END CERTIFICATE-----
-
-GeoTrust Universal CA
-=====================
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
-MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
-Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
-JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
-RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
-7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
-8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
-qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
-Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
-Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
-KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
-ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
-XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
-hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
-qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
-oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
-xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
-KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
-DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
-xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
-p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
-P/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-
-GeoTrust Universal CA 2
-=======================
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
-MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
-SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
-DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
-j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
-JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
-QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
-WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
-20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
-ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
-SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
-8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
-+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
-BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
-4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
-mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
-A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
-Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
-pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
-FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
-gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
-X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-
-Visa eCommerce Root
-===================
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
-EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
-QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
-WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
-VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
-F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
-RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
-TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
-/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
-GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
-MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
-CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
-YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
-zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
-YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
-Certum Root CA
-==============
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
-ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
-Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
-by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
-wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
-kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
-89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
-Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
-NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
-hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
-GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
-GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
-0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
-qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-
-Comodo AAA Services root
-========================
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
-MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
-c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
-BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
-C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
-i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
-Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
-Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
-Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
-BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
-cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
-LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
-7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
-8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
-12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
-Comodo Secure Services root
-===========================
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
-MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
-Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
-BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
-9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
-rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
-oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
-p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
-FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
-YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
-aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
-4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
-DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
-pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
-RR3B7Hzs/Sk=
------END CERTIFICATE-----
-
-Comodo Trusted Services root
-============================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
-MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
-bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
-IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
-3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
-/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
-juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
-ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
-DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
-ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
-cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
-uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
-BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
-R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
-9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-
-QuoVadis Root CA
-================
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
-ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
-MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
-cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
-EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
-J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
-F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
-YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
-AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
-PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
-ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
-MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
-YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
-Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
-BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
-FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
-tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
-fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
-LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
-gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
-5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
-5nrQNiOKSnQ2+Q==
------END CERTIFICATE-----
-
-QuoVadis Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
-ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
-XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
-lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
-lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
-lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
-66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
-wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
-D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
-BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
-J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
-DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
-a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
-Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
-UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
-VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
-+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
-IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
-WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
-f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
-4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
-VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
-
-QuoVadis Root CA 3
-==================
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
-OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
-DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
-KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
-DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
-BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
-p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
-nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
-MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
-Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
-uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
-BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
-YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
-BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
-VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
-ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
-AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
-qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
-hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
-POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
-Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
-8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
-bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
-g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
-vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
-qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
-
-Security Communication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
-8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
-DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
-5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
-DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
-JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
-0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
-mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
-s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
-6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
-FL39vmwLAw==
------END CERTIFICATE-----
-
-Sonera Class 2 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
-NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
-/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
-dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
-f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
-tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
-nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
-XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
-0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
-cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
-Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
-EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
-llpwrN9M
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA
-=============================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
-ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
-HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
-bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
-vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
-jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
-C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
-vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
-22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
-HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
-dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
-BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
-EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
-MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
-nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-
-UTN DATACorp SGC Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
-BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
-MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
-HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
-dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
-raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
-wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
-9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
-33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
-DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
-BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
-LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
-DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
-I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
-EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
-DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
-UTN USERFirst Hardware Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
-BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
-OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
-eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
-ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
-wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
-tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
-i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
-Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
-gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
-lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
-UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
-BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
-XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
-lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
-iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
-nfhmqA==
------END CERTIFICATE-----
-
-Camerfirma Chambers of Commerce Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
-NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
-cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
-MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
-AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
-xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
-NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
-DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
-d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
-EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
-cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
-AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
-bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
-VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
-fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
-L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
-UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
-ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
-erfutGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-
-Camerfirma Global Chambersign Root
-==================================
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
-NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
-YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
-MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
-ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
-1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
-by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
-6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
-8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
-BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
-aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
-Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
-aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
-ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
-PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
-gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
-PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
-IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
-t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-
-NetLock Notary (Class A) Root
-=============================
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
-EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
-ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
-DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
-EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
-VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
-cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
-D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
-z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
-/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
-tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
-4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
-A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
-Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
-bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
-LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
-ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
-IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
-IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
-b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
-bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
-Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
-bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
-ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
-ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
-CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
-KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
-8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-
-XRamp Global CA Root
-====================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
-BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
-dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
-HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
-U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
-IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
-foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
-zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
-AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
-xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
-oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
-AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
-/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
-nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
-8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-
-Go Daddy Class 2 CA
-===================
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
-VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
-A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
-RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
-ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
-2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
-qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
-YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
-vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
-BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
-atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
-MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
-PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
-I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
-Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
-vZ8=
------END CERTIFICATE-----
-
-Starfield Class 2 CA
-====================
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
-U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
-MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
-A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
-SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
-bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
-JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
-epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
-F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
-MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
-hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
-bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
-afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
-PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
-KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
-QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
-YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
-AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
-Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
-U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
-LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
-cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
-dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
-AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
-3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
-vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
-fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
-fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
-EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
-1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
-lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
-g14=
------END CERTIFICATE-----
-
-Taiwan GRCA
-===========
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
-EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
-DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
-dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
-w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
-BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
-1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
-htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
-J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
-Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
-B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
-O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
-lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
-HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
-09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
-Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
-Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
-D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
-DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
-Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
-7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
-CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
-+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
------END CERTIFICATE-----
-
-Swisscom Root CA 1
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
-MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
-MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
-NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
-AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
-b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
-7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
-cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
-WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
-haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
-MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
-MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
-jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
-MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
-VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
-vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
-OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
-1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
-nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
-x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
-NY6E0F/6MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
-MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
-9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
-UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
-/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
-oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
-GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
-66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
-hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
-EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
-SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
-8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-
-DigiCert Global Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
-MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
-TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
-BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
-4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
-7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
-o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
-8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
-BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
-EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
-tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
-UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-
-DigiCert High Assurance EV Root CA
-==================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
-KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
-MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
-MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
-Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
-Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
-OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
-MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
-NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
-h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
-Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
-JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
-V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
-myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
-mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
------END CERTIFICATE-----
-
-Certplus Class 2 Primary CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
-BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
-OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
-dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
-5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
-Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
-YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
-e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
-CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
-YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
-L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
-P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
-TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
-7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
-//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-
-DST Root CA X3
-==============
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
-ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
-DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
-cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
-rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
-UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
-xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
-utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
-MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
-dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
-GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
-RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
-fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
-DST ACES CA X6
-==============
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
-MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
-MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
-CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
-DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
-pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
-GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
-MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
-Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
-dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
-CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
-5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
-Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
-vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
-oKfN5XozNmr6mis=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
-MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
-dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
-LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
-x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
-QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
-5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
-AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
-Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
-hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
-9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
-UrbnBEI=
------END CERTIFICATE-----
-
-SwissSign Gold CA - G2
-======================
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
-EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
-MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
-c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
-t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
-jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
-vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
-ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
-AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
-jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
-peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
-7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
-GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
-OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
-5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
-44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
-Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
-Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
-mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
-vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
-KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
-NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
-viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
-
-SwissSign Silver CA - G2
-========================
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
-BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
-DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
-aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
-9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
-N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
-+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
-6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
-MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
-qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
-FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
-ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
-celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
-CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
-tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
-4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
-kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
-3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
-/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
-DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
-e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
-WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
-DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
-DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority
-========================================
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
-CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
-cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
-b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
-nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
-RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
-tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
-hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
-Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
-NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
-Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
-1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-
-thawte Primary Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
-MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
-SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
-KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
-FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
-oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
-1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
-q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
-aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
-afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
-AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
-uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
-jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
-z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G5
-============================================================
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
-dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
-j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
-Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
-Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
-fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
-BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
-Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
-SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
-X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
-KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
-Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
-ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-
-SecureTrust CA
-==============
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
-dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
-BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
-OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
-DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
-GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
-01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
-ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
-aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
-SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
-mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
-nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-
-Secure Global CA
-================
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
-bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
-MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
-Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
-YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
-bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
-8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
-HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
-0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
-oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
-MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
-OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
-CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
-3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-
-COMODO Certification Authority
-==============================
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
-MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
-T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
-+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
-xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
-4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
-1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
-rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
-b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
-AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
-OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
-IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
-+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
------END CERTIFICATE-----
-
-Network Solutions Certificate Authority
-=======================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
-EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
-IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
-MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
-jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
-aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
-crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
-/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
-AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
-bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
-A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
-4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
-GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
-ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
-WellsSecure Public Root Certificate Authority
-=============================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
-F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
-NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
-bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
-VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
-iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
-i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
-bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
-K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
-AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
-cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
-lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
-i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
-GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
-K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
-bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
-qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
-E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
-tylv2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
-
-COMODO ECC Certification Authority
-==================================
------BEGIN CERTIFICATE-----
-MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
-R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
-ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
-GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
-Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
-4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
-wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
-FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
-U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
------END CERTIFICATE-----
-
-IGC/A
-=====
------BEGIN CERTIFICATE-----
-MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
-VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
-Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
-MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
-EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
-STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
-TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
-So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
-HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
-frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
-tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
-egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
-iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
-q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
-MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
-Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
-lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
-0mBWWg==
------END CERTIFICATE-----
-
-Security Communication EV RootCA1
-=================================
------BEGIN CERTIFICATE-----
-MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
-BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
-Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
-/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
-WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
-ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
-bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
-9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
-SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
-iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
-Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
-mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
-T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
------END CERTIFICATE-----
-
-OISTE WISeKey Global Root GA CA
-===============================
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
-BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
-A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
-bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
-VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
-IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
-IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
-Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
-Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
-d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
-/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
-LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
-MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
-+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
-okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA
-=========================
------BEGIN CERTIFICATE-----
-MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
-BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
-EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
-MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
-dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
-GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
-d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
-oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
-QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
-PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
-MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
-IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
-VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
-LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
-dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
-AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
-4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
-AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
-egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
-Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
-PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
-c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
-cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
-IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
-WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
-MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
-MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
-Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
-HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
-nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
-aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
-86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
-yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
-S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
------END CERTIFICATE-----
-
-Certigna
-========
------BEGIN CERTIFICATE-----
-MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
-EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
-MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
-Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
-XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
-GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
-ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
-DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
-Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
-tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
-BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
-SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
-hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
-ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
-PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
-1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
-WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
------END CERTIFICATE-----
-
-Deutsche Telekom Root CA 2
-==========================
------BEGIN CERTIFICATE-----
-MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
-RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
-A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
-MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
-A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
-b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
-bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
-KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
-AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
-Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
-jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
-HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
-E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
-zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
-rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
-dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
-Cm26OWMohpLzGITY+9HPBVZkVw==
------END CERTIFICATE-----
-
-Cybertrust Global Root
-======================
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
-ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
-MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
-ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
-+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
-0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
-AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
-89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
-8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
-MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
-A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
-lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
-5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
-hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
-X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
-WL1WMRJOEcgh4LMRkWXbtKaIOM5V
------END CERTIFICATE-----
-
-ePKI Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
-EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
-Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
-MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
-MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
-IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
-lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
-qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
-12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
-WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
-ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
-lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
-vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
-Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
-MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
-ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
-1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
-KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
-xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
-NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
-GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
-xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
-gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
-sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
-BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
------END CERTIFICATE-----
-
-T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
-=============================================================================================================================
------BEGIN CERTIFICATE-----
-MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
-DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
-aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
-b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
-BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
-S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
-MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
-IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
-n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
-IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
-dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
-cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
-Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
-xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
-6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
-hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
-BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
-N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
-y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
-LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
-dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
------END CERTIFICATE-----
-
-Buypass Class 2 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
-MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
-c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
-cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
-0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
-0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
-uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
-AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
-1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
-7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
-fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
-wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
------END CERTIFICATE-----
-
-EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
-==========================================================================
------BEGIN CERTIFICATE-----
-MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
-QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
-Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
-ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
-IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
-X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
-gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
-eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
-TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
-Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
-uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
-qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
-ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
-Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
-Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
-FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
-zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
-XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
-bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
-RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
-1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
-2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
-Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
-AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
------END CERTIFICATE-----
-
-certSIGN ROOT CA
-================
------BEGIN CERTIFICATE-----
-MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
-VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
-Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
-CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
-JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
-rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
-ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
-0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
-AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
-Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
-AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
-SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
-x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
-vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
-TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
------END CERTIFICATE-----
-
-CNNIC ROOT
-==========
------BEGIN CERTIFICATE-----
-MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
-ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
-OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
-o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
-VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
-VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
-czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
-y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
-wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
-lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
-Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
-O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
-BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
-G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
-mxE=
------END CERTIFICATE-----
-
-ApplicationCA - Japanese Government
-===================================
------BEGIN CERTIFICATE-----
-MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
-SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
-MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
-cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
-fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
-wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
-jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
-nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
-WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
-BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
-vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
-o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
-/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
-io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
-dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
-rosot4LKGAfmt1t06SAZf7IbiVQ=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G3
-=============================================
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
-IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
-NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
-YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
-LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
-K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
-c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
-IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
-dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
-2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
-cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
-Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
-t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
-
-thawte Primary Root CA - G2
-===========================
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
-VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
-IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
-Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
-MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
-b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
-IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
-LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
-8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
-mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
-G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
-rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
-
-thawte Primary Root CA - G3
-===========================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
-ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
-VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
-A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
-P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
-+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
-7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
-vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
-KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
-A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
-8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
-er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G2
-=============================================
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
-Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
-OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
-b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
-BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
-KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
-EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
-ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
-npaqBA+K
------END CERTIFICATE-----
-
-VeriSign Universal Root Certification Authority
-===============================================
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
-1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
-MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
-9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
-AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
-tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
-CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
-a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
-Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
-Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
-P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
-wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
-mJO37M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G4
-============================================================
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
-VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
-b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
-ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
-cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
-b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
-Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
-rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
-/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
-HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
-Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
-A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
-AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
-
-NetLock Arany (Class Gold) Főtanúsítvány
-============================================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
-A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
-dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
-cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
-MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
-ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
-c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
-0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
-/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
-H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
-fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
-neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
-qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
-YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
-bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
-NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
-dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA - G2
-==================================
------BEGIN CERTIFICATE-----
-MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
-TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
-ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
-5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
-vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
-CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
-e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
-OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
-CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
-48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
-trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
-qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
-AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
-ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
-A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
-+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
-f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
-kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
-CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
-URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
-CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
-oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
-IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
-66+KAQ==
------END CERTIFICATE-----
-
-CA Disig
-========
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
-QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
-MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
-bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
-GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
-Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
-hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
-ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
-gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
-AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
-aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
-ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
-BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
-WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
-mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
-CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
-ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
-4Z7CRneC9VkGjCFMhwnN5ag=
------END CERTIFICATE-----
-
-Juur-SK
-=======
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
-c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
-DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
-SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
-aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
-TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
-+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
-UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
-Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
-MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
-HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
-AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
-cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
-AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
-cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
-FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
-A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
-ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
-abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
-IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
-Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
-yyqcjg==
------END CERTIFICATE-----
-
-Hongkong Post Root CA 1
-=======================
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
-DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
-NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
-IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
-ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
-auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
-qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
-V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
-HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
-h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
-l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
-IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
-T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
-c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
------END CERTIFICATE-----
-
-SecureSign RootCA11
-===================
------BEGIN CERTIFICATE-----
-MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
-SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
-b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
-KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
-cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
-TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
-wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
-g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
-O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
-bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
-t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
-OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
-bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
-Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
-y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
-lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
------END CERTIFICATE-----
-
-ACEDICOM Root
-=============
------BEGIN CERTIFICATE-----
-MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
-T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
-MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
-A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
-WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
-YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
-MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
-m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
-HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
-xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
-3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
-2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
-TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
-4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
-9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
-bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
-aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
-eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
-zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
-ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
-KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
-nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
-I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
-MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
-tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
-MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
-c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
-dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
-BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
-U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
-fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
-0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
-pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
-1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
-AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
-QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
-FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
-lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
-I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
-tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
-yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
-LXpUq3DDfSJlgnCW
------END CERTIFICATE-----
-
-GlobalSign Root CA - R3
-=======================
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
-iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
-0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
-rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
-OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
-xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
-lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
-EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
-bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
-YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
-kpeDMdmztcpHWD9f
------END CERTIFICATE-----
-
-Autoridad de Certificacion Firmaprofesional CIF A62634068
-=========================================================
------BEGIN CERTIFICATE-----
-MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
-BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
-MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
-QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
-NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
-Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
-B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
-7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
-ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
-plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
-MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
-LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
-bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
-vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
-EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
-DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
-cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
-bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
-ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
-51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
-R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
-T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
-Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
-osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
-crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
-saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
-KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
-6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
------END CERTIFICATE-----
-
-Izenpe.com
-==========
------BEGIN CERTIFICATE-----
-MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
-EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
-MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
-QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
-03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
-ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
-+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
-PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
-OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
-F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
-0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
-0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
-leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
-AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
-SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
-NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
-MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
-BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
-Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
-kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
-hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
-g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
-aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
-nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
-ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
-Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
-WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
------END CERTIFICATE-----
-
-Chambers of Commerce Root - 2008
-================================
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
-Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
-ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
-EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
-cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
-XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
-h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
-ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
-NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
-D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
-lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
-0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
-EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
-G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
-BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
-bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
-bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
-CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
-AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
-wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
-3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
-RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
-M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
-YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
-9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
-zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
-nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
------END CERTIFICATE-----
-
-Global Chambersign Root - 2008
-==============================
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
-NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
-Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
-QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
-VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
-XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
-ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
-/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
-TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
-H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
-Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
-HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
-AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
-BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
-BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
-aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
-aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
-1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
-dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
-/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
-ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
-dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
-9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
-foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
-qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
-P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
-c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
-
-Go Daddy Root Certificate Authority - G2
-========================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
-MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
-MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
-b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
-A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
-9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
-+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
-fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
-NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
-BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
-vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
-5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
-N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
-LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
------END CERTIFICATE-----
-
-Starfield Root Certificate Authority - G2
-=========================================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
-eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
-DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
-VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
-dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
-W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
-bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
-N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
-ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
-JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
-TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
-4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
-F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
-pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
-c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
------END CERTIFICATE-----
-
-Starfield Services Root Certificate Authority - G2
-==================================================
------BEGIN CERTIFICATE-----
-MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
-IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
-dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
-h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
-hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
-LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
-rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
-SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
-E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
-xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
-iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
-YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
------END CERTIFICATE-----
-
-AffirmTrust Commercial
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
-MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
-DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
-C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
-BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
-MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
-HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
-hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
-qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
-0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
-sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
------END CERTIFICATE-----
-
-AffirmTrust Networking
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
-MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
-Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
-dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
-/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
-h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
-HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
-UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
-12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
-WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
-/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
------END CERTIFICATE-----
-
-AffirmTrust Premium
-===================
------BEGIN CERTIFICATE-----
-MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
-OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
-dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
-BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
-5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
-+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
-GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
-p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
-S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
-6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
-/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
-+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
-MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
-Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
-6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
-L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
-+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
-BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
-IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
-g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
-zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
------END CERTIFICATE-----
-
-AffirmTrust Premium ECC
-=======================
------BEGIN CERTIFICATE-----
-MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
-BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
-MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
-cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
-IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
-N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
-BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
-BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
-57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
-eQ==
------END CERTIFICATE-----
-
-Certum Trusted Network CA
-=========================
------BEGIN CERTIFICATE-----
-MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
-ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
-MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
-ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
-l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
-J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
-fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
-cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
-Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
-DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
-jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
-mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
-Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
------END CERTIFICATE-----
-
-Certinomis - Autorité Racine
-=============================
------BEGIN CERTIFICATE-----
-MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
-Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
-LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
-A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
-JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
-wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
-Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
-2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
-jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
-c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
-lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
-xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
-530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
-4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
-KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
-WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
-R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
-nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
-CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
-JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
-qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
-WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
-wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
-vgt2Fl43N+bYdJeimUV5
------END CERTIFICATE-----
-
-Root CA Generalitat Valenciana
-==============================
------BEGIN CERTIFICATE-----
-MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
-ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
-IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
-WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
-CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
-F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
-ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
-D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
-JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
-AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
-dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
-ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
-AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
-YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
-AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
-aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
-AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
-YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
-AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
-OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
-dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
-BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
-A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
-b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
-TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
-Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
-NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
-iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
-+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
------END CERTIFICATE-----
-
-A-Trust-nQual-03
-================
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
-Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
-a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
-dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
-RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
-ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
-c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
-zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
-yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
-SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
-iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
-cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
-eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
-ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
-sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
-JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
-ahq97BvIxYSazQ==
------END CERTIFICATE-----
-
-TWCA Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
-VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
-EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
-IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
-QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
-oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
-4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
-y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
-9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
-mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
-QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
-T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
-Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
------END CERTIFICATE-----
-
-Security Communication RootCA2
-==============================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
-SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
-aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
-+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
-3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
-spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
-EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
-QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
-CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
-u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
-3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
-tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
-mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
------END CERTIFICATE-----
-
-EC-ACC
-======
------BEGIN CERTIFICATE-----
-MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
-BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
-ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
-VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
-CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
-BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
-MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
-SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
-Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
-cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
-w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
-ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
-HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
-E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
-0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
-VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
-Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
-dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
-lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
-Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
-l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
-E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
-5EI=
------END CERTIFICATE-----
-
-Hellenic Academic and Research Institutions RootCA 2011
-=======================================================
------BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
-O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
-aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
-AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
-IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
-1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
-71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
-8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
-3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
-MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
-MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
-b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
-XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
-TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
-/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
-7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
------END CERTIFICATE-----
-
-Actalis Authentication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
-BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
-AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
-MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
-IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
-IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
-wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
-by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
-zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
-YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
-oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
-EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
-hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
-EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
-jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
-iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
-ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
-WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
-JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
-K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
-Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
-4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
-2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
-lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
-OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
-vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
------END CERTIFICATE-----
-
-Trustis FPS Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
-EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
-IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
-BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
-RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
-H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
-cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
-o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
-AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
-BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
-GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
-yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
-8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
-l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
-iB6XzCGcKQENZetX2fNXlrtIzYE=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
-VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
-Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
-dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
-c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
-bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
-aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
-aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
-L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
-cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
-fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
-N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
-Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
-tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
-e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
-2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
-HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
-JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
-D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
------END CERTIFICATE-----
-
-StartCom Certification Authority G2
-===================================
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
-ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
-o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
-4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
-Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
-Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
-O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
-vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
-nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
-FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
-z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
-KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
-2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
-J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
-JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
-/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
-nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
-blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
-l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
-7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
-obp573PYtlNXLfbQ4ddI
------END CERTIFICATE-----
-
-Buypass Class 2 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
-DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
-g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
-9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
-/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
-CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
-awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
-zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
-Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
-Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
-M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
-A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
-osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
-aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
-DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
-LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
-oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
-wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
-CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
-rJgWVqA=
------END CERTIFICATE-----
-
-Buypass Class 3 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
-DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
-sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
-5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
-7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
-ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
-2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
-/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
-RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
-Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
-j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
-cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
-uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
-Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
-ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
-KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
-6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
-UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
-eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
-Cp/HuZc=
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 3
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
-MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
-9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
-NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
-iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
-0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
-AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
-fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
-ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
-P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
-e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
------END CERTIFICATE-----
-
-EE Certification Centre Root CA
-===============================
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
-dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
-MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
-UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
-ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
-TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
-rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
-93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
-P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
-MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
-BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
-xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
-lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
-3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
-dcGWxZ0=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2007
-=================================================
------BEGIN CERTIFICATE-----
-MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
-DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
-a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
-BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
-bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
-YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
-KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
-KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
-rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
-AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
-Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
-aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
-Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
-BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
-poRq0Tl9
------END CERTIFICATE-----
-
-D-TRUST Root Class 3 CA 2 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
-Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
-LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
-ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
-BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
-KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
-p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
-AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
-4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
-eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
-MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
-PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
-OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
-2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
-o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
-dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
-X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
------END CERTIFICATE-----
-
-D-TRUST Root Class 3 CA 2 EV 2009
-=================================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
-OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
-OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
-egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
-zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
-7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
-sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
-11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
-cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
-ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
-MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
-b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
-c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
-PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
-nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
-ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
-NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
-w9y4AyHqnxbxLFS1
------END CERTIFICATE-----
-
-PSCProcert
-==========
------BEGIN CERTIFICATE-----
-MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
-ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
-MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
-dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
-cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
-IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
-MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
-DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
-ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
-Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
-wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
-3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
-RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
-EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
-0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
-0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
-td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
-Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
-r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
-AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
-Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
-xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
-ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
-EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
-Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
-ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
-9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
-MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
-LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
-ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
-YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
-Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
-dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
-T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
-g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
-uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
-n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
-FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
-5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
-3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
-poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
-eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
------END CERTIFICATE-----
-
-China Internet Network Information Center EV Certificates Root
-==============================================================
------BEGIN CERTIFICATE-----
-MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
-BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
-aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
-Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
-A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
-PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
-cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
-jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
-98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
-klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
-KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
-7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
-glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
-0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
-7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
-ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
-5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
------END CERTIFICATE-----
-
-Swisscom Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2
-MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM
-LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo
-ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ
-wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH
-Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a
-SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS
-NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab
-mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY
-Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3
-qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
-BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu
-MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO
-v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ
-82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz
-o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs
-a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx
-OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW
-mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o
-+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC
-rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX
-5OfNeOI5wSsSnqaeG8XmDtkx2Q==
------END CERTIFICATE-----
-
-Swisscom Root EV CA 2
-=====================
------BEGIN CERTIFICATE-----
-MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE
-BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl
-cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN
-MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT
-HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg
-Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz
-o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy
-Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti
-GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li
-qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH
-Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG
-alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa
-m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox
-bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi
-xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/
-BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
-MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB
-bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL
-j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU
-wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7
-XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH
-59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/
-23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq
-J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA
-HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi
-uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW
-l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
------END CERTIFICATE-----
-
-CA Disig Root R1
-================
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw
-EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
-ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx
-EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
-c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy
-3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8
-u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2
-m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk
-CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa
-YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6
-vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL
-LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX
-ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is
-XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ
-04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
-xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B
-LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM
-CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb
-VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85
-YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS
-ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix
-lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N
-UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ
-a7+h89n07eLw4+1knj0vllJPgFOL
------END CERTIFICATE-----
-
-CA Disig Root R2
-================
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw
-EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
-ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx
-EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
-c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC
-w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia
-xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7
-A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S
-GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV
-g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa
-5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE
-koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A
-Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i
-Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u
-Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
-tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV
-sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je
-dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8
-1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx
-mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01
-utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0
-sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg
-UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV
-7+ZtsH8tZ/3zbBt1RqPlShfppNcL
------END CERTIFICATE-----
-
-ACCVRAIZ1
-=========
------BEGIN CERTIFICATE-----
-MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
-SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
-MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
-UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
-jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
-RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
-aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
-0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
-WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
-8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
-5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
-9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
-Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
-Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
-Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
-VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
-Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
-QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
-AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
-YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
-AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
-IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
-aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
-dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
-MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
-hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
-R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
-YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
-nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
-TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
-sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
-I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
-Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
-3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
-EfbRD0tVNEYqi4Y7
------END CERTIFICATE-----
-
-TWCA Global Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
-CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
-QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
-EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
-Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
-nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
-r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
-Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
-tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
-KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
-sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
-yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
-kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
-zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
-AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
-cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
-LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
-8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
-/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
-lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
-A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
-i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
-EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
-zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
------END CERTIFICATE-----
-
-TeliaSonera Root CA v1
-======================
------BEGIN CERTIFICATE-----
-MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
-CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
-MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
-VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
-6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
-3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
-B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
-Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
-oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
-F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
-oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
-gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
-TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
-AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
-DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
-zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
-0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
-pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
-G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
-c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
-JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
-qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
-Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
-WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
------END CERTIFICATE-----
-
-E-Tugra Certification Authority
-===============================
------BEGIN CERTIFICATE-----
-MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
-DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
-ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
-ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
-NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
-QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
-cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
-DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
-hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
-CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
-ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
-BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
-E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
-rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
-jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
-rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
-dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
-/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
-MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
-kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
-XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
-VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
-a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
-dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
-KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
-Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
-8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
-C7TbO6Orb1wdtn7os4I07QZcJA==
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 2
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
-MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
-SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
-vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
-2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
-WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
-YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
-r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
-vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
-3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
-9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
------END CERTIFICATE-----
-
-Atos TrustedRoot 2011
-=====================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
-cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
-MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
-A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
-hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
-54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
-DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
-HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
-z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
-l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
-bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
-CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
-k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
-TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
-61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
-3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
------END CERTIFICATE-----
-
-QuoVadis Root CA 1 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE
-PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm
-PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6
-Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN
-ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l
-g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
-7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX
-9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f
-iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg
-t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI
-hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
-MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3
-GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct
-Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
-+V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh
-3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
-wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6
-O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0
-FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV
-hMJKzRwuJIczYOXD
------END CERTIFICATE-----
-
-QuoVadis Root CA 2 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh
-ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY
-NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t
-oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o
-MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l
-V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo
-L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ
-sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD
-6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh
-lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI
-hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
-AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K
-pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9
-x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz
-dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X
-U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw
-mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD
-zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN
-JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr
-O3jtZsSOeWmD3n+M
------END CERTIFICATE-----
-
-QuoVadis Root CA 3 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286
-IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL
-Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe
-6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3
-I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U
-VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7
-5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi
-Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM
-dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt
-rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI
-hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
-KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS
-t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ
-TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du
-DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib
-Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD
-hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX
-0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW
-dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2
-PpxxVJkES/1Y+Zj0
------END CERTIFICATE-----
-
-DigiCert Assured ID Root G2
-===========================
------BEGIN CERTIFICATE-----
-MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
-MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
-35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
-bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
-VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
-YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
-lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
-w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
-0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
-d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
-hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
-jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
-IhNzbM8m9Yop5w==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root G3
-===========================
------BEGIN CERTIFICATE-----
-MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
-VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
-MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
-BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
-RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
-KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
-UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
-YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
-1vUhZscv6pZjamVFkpUBtA==
------END CERTIFICATE-----
-
-DigiCert Global Root G2
-=======================
------BEGIN CERTIFICATE-----
-MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
-MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
-kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
-3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
-BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
-UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
-o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
-5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
-F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
-WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
-QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
-iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
-MrY=
------END CERTIFICATE-----
-
-DigiCert Global Root G3
-=======================
------BEGIN CERTIFICATE-----
-MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
-VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
-MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
-aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
-AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
-YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
-BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
-Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
-3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
-VOKa5Vt8sycX
------END CERTIFICATE-----
-
-DigiCert Trusted Root G4
-========================
------BEGIN CERTIFICATE-----
-MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw
-HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
-MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
-pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o
-k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa
-vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY
-QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6
-MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm
-mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
-f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH
-dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8
-oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
-DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
-ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY
-ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr
-yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy
-7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah
-ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN
-5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb
-/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa
-5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK
-G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
-82Z+
------END CERTIFICATE-----
-
-WoSign
-======
------BEGIN CERTIFICATE-----
-MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
-EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g
-QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ
-BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
-vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO
-CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX
-2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5
-KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR
-+ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez
-EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk
-lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2
-8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY
-yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C
-AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R
-8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
-LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq
-T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj
-y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC
-2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes
-5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/
-EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh
-mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx
-kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi
-kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w==
------END CERTIFICATE-----
-
-WoSign China
-============
------BEGIN CERTIFICATE-----
-MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG
-EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv
-geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD
-VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k
-8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5
-uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85
-dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5
-Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy
-b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc
-76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m
-+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6
-yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX
-GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA
-A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
-yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY
-r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115
-j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A
-kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97
-qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y
-jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB
-ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv
-T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO
-kI26oQ==
------END CERTIFICATE-----
-
-COMODO RSA Certification Authority
-==================================
------BEGIN CERTIFICATE-----
-MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC
-R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
-ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn
-dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ
-FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+
-5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG
-x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX
-2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL
-OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3
-sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C
-GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5
-WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
-FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt
-rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+
-nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg
-tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW
-sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp
-pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA
-zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq
-ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52
-7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I
-LaZRfyHBNVOFBkpdn627G190
------END CERTIFICATE-----
-
-USERTrust RSA Certification Authority
-=====================================
------BEGIN CERTIFICATE-----
-MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE
-BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
-ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE
-BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
-ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz
-0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j
-Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn
-RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O
-+T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq
-/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE
-Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM
-lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8
-yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+
-eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
-BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW
-FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ
-7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ
-Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM
-8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi
-FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi
-yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c
-J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw
-sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx
-Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9
------END CERTIFICATE-----
-
-USERTrust ECC Certification Authority
-=====================================
------BEGIN CERTIFICATE-----
-MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
-aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
-aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2
-0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez
-nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV
-HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB
-HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
-9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
------END CERTIFICATE-----
-
-GlobalSign ECC Root CA - R4
-===========================
------BEGIN CERTIFICATE-----
-MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
-OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
-AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
-MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
-JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
------END CERTIFICATE-----
-
-GlobalSign ECC Root CA - R5
-===========================
------BEGIN CERTIFICATE-----
-MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6
-SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS
-h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
-BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
-uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
-yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA - G3
-==================================
------BEGIN CERTIFICATE-----
-MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC
-TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
-ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y
-olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t
-x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy
-EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K
-Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur
-mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5
-1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp
-07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo
-FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE
-41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB
-AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu
-yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
-U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq
-KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1
-v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA
-8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b
-8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r
-mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq
-1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI
-JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV
-tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk=
------END CERTIFICATE-----
-
-Staat der Nederlanden EV Root CA
-================================
------BEGIN CERTIFICATE-----
-MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M
-MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl
-cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk
-SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW
-O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r
-0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8
-Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV
-XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr
-08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV
-0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd
-74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx
-fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa
-ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
-eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu
-c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq
-5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN
-b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN
-f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi
-5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
-WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK
-DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy
-eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
------END CERTIFICATE-----
-
-IdenTrust Commercial Root CA 1
-==============================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG
-EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS
-b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES
-MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB
-IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld
-hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/
-mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi
-1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C
-XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl
-3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy
-NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV
-WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg
-xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix
-uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
-AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI
-hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
-6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg
-ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt
-ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV
-YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX
-feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro
-kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe
-2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz
-Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R
-cGzM7vRX+Bi6hG6H
------END CERTIFICATE-----
-
-IdenTrust Public Sector Root CA 1
-=================================
------BEGIN CERTIFICATE-----
-MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG
-EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv
-ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV
-UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS
-b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy
-P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6
-Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI
-rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf
-qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS
-mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn
-ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh
-LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v
-iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL
-4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B
-Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw
-DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
-t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A
-mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt
-GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt
-m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx
-NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4
-Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI
-ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC
-ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ
-3Wl9af0AVqW3rLatt8o+Ae+c
------END CERTIFICATE-----
-
-Entrust Root Certification Authority - G2
-=========================================
------BEGIN CERTIFICATE-----
-MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
-bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
-b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
-HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
-DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
-OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
-eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
-/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
-HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
-s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
-TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
-AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
-0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
-iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
-Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
-nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
-vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
-e4pIb4tF9g==
------END CERTIFICATE-----
-
-Entrust Root Certification Authority - EC1
-==========================================
------BEGIN CERTIFICATE-----
-MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
-FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
-YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
-ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
-FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
-LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
-dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
-IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
-AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
-9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
-vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
-kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
------END CERTIFICATE-----
-
-CFCA EV ROOT
-============
------BEGIN CERTIFICATE-----
-MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE
-CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB
-IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw
-MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD
-DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV
-BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD
-7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN
-uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW
-ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7
-xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f
-py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K
-gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol
-hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ
-tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf
-BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
-ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q
-ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua
-4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG
-E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX
-BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn
-aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy
-PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX
-kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
-ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
------END CERTIFICATE-----
-
-TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
-=========================================================
------BEGIN CERTIFICATE-----
-MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
-BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
-bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
-RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
-ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
-SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
-n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
-ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
-jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
-ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
-9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
-4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
-HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
-hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
-BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
-URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
-lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
-B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
------END CERTIFICATE-----
-
-TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
-=========================================================
------BEGIN CERTIFICATE-----
-MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5
-MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL
-BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf
-aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm
-aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a
-2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED
-wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb
-HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV
-+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT
-9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
-9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R
-fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
-o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW
-hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1
-O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw==
------END CERTIFICATE-----
-
-Certinomis - Root CA
-====================
------BEGIN CERTIFICATE-----
-MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
-Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg
-LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx
-EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
-ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos
-P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
-d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap
-z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00
-8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x
-RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE
-6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t
-FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV
-PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
-i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj
-YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I
-6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
-AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
-WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw
-Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX
-lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ
-y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9
-Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng
-DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi
-I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM
-cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr
-hkIGuUE=
------END CERTIFICATE-----
diff --git a/milfs/addon/logis/funciones/twitter/tuitear.php b/milfs/addon/logis/funciones/twitter/tuitear.php
deleted file mode 100644
index 43ff03c..0000000
--- a/milfs/addon/logis/funciones/twitter/tuitear.php
+++ /dev/null
@@ -1,31 +0,0 @@
-getRequestToken(OAUTH_CALLBACK);
-$request_token = $connection->oauth('oauth/request_token');
-
-/* Guarda la credenciales temporales en sesión. */
-$_SESSION['oauth_token'] = $token = $request_token['oauth_token'];
-$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
-//switch ($connection->http_code) {
-// case 200:
- /* Construye la url de autorización y envía al usuario a Twitter. */
- $url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
- //$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
- //$url = $connection->getAuthorizeURL($token);
-// print $url;
- header('Location: ' . $url);
- //break;
- // default:
- /* Indica que se ha producido un error. */
- // echo 'Error de conexión a Twitter.';
- // echo "\nHTTP CODE: " . $connection->http_code;
-//}
\ No newline at end of file
diff --git a/milfs/addon/logis/grabar.php b/milfs/addon/logis/grabar.php
deleted file mode 100644
index 64746ac..0000000
--- a/milfs/addon/logis/grabar.php
+++ /dev/null
@@ -1,177 +0,0 @@
-addScript("window.location.href ='$url';");
- $preview = "
-
-
-";
-
- //$respuesta = new xajaxResponse('utf-8');
- //$identificador = $formulario['identificador'];
- $id_formulario = $_POST['formulario_id'];
- $campo_imagen = buscar_campo_tipo("$id_formulario","15");
- $_POST[$campo_imagen[0]][0] = $imagen;
- $empresa = remplacetas('form_id','id',"$id_formulario",'id_empresa',"") ;
- $id_empresa = $empresa[0];
- include_once("$_SESSION[path]/funciones/conex.php");
- //include_once("$_SESSION[url]funciones/conex.php");
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
- foreach($_POST as $campo=>$valor){
- if(is_array($valor)) {
- foreach($valor as $c=>$v){
- $consulta = "INSERT INTO form_datos ( timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( UNIX_TIMESTAMP(),'$_SESSION[id]','$id_empresa','$id_formulario','$ip' ,'$control', '$campo' , '$v')
- ";
- $sql=mysqli_query($consulta,$link);
- // $campos .= " $campo // $valor // $c -> $v $consulta ";
- }
- }
- }
-
-$resultado = "$preview $consulta ";
-
- ///$respuesta->addAssign("aviso","innerHTML","$preview");
- //$respuesta->addAlert("$resultado");
- //$respuesta->addScript("javascript:location.reload(true);");
- return $resultado;
-}
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($consulta,$link);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-function grabar_imagen($imagen,$control) {
-
- $imgData = str_replace(' ','+',$imagen);
- $imgData = substr($imgData,strpos($imgData,",")+1);
- $imgData = base64_decode($imgData);
-
- $nombre= $control.".png";
- $filePath = "$_SESSION[path]/tmp/".$nombre;
-
- $file = fopen($filePath, 'w');
- fwrite($file, $imgData);
- fclose($file);
- $full= "$_SESSION[path_images_secure]/full/".$nombre;
- if (!rename($filePath,$full)){}
- else {
- echo generar_miniatura($nombre,"150");
- echo generar_miniatura($nombre,"300");
- echo generar_miniatura($nombre,"600");
- }
-
- //return "$nombre";
- return "$nombre";
-}
-
-
-function generar_miniatura($file,$width) {
//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[0] / $file_info[1];
// Calculamos las nuevas dimensiones
$newwidth = $width;
$newheight = round($newwidth / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 80);
-imagepng($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 9);
-//imagegif($thumb,"$_SESSION[path_images_secure]/".$width."/$file");
-//imagejpeg($thumb,null, 80);
-}
-
-function buscar_campo_tipo($id,$tipo) {
- //// esta función retorna el id para un campo de un tipo especifico dentro de un formulario.
-$consulta ="SELECT form_campos.id, form_campos.campo_nombre FROM form_tipo_campo,form_campos,form_contenido_campos
- WHERE form_tipo_campo.id_tipo_campo = form_campos.campo_tipo
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = '$tipo'
- AND form_contenido_campos.id_form = '$id'";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0'){
- $resultado[0]=mysqli_result($sql,0,"id");
- $resultado[1]=mysqli_result($sql,0,"campo_nombre");
- $resultado[2] =$consulta;
- }else{ $resultado[0]='';
- $resultado[2] =$consulta;
- }
-return $resultado;
-}
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-?>
\ No newline at end of file
diff --git a/milfs/addon/logis/images/logos/150.png b/milfs/addon/logis/images/logos/150.png
deleted file mode 100644
index cbc5867..0000000
Binary files a/milfs/addon/logis/images/logos/150.png and /dev/null differ
diff --git a/milfs/addon/logis/images/logos/250.png b/milfs/addon/logis/images/logos/250.png
deleted file mode 100644
index cab9694..0000000
Binary files a/milfs/addon/logis/images/logos/250.png and /dev/null differ
diff --git a/milfs/addon/logis/images/logos/c.png b/milfs/addon/logis/images/logos/c.png
deleted file mode 100644
index 1d95ac7..0000000
Binary files a/milfs/addon/logis/images/logos/c.png and /dev/null differ
diff --git a/milfs/addon/logis/index.html b/milfs/addon/logis/index.html
deleted file mode 100644
index e69de29..0000000
diff --git a/milfs/addon/logis/js/demo.js b/milfs/addon/logis/js/demo.js
deleted file mode 100644
index 6c0a334..0000000
--- a/milfs/addon/logis/js/demo.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * JavaScript Load Image Demo JS 1.9.1
- * https://github.com/blueimp/JavaScript-Load-Image
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-
-
diff --git a/milfs/addon/logis/js/load-image-meta.js b/milfs/addon/logis/js/load-image-meta.js
deleted file mode 100644
index d808508..0000000
--- a/milfs/addon/logis/js/load-image-meta.js
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * JavaScript Load Image Meta 1.0.2
- * https://github.com/blueimp/JavaScript-Load-Image
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Image meta data handling implementation
- * based on the help and contribution of
- * Achim Stöhr.
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/*jslint continue:true */
-/*global define, window, DataView, Blob, Uint8Array, console */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define(['load-image'], factory);
- } else {
- // Browser globals:
- factory(window.loadImage);
- }
-}(function (loadImage) {
- 'use strict';
-
- var hasblobSlice = window.Blob && (Blob.prototype.slice ||
- Blob.prototype.webkitSlice || Blob.prototype.mozSlice);
-
- loadImage.blobSlice = hasblobSlice && function () {
- var slice = this.slice || this.webkitSlice || this.mozSlice;
- return slice.apply(this, arguments);
- };
-
- loadImage.metaDataParsers = {
- jpeg: {
- 0xffe1: [] // APP1 marker
- }
- };
-
- // Parses image meta data and calls the callback with an object argument
- // with the following properties:
- // * imageHead: The complete image head as ArrayBuffer (Uint8Array for IE10)
- // The options arguments accepts an object and supports the following properties:
- // * maxMetaDataSize: Defines the maximum number of bytes to parse.
- // * disableImageHead: Disables creating the imageHead property.
- loadImage.parseMetaData = function (file, callback, options) {
- options = options || {};
- var that = this,
- // 256 KiB should contain all EXIF/ICC/IPTC segments:
- maxMetaDataSize = options.maxMetaDataSize || 262144,
- data = {},
- noMetaData = !(window.DataView && file && file.size >= 12 &&
- file.type === 'image/jpeg' && loadImage.blobSlice);
- if (noMetaData || !loadImage.readFile(
- loadImage.blobSlice.call(file, 0, maxMetaDataSize),
- function (e) {
- if (e.target.error) {
- // FileReader error
- console.log(e.target.error);
- callback(data);
- return;
- }
- // Note on endianness:
- // Since the marker and length bytes in JPEG files are always
- // stored in big endian order, we can leave the endian parameter
- // of the DataView methods undefined, defaulting to big endian.
- var buffer = e.target.result,
- dataView = new DataView(buffer),
- offset = 2,
- maxOffset = dataView.byteLength - 4,
- headLength = offset,
- markerBytes,
- markerLength,
- parsers,
- i;
- // Check for the JPEG marker (0xffd8):
- if (dataView.getUint16(0) === 0xffd8) {
- while (offset < maxOffset) {
- markerBytes = dataView.getUint16(offset);
- // Search for APPn (0xffeN) and COM (0xfffe) markers,
- // which contain application-specific meta-data like
- // Exif, ICC and IPTC data and text comments:
- if ((markerBytes >= 0xffe0 && markerBytes <= 0xffef) ||
- markerBytes === 0xfffe) {
- // The marker bytes (2) are always followed by
- // the length bytes (2), indicating the length of the
- // marker segment, which includes the length bytes,
- // but not the marker bytes, so we add 2:
- markerLength = dataView.getUint16(offset + 2) + 2;
- if (offset + markerLength > dataView.byteLength) {
- console.log('Invalid meta data: Invalid segment size.');
- break;
- }
- parsers = loadImage.metaDataParsers.jpeg[markerBytes];
- if (parsers) {
- for (i = 0; i < parsers.length; i += 1) {
- parsers[i].call(
- that,
- dataView,
- offset,
- markerLength,
- data,
- options
- );
- }
- }
- offset += markerLength;
- headLength = offset;
- } else {
- // Not an APPn or COM marker, probably safe to
- // assume that this is the end of the meta data
- break;
- }
- }
- // Meta length must be longer than JPEG marker (2)
- // plus APPn marker (2), followed by length bytes (2):
- if (!options.disableImageHead && headLength > 6) {
- if (buffer.slice) {
- data.imageHead = buffer.slice(0, headLength);
- } else {
- // Workaround for IE10, which does not yet
- // support ArrayBuffer.slice:
- data.imageHead = new Uint8Array(buffer)
- .subarray(0, headLength);
- }
- }
- } else {
- console.log('Invalid JPEG file: Missing JPEG marker.');
- }
- callback(data);
- },
- 'readAsArrayBuffer'
- )) {
- callback(data);
- }
- };
-
-}));
diff --git a/milfs/addon/logis/js/load-image-orientation.js b/milfs/addon/logis/js/load-image-orientation.js
deleted file mode 100644
index f0a32fa..0000000
--- a/milfs/addon/logis/js/load-image-orientation.js
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * JavaScript Load Image Orientation 1.1.0
- * https://github.com/blueimp/JavaScript-Load-Image
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/*global define, window */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define(['load-image'], factory);
- } else {
- // Browser globals:
- factory(window.loadImage);
- }
-}(function (loadImage) {
- 'use strict';
-
- var originalHasCanvasOption = loadImage.hasCanvasOption,
- originalTransformCoordinates = loadImage.transformCoordinates,
- originalGetTransformedOptions = loadImage.getTransformedOptions;
-
- // This method is used to determine if the target image
- // should be a canvas element:
- loadImage.hasCanvasOption = function (options) {
- return originalHasCanvasOption.call(loadImage, options) ||
- options.orientation;
- };
-
- // Transform image orientation based on
- // the given EXIF orientation option:
- loadImage.transformCoordinates = function (canvas, options) {
- originalTransformCoordinates.call(loadImage, canvas, options);
- var ctx = canvas.getContext('2d'),
- width = canvas.width,
- height = canvas.height,
- orientation = options.orientation;
- if (!orientation || orientation > 8) {
- return;
- }
- if (orientation > 4) {
- canvas.width = height;
- canvas.height = width;
- }
- switch (orientation) {
- case 2:
- // horizontal flip
- ctx.translate(width, 0);
- ctx.scale(-1, 1);
- break;
- case 3:
- // 180° rotate left
- ctx.translate(width, height);
- ctx.rotate(Math.PI);
- break;
- case 4:
- // vertical flip
- ctx.translate(0, height);
- ctx.scale(1, -1);
- break;
- case 5:
- // vertical flip + 90 rotate right
- ctx.rotate(0.5 * Math.PI);
- ctx.scale(1, -1);
- break;
- case 6:
- // 90° rotate right
- ctx.rotate(0.5 * Math.PI);
- ctx.translate(0, -height);
- break;
- case 7:
- // horizontal flip + 90 rotate right
- ctx.rotate(0.5 * Math.PI);
- ctx.translate(width, -height);
- ctx.scale(-1, 1);
- break;
- case 8:
- // 90° rotate left
- ctx.rotate(-0.5 * Math.PI);
- ctx.translate(-width, 0);
- break;
- }
- };
-
- // Transforms coordinate and dimension options
- // based on the given orientation option:
- loadImage.getTransformedOptions = function (img, opts) {
- var options = originalGetTransformedOptions.call(loadImage, img, opts),
- orientation = options.orientation,
- newOptions,
- i;
- if (!orientation || orientation > 8 || orientation === 1) {
- return options;
- }
- newOptions = {};
- for (i in options) {
- if (options.hasOwnProperty(i)) {
- newOptions[i] = options[i];
- }
- }
- switch (options.orientation) {
- case 2:
- // horizontal flip
- newOptions.left = options.right;
- newOptions.right = options.left;
- break;
- case 3:
- // 180° rotate left
- newOptions.left = options.right;
- newOptions.top = options.bottom;
- newOptions.right = options.left;
- newOptions.bottom = options.top;
- break;
- case 4:
- // vertical flip
- newOptions.top = options.bottom;
- newOptions.bottom = options.top;
- break;
- case 5:
- // vertical flip + 90 rotate right
- newOptions.left = options.top;
- newOptions.top = options.left;
- newOptions.right = options.bottom;
- newOptions.bottom = options.right;
- break;
- case 6:
- // 90° rotate right
- newOptions.left = options.top;
- newOptions.top = options.right;
- newOptions.right = options.bottom;
- newOptions.bottom = options.left;
- break;
- case 7:
- // horizontal flip + 90 rotate right
- newOptions.left = options.bottom;
- newOptions.top = options.right;
- newOptions.right = options.top;
- newOptions.bottom = options.left;
- break;
- case 8:
- // 90° rotate left
- newOptions.left = options.bottom;
- newOptions.top = options.left;
- newOptions.right = options.top;
- newOptions.bottom = options.right;
- break;
- }
- if (options.orientation > 4) {
- newOptions.maxWidth = options.maxHeight;
- newOptions.maxHeight = options.maxWidth;
- newOptions.minWidth = options.minHeight;
- newOptions.minHeight = options.minWidth;
- newOptions.sourceWidth = options.sourceHeight;
- newOptions.sourceHeight = options.sourceWidth;
- }
- return newOptions;
- };
-
-}));
diff --git a/milfs/addon/logis/js/load-image.all.min.js b/milfs/addon/logis/js/load-image.all.min.js
deleted file mode 100644
index edabcd1..0000000
--- a/milfs/addon/logis/js/load-image.all.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(a){"use strict";var b=function(a,c,d){var e,f,g=document.createElement("img");if(g.onerror=c,g.onload=function(){!f||d&&d.noRevoke||b.revokeObjectURL(f),c&&c(b.scale(g,d))},b.isInstanceOf("Blob",a)||b.isInstanceOf("File",a))e=f=b.createObjectURL(a),g._type=a.type;else{if("string"!=typeof a)return!1;e=a,d&&d.crossOrigin&&(g.crossOrigin=d.crossOrigin)}return e?(g.src=e,g):b.readFile(a,function(a){var b=a.target;b&&b.result?g.src=b.result:c&&c(a)})},c=window.createObjectURL&&window||window.URL&&URL.revokeObjectURL&&URL||window.webkitURL&&webkitURL;b.isInstanceOf=function(a,b){return Object.prototype.toString.call(b)==="[object "+a+"]"},b.transformCoordinates=function(){},b.getTransformedOptions=function(a,b){var c,d,e,f,g=b.aspectRatio;if(!g)return b;c={};for(d in b)b.hasOwnProperty(d)&&(c[d]=b[d]);return c.crop=!0,e=a.naturalWidth||a.width,f=a.naturalHeight||a.height,e/f>g?(c.maxWidth=f*g,c.maxHeight=f):(c.maxWidth=e,c.maxHeight=e/g),c},b.renderImageToCanvas=function(a,b,c,d,e,f,g,h,i,j){return a.getContext("2d").drawImage(b,c,d,e,f,g,h,i,j),a},b.hasCanvasOption=function(a){return a.canvas||a.crop||a.aspectRatio},b.scale=function(a,c){c=c||{};var d,e,f,g,h,i,j,k,l,m=document.createElement("canvas"),n=a.getContext||b.hasCanvasOption(c)&&m.getContext,o=a.naturalWidth||a.width,p=a.naturalHeight||a.height,q=o,r=p,s=function(){var a=Math.max((f||q)/q,(g||r)/r);a>1&&(q*=a,r*=a)},t=function(){var a=Math.min((d||q)/q,(e||r)/r);1>a&&(q*=a,r*=a)};return n&&(c=b.getTransformedOptions(a,c),j=c.left||0,k=c.top||0,c.sourceWidth?(h=c.sourceWidth,void 0!==c.right&&void 0===c.left&&(j=o-h-c.right)):h=o-j-(c.right||0),c.sourceHeight?(i=c.sourceHeight,void 0!==c.bottom&&void 0===c.top&&(k=p-i-c.bottom)):i=p-k-(c.bottom||0),q=h,r=i),d=c.maxWidth,e=c.maxHeight,f=c.minWidth,g=c.minHeight,n&&d&&e&&c.crop?(q=d,r=e,l=h/i-d/e,0>l?(i=e*h/d,void 0===c.top&&void 0===c.bottom&&(k=(p-i)/2)):l>0&&(h=d*i/e,void 0===c.left&&void 0===c.right&&(j=(o-h)/2))):((c.contain||c.cover)&&(f=d=d||f,g=e=e||g),c.cover?(t(),s()):(s(),t())),n?(m.width=q,m.height=r,b.transformCoordinates(m,c),b.renderImageToCanvas(m,a,j,k,h,i,0,0,q,r)):(a.width=q,a.height=r,a)},b.createObjectURL=function(a){return c?c.createObjectURL(a):!1},b.revokeObjectURL=function(a){return c?c.revokeObjectURL(a):!1},b.readFile=function(a,b,c){if(window.FileReader){var d=new FileReader;if(d.onload=d.onerror=b,c=c||"readAsDataURL",d[c])return d[c](a),d}return!1},"function"==typeof define&&define.amd?define(function(){return b}):a.loadImage=b}(window),function(a){"use strict";"function"==typeof define&&define.amd?define(["load-image"],a):a(window.loadImage)}(function(a){"use strict";if(window.navigator&&window.navigator.platform&&/iP(hone|od|ad)/.test(window.navigator.platform)){var b=a.renderImageToCanvas;a.detectSubsampling=function(a){var b,c;return a.width*a.height>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-a.width+1,0),0===c.getImageData(0,0,1,1).data[3]):!1},a.detectVerticalSquash=function(a,b){var c,d,e,f,g,h=a.naturalHeight||a.height,i=document.createElement("canvas"),j=i.getContext("2d");for(b&&(h/=2),i.width=1,i.height=h,j.drawImage(a,0,0),c=j.getImageData(0,0,1,h).data,d=0,e=h,f=h;f>d;)g=c[4*(f-1)+3],0===g?e=f:d=f,f=e+d>>1;return f/h||1},a.renderImageToCanvas=function(c,d,e,f,g,h,i,j,k,l){if("image/jpeg"===d._type){var m,n,o,p,q=c.getContext("2d"),r=document.createElement("canvas"),s=1024,t=r.getContext("2d");if(r.width=s,r.height=s,q.save(),m=a.detectSubsampling(d),m&&(e/=2,f/=2,g/=2,h/=2),n=a.detectVerticalSquash(d,m),m||1!==n){for(f*=n,k=Math.ceil(s*k/g),l=Math.ceil(s*l/h/n),j=0,p=0;h>p;){for(i=0,o=0;g>o;)t.clearRect(0,0,s,s),t.drawImage(d,e,f,g,h,-o,-p,g,h),q.drawImage(r,0,0,s,s,i,j,k,l),o+=s,i+=k;p+=s,j+=l}return q.restore(),c}}return b(c,d,e,f,g,h,i,j,k,l)}}}),function(a){"use strict";"function"==typeof define&&define.amd?define(["load-image"],a):a(window.loadImage)}(function(a){"use strict";var b=a.hasCanvasOption,c=a.transformCoordinates,d=a.getTransformedOptions;a.hasCanvasOption=function(c){return b.call(a,c)||c.orientation},a.transformCoordinates=function(b,d){c.call(a,b,d);var e=b.getContext("2d"),f=b.width,g=b.height,h=d.orientation;if(h&&!(h>8))switch(h>4&&(b.width=g,b.height=f),h){case 2:e.translate(f,0),e.scale(-1,1);break;case 3:e.translate(f,g),e.rotate(Math.PI);break;case 4:e.translate(0,g),e.scale(1,-1);break;case 5:e.rotate(.5*Math.PI),e.scale(1,-1);break;case 6:e.rotate(.5*Math.PI),e.translate(0,-g);break;case 7:e.rotate(.5*Math.PI),e.translate(f,-g),e.scale(-1,1);break;case 8:e.rotate(-.5*Math.PI),e.translate(-f,0)}},a.getTransformedOptions=function(b,c){var e,f,g=d.call(a,b,c),h=g.orientation;if(!h||h>8||1===h)return g;e={};for(f in g)g.hasOwnProperty(f)&&(e[f]=g[f]);switch(g.orientation){case 2:e.left=g.right,e.right=g.left;break;case 3:e.left=g.right,e.top=g.bottom,e.right=g.left,e.bottom=g.top;break;case 4:e.top=g.bottom,e.bottom=g.top;break;case 5:e.left=g.top,e.top=g.left,e.right=g.bottom,e.bottom=g.right;break;case 6:e.left=g.top,e.top=g.right,e.right=g.bottom,e.bottom=g.left;break;case 7:e.left=g.bottom,e.top=g.right,e.right=g.top,e.bottom=g.left;break;case 8:e.left=g.bottom,e.top=g.left,e.right=g.top,e.bottom=g.right}return g.orientation>4&&(e.maxWidth=g.maxHeight,e.maxHeight=g.maxWidth,e.minWidth=g.minHeight,e.minHeight=g.minWidth,e.sourceWidth=g.sourceHeight,e.sourceHeight=g.sourceWidth),e}}),function(a){"use strict";"function"==typeof define&&define.amd?define(["load-image"],a):a(window.loadImage)}(function(a){"use strict";var b=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);a.blobSlice=b&&function(){var a=this.slice||this.webkitSlice||this.mozSlice;return a.apply(this,arguments)},a.metaDataParsers={jpeg:{65505:[]}},a.parseMetaData=function(b,c,d){d=d||{};var e=this,f=d.maxMetaDataSize||262144,g={},h=!(window.DataView&&b&&b.size>=12&&"image/jpeg"===b.type&&a.blobSlice);(h||!a.readFile(a.blobSlice.call(b,0,f),function(b){if(b.target.error)return console.log(b.target.error),void c(g);var f,h,i,j,k=b.target.result,l=new DataView(k),m=2,n=l.byteLength-4,o=m;if(65496===l.getUint16(0)){for(;n>m&&(f=l.getUint16(m),f>=65504&&65519>=f||65534===f);){if(h=l.getUint16(m+2)+2,m+h>l.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(i=a.metaDataParsers.jpeg[f])for(j=0;j6&&(g.imageHead=k.slice?k.slice(0,o):new Uint8Array(k).subarray(0,o))}else console.log("Invalid JPEG file: Missing JPEG marker.");c(g)},"readAsArrayBuffer"))&&c(g)}}),function(a){"use strict";"function"==typeof define&&define.amd?define(["load-image","load-image-meta"],a):a(window.loadImage)}(function(a){"use strict";a.ExifMap=function(){return this},a.ExifMap.prototype.map={Orientation:274},a.ExifMap.prototype.get=function(a){return this[a]||this[this.map[a]]},a.getExifThumbnail=function(a,b,c){var d,e,f;if(!c||b+c>a.byteLength)return void console.log("Invalid Exif data: Invalid thumbnail data.");for(d=[],e=0;c>e;e+=1)f=a.getUint8(b+e),d.push((16>f?"0":"")+f.toString(16));return"data:image/jpeg,%"+d.join("%")},a.exifTagTypes={1:{getValue:function(a,b){return a.getUint8(b)},size:1},2:{getValue:function(a,b){return String.fromCharCode(a.getUint8(b))},size:1,ascii:!0},3:{getValue:function(a,b,c){return a.getUint16(b,c)},size:2},4:{getValue:function(a,b,c){return a.getUint32(b,c)},size:4},5:{getValue:function(a,b,c){return a.getUint32(b,c)/a.getUint32(b+4,c)},size:8},9:{getValue:function(a,b,c){return a.getInt32(b,c)},size:4},10:{getValue:function(a,b,c){return a.getInt32(b,c)/a.getInt32(b+4,c)},size:8}},a.exifTagTypes[7]=a.exifTagTypes[1],a.getExifValue=function(b,c,d,e,f,g){var h,i,j,k,l,m,n=a.exifTagTypes[e];if(!n)return void console.log("Invalid Exif data: Invalid tag type.");if(h=n.size*f,i=h>4?c+b.getUint32(d+8,g):d+8,i+h>b.byteLength)return void console.log("Invalid Exif data: Invalid data offset.");if(1===f)return n.getValue(b,i,g);for(j=[],k=0;f>k;k+=1)j[k]=n.getValue(b,i+k*n.size,g);if(n.ascii){for(l="",k=0;ka.byteLength)return void console.log("Invalid Exif data: Invalid directory offset.");if(f=a.getUint16(c,d),g=c+2+12*f,g+4>a.byteLength)return void console.log("Invalid Exif data: Invalid directory size.");for(h=0;f>h;h+=1)this.parseExifTag(a,b,c+2+12*h,d,e);return a.getUint32(g,d)},a.parseExifData=function(b,c,d,e,f){if(!f.disableExif){var g,h,i,j=c+10;if(1165519206===b.getUint32(c+4)){if(j+8>b.byteLength)return void console.log("Invalid Exif data: Invalid segment size.");if(0!==b.getUint16(c+8))return void console.log("Invalid Exif data: Missing byte alignment offset.");switch(b.getUint16(j)){case 18761:g=!0;break;case 19789:g=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==b.getUint16(j+2,g))return void console.log("Invalid Exif data: Missing TIFF marker.");h=b.getUint32(j+4,g),e.exif=new a.ExifMap,h=a.parseExifTags(b,j,j+h,g,e),h&&!f.disableExifThumbnail&&(i={exif:{}},h=a.parseExifTags(b,j,j+h,g,i),i.exif[513]&&(e.exif.Thumbnail=a.getExifThumbnail(b,j+i.exif[513],i.exif[514]))),e.exif[34665]&&!f.disableExifSub&&a.parseExifTags(b,j,j+e.exif[34665],g,e),e.exif[34853]&&!f.disableExifGps&&a.parseExifTags(b,j,j+e.exif[34853],g,e)}}},a.metaDataParsers.jpeg[65505].push(a.parseExifData)}),function(a){"use strict";"function"==typeof define&&define.amd?define(["load-image","load-image-exif"],a):a(window.loadImage)}(function(a){"use strict";a.ExifMap.prototype.tags={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},a.ExifMap.prototype.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}},a.ExifMap.prototype.getText=function(a){var b=this.get(a);switch(a){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[a][b];case"ExifVersion":case"FlashpixVersion":return String.fromCharCode(b[0],b[1],b[2],b[3]);case"ComponentsConfiguration":return this.stringValues[a][b[0]]+this.stringValues[a][b[1]]+this.stringValues[a][b[2]]+this.stringValues[a][b[3]];case"GPSVersionID":return b[0]+"."+b[1]+"."+b[2]+"."+b[3]}return String(b)},function(a){var b,c=a.tags,d=a.map;for(b in c)c.hasOwnProperty(b)&&(d[c[b]]=b)}(a.ExifMap.prototype),a.ExifMap.prototype.getAll=function(){var a,b,c={};for(a in this)this.hasOwnProperty(a)&&(b=this.tags[a],b&&(c[b]=this.getText(b)));return c}});
\ No newline at end of file
diff --git a/milfs/addon/logis/js/load-image.js b/milfs/addon/logis/js/load-image.js
deleted file mode 100644
index ff9568c..0000000
--- a/milfs/addon/logis/js/load-image.js
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * JavaScript Load Image 1.10.0
- * https://github.com/blueimp/JavaScript-Load-Image
- *
- * Copyright 2011, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/*jslint nomen: true */
-/*global define, window, document, URL, webkitURL, Blob, File, FileReader */
-
-(function ($) {
- 'use strict';
-
- // Loads an image for a given File object.
- // Invokes the callback with an img or optional canvas
- // element (if supported by the browser) as parameter:
- var loadImage = function (file, callback, options) {
- var img = document.createElement('img'),
- url,
- oUrl;
- //img.setAttribute('class', 'watermark');
- // img.setAttribute('id', 'image_output2');
- img.onerror = callback;
- img.onload = function () {
- if (oUrl && !(options && options.noRevoke)) {
- loadImage.revokeObjectURL(oUrl);
- }
- if (callback) {
- callback(loadImage.scale(img, options));
- }
- };
- if (loadImage.isInstanceOf('Blob', file) ||
- // Files are also Blob instances, but some browsers
- // (Firefox 3.6) support the File API but not Blobs:
- loadImage.isInstanceOf('File', file)) {
- url = oUrl = loadImage.createObjectURL(file);
- // Store the file type for resize processing:
- img._type = file.type;
- } else if (typeof file === 'string') {
- url = file;
- if (options && options.crossOrigin) {
- img.crossOrigin = options.crossOrigin;
- }
- } else {
- return false;
- }
- if (url) {
- img.src = url;
- //document.getElementById('image_output').src = url ;
- //document.getElementById('image_output').className = "watermark" ;
- return img;
- }
- return loadImage.readFile(file, function (e) {
- var target = e.target;
- if (target && target.result) {
- img.src = target.result;
- } else {
- if (callback) {
- callback(e);
- }
- }
- });
- },
- // The check for URL.revokeObjectURL fixes an issue with Opera 12,
- // which provides URL.createObjectURL but doesn't properly implement it:
- urlAPI = (window.createObjectURL && window) ||
- (window.URL && URL.revokeObjectURL && URL) ||
- (window.webkitURL && webkitURL);
-
- loadImage.isInstanceOf = function (type, obj) {
- // Cross-frame instanceof check
- return Object.prototype.toString.call(obj) === '[object ' + type + ']';
- };
-
- // Transform image coordinates, allows to override e.g.
- // the canvas orientation based on the orientation option,
- // gets canvas, options passed as arguments:
- loadImage.transformCoordinates = function () {
- return;
- };
-
- // Returns transformed options, allows to override e.g.
- // maxWidth, maxHeight and crop options based on the aspectRatio.
- // gets img, options passed as arguments:
- loadImage.getTransformedOptions = function (img, options) {
- var aspectRatio = options.aspectRatio,
- newOptions,
- i,
- width,
- height;
- if (!aspectRatio) {
- return options;
- }
- newOptions = {};
- for (i in options) {
- if (options.hasOwnProperty(i)) {
- newOptions[i] = options[i];
- }
- }
- newOptions.crop = true;
- width = img.naturalWidth || img.width;
- height = img.naturalHeight || img.height;
- if (width / height > aspectRatio) {
- newOptions.maxWidth = height * aspectRatio;
- newOptions.maxHeight = height;
- } else {
- newOptions.maxWidth = width;
- newOptions.maxHeight = width / aspectRatio;
- }
- return newOptions;
- };
-
- // Canvas render method, allows to override the
- // rendering e.g. to work around issues on iOS:
- loadImage.renderImageToCanvas = function (
- canvas,
- img,
- sourceX,
- sourceY,
- sourceWidth,
- sourceHeight,
- destX,
- destY,
- destWidth,
- destHeight
- ) {
- canvas.getContext('2d').drawImage(
- img,
- sourceX,
- sourceY,
- sourceWidth,
- sourceHeight,
- destX,
- destY,
- destWidth,
- destHeight
- );
- return canvas;
- };
-
- // This method is used to determine if the target image
- // should be a canvas element:
- loadImage.hasCanvasOption = function (options) {
- return options.canvas || options.crop || options.aspectRatio;
- };
-
- // Scales and/or crops the given image (img or canvas HTML element)
- // using the given options.
- // Returns a canvas object if the browser supports canvas
- // and the hasCanvasOption method returns true or a canvas
- // object is passed as image, else the scaled image:
- loadImage.scale = function (img, options) {
- options = options || {};
- var canvas = document.createElement('canvas'),
- useCanvas = img.getContext ||
- (loadImage.hasCanvasOption(options) && canvas.getContext),
- width = img.naturalWidth || img.width,
- height = img.naturalHeight || img.height,
- destWidth = width,
- destHeight = height,
- maxWidth,
- maxHeight,
- minWidth,
- minHeight,
- sourceWidth,
- sourceHeight,
- sourceX,
- sourceY,
- tmp,
- scaleUp = function () {
- var scale = Math.max(
- (minWidth || destWidth) / destWidth,
- (minHeight || destHeight) / destHeight
- );
- if (scale > 1) {
- destWidth = destWidth * scale;
- destHeight = destHeight * scale;
- }
- },
- scaleDown = function () {
- var scale = Math.min(
- (maxWidth || destWidth) / destWidth,
- (maxHeight || destHeight) / destHeight
- );
- if (scale < 1) {
- destWidth = destWidth * scale;
- destHeight = destHeight * scale;
- }
- };
- if (useCanvas) {
- options = loadImage.getTransformedOptions(img, options);
- sourceX = options.left || 0;
- sourceY = options.top || 0;
- if (options.sourceWidth) {
- sourceWidth = options.sourceWidth;
- if (options.right !== undefined && options.left === undefined) {
- sourceX = width - sourceWidth - options.right;
- }
- } else {
- sourceWidth = width - sourceX - (options.right || 0);
- }
- if (options.sourceHeight) {
- sourceHeight = options.sourceHeight;
- if (options.bottom !== undefined && options.top === undefined) {
- sourceY = height - sourceHeight - options.bottom;
- }
- } else {
- sourceHeight = height - sourceY - (options.bottom || 0);
- }
- destWidth = sourceWidth;
- destHeight = sourceHeight;
- }
- maxWidth = options.maxWidth;
- maxHeight = options.maxHeight;
- minWidth = options.minWidth;
- minHeight = options.minHeight;
- if (useCanvas && maxWidth && maxHeight && options.crop) {
- destWidth = maxWidth;
- destHeight = maxHeight;
- tmp = sourceWidth / sourceHeight - maxWidth / maxHeight;
- if (tmp < 0) {
- sourceHeight = maxHeight * sourceWidth / maxWidth;
- if (options.top === undefined && options.bottom === undefined) {
- sourceY = (height - sourceHeight) / 2;
- }
- } else if (tmp > 0) {
- sourceWidth = maxWidth * sourceHeight / maxHeight;
- if (options.left === undefined && options.right === undefined) {
- sourceX = (width - sourceWidth) / 2;
- }
- }
- } else {
- if (options.contain || options.cover) {
- minWidth = maxWidth = maxWidth || minWidth;
- minHeight = maxHeight = maxHeight || minHeight;
- }
- if (options.cover) {
- scaleDown();
- scaleUp();
- } else {
- scaleUp();
- scaleDown();
- }
- }
- if (useCanvas) {
- canvas.width = destWidth;
- canvas.height = destHeight;
- loadImage.transformCoordinates(
- canvas,
- options
- );
- return loadImage.renderImageToCanvas(
- canvas,
- img,
- sourceX,
- sourceY,
- sourceWidth,
- sourceHeight,
- 0,
- 0,
- destWidth,
- destHeight
- );
- }
- img.width = destWidth;
- img.height = destHeight;
- return img;
- };
-
- loadImage.createObjectURL = function (file) {
- return urlAPI ? urlAPI.createObjectURL(file) : false;
- };
-
- loadImage.revokeObjectURL = function (url) {
- return urlAPI ? urlAPI.revokeObjectURL(url) : false;
- };
-
- // Loads a given File object via FileReader interface,
- // invokes the callback with the event object (load or error).
- // The result can be read via event.target.result:
- loadImage.readFile = function (file, callback, method) {
- if (window.FileReader) {
- var fileReader = new FileReader();
- fileReader.onload = fileReader.onerror = callback;
- method = method || 'readAsDataURL';
- if (fileReader[method]) {
- fileReader[method](file);
- return fileReader;
- }
- }
- return false;
- };
-
- if (typeof define === 'function' && define.amd) {
- define(function () {
- return loadImage;
- });
- } else {
- $.loadImage = loadImage;
- }
-}(window));
diff --git a/milfs/addon/logis/logis.php b/milfs/addon/logis/logis.php
deleted file mode 100644
index 9c91f8a..0000000
--- a/milfs/addon/logis/logis.php
+++ /dev/null
@@ -1,365 +0,0 @@
-
-
- ";
-}
-
-$imagen = "
- ";
-
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tu navegador no soporta canvas.
-
-
-
-
- Tu navegador no soporta canvas.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Grabalo!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/logis/logis.php.php b/milfs/addon/logis/logis.php.php
deleted file mode 100644
index aebaa03..0000000
--- a/milfs/addon/logis/logis.php.php
+++ /dev/null
@@ -1,207 +0,0 @@
-
-
- ";
-}
-
-$imagen = "
- ";
-
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tu navegador no soporta canvas.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/logis/logis_completo.php b/milfs/addon/logis/logis_completo.php
deleted file mode 100644
index e526ead..0000000
--- a/milfs/addon/logis/logis_completo.php
+++ /dev/null
@@ -1,207 +0,0 @@
-
-
- ";
-}
-
-$imagen = "
- ";
-
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tu navegador no soporta canvas.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/machitroll/funciones/funciones.php b/milfs/addon/machitroll/funciones/funciones.php
deleted file mode 100644
index 8138cad..0000000
--- a/milfs/addon/machitroll/funciones/funciones.php
+++ /dev/null
@@ -1,145 +0,0 @@
-";
- $respuesta->addScript("javascript: document.getElementById('imagen').value= '$imagen' ;");
- $respuesta->addAssign("aviso","innerHTML","$preview");
- return $respuesta;
-
-}
-$xajax->registerFunction("machitroll_grabar_imagen");
-
-function machitroll_grabar($formulario) {
-
- $identificador = $formulario['identificador'];
- $control = md5("$identificador");
- $data = $formulario['debugConsole'];
- $imagen= grabar_imagen($data,$control);
- $texto_url = urlencode("#AlertaMachiTroll https://actua.karisma.org.co/alertamachitroll");
- $uri = urlencode("$_SESSION[url]/images/secure/?file=600/$imagen");
- $url ="https://twitter.com/share?url=$uri&text=$texto_url";
- //$respuesta->addScript("window.location.href ='$url';");
- $preview = "
-
-
-";
-
- $respuesta = new xajaxResponse('utf-8');
- //$identificador = $formulario['identificador'];
- $id_formulario = $formulario['formulario_id'];
- $campo_imagen = buscar_campo_tipo("$id_formulario","15");
- $formulario[$campo_imagen[0]][0] = $imagen;
- $empresa = remplacetas('form_id','id',"$id_formulario",'id_empresa',"") ;
- $id_empresa = $empresa[0];
-
- include_once("librerias/conex.php");
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-
- foreach($formulario as $campo=>$valor){
- if(is_array($valor)) {
- foreach($valor as $c=>$v){
- $consulta = "INSERT INTO form_datos ( timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( UNIX_TIMESTAMP(),'$_SESSION[id]','$id_empresa','$id_formulario','$ip' ,'$control', '$campo' , '$v')
- ";
- $sql=mysqli_query($consulta,$link);
- // $campos .= " $campo // $valor // $c -> $v $consulta ";
- }
- }
- }
-
-$resultado = "$preview ";
-
- $respuesta->addAssign("aviso","innerHTML","$resultado");
- //$respuesta->addAlert("$resultado");
- //$respuesta->addScript("javascript:location.reload(true);");
- return $respuesta;
-}
-$xajax->registerFunction("machitroll_grabar");
-
-function machitroll_grabarX($formulario) {
- $respuesta = new xajaxResponse('utf-8');
- $control = md5($formulario['identificador']);
- $form_id = $fomulario["formulario_id"];
- if($formulario['debugConsole'] !="") {
- $imagen= grabar_imagen($formulario['debugConsole'],$control);
-
- }
- $campo_imagen = buscar_campo_tipo("$form_id","15");
- $formulario["$campo_imagen[0]"][0] = "$imagen";
- $formulario["formulario_id"] = $fomulario["formulario_id"];
- $formulario["formulario_id"] = $fomulario["formulario_id"];
-
-
- include_once("librerias/conex.php");
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-/*
-foreach($formulario as $c=>$v){
-$campo .= "( $c : $v ) ";
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= " Array ( $c : $V ) ";
- if($V != '') {
- }
- }
-}
-}
-*/
-
- foreach($formulario as $C=>$V){
-$campo = "$C";
-$form_id= $formulario['formulario_id'];
-
- if(is_array($V)) {
-
- foreach($V as $c=>$v){
- //$hora = $id_orden['hora'][$C];
- //$dia = "$V";
- //$control = md5(rand(1,99999999).microtime());
- $consulta = "INSERT INTO form_datos ( timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( UNIX_TIMESTAMP(),'$_SESSION[id]','$_SESSION[id_empresa]','$form_id','$ip' ,'$control', '$campo' , '$v')
- ";
- $sql=mysqli_query($consulta,$link);
-
- $filas .= " $C - $V - $c - $v ///$campo -> $V $consulta $debug ";
-
- }
- }
-}
-
- //$resultado = "Hola mundo ".$formulario[498][0]." $formulario[debugConsole] ";
- //$resultado= " $campo ";
-
- $respuesta->addAssign("aviso","innerHTML","$resultado ");
- //$respuesta->addAlert("$resultado");
- //$respuesta->addScript("javascript:location.reload(true);");
- return $respuesta;
-}
-$xajax->registerFunction("machitroll_grabarX");
-
-?>
\ No newline at end of file
diff --git a/milfs/addon/machitroll/images/incurable/100.png b/milfs/addon/machitroll/images/incurable/100.png
deleted file mode 100644
index 71e60a1..0000000
Binary files a/milfs/addon/machitroll/images/incurable/100.png and /dev/null differ
diff --git a/milfs/addon/machitroll/images/incurable/200.png b/milfs/addon/machitroll/images/incurable/200.png
deleted file mode 100644
index ad4b0d8..0000000
Binary files a/milfs/addon/machitroll/images/incurable/200.png and /dev/null differ
diff --git a/milfs/addon/machitroll/images/incurable/300.png b/milfs/addon/machitroll/images/incurable/300.png
deleted file mode 100644
index a1b1069..0000000
Binary files a/milfs/addon/machitroll/images/incurable/300.png and /dev/null differ
diff --git a/milfs/addon/machitroll/images/incurable/400.png b/milfs/addon/machitroll/images/incurable/400.png
deleted file mode 100644
index 3bb2f02..0000000
Binary files a/milfs/addon/machitroll/images/incurable/400.png and /dev/null differ
diff --git a/milfs/addon/machitroll/images/incurable/500.png b/milfs/addon/machitroll/images/incurable/500.png
deleted file mode 100644
index d4e573c..0000000
Binary files a/milfs/addon/machitroll/images/incurable/500.png and /dev/null differ
diff --git a/milfs/addon/machitroll/images/rescatable/100.png b/milfs/addon/machitroll/images/rescatable/100.png
deleted file mode 100644
index e3c5227..0000000
Binary files a/milfs/addon/machitroll/images/rescatable/100.png and /dev/null differ
diff --git a/milfs/addon/machitroll/images/rescatable/200.png b/milfs/addon/machitroll/images/rescatable/200.png
deleted file mode 100644
index 3261bce..0000000
Binary files a/milfs/addon/machitroll/images/rescatable/200.png and /dev/null differ
diff --git a/milfs/addon/machitroll/images/rescatable/300.png b/milfs/addon/machitroll/images/rescatable/300.png
deleted file mode 100644
index f638915..0000000
Binary files a/milfs/addon/machitroll/images/rescatable/300.png and /dev/null differ
diff --git a/milfs/addon/machitroll/images/rescatable/400.png b/milfs/addon/machitroll/images/rescatable/400.png
deleted file mode 100644
index d501e60..0000000
Binary files a/milfs/addon/machitroll/images/rescatable/400.png and /dev/null differ
diff --git a/milfs/addon/machitroll/images/rescatable/500.png b/milfs/addon/machitroll/images/rescatable/500.png
deleted file mode 100644
index f868ff9..0000000
Binary files a/milfs/addon/machitroll/images/rescatable/500.png and /dev/null differ
diff --git a/milfs/addon/machitroll/index.php b/milfs/addon/machitroll/index.php
deleted file mode 100644
index e69de29..0000000
diff --git a/milfs/addon/machitroll/machitroll.php b/milfs/addon/machitroll/machitroll.php
deleted file mode 100644
index b0131d5..0000000
--- a/milfs/addon/machitroll/machitroll.php
+++ /dev/null
@@ -1,487 +0,0 @@
-
-
- ";
-}
-
-$imagen = "
- ";
-*/
-$imagen = "
-";
-
-
-?>
-
-
-
-
-
-
-
-
-
-
-
Elige un #MachiTroll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Grabalo!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/marcador/funciones/funciones.php b/milfs/addon/marcador/funciones/funciones.php
deleted file mode 100644
index 496efb8..0000000
--- a/milfs/addon/marcador/funciones/funciones.php
+++ /dev/null
@@ -1,24 +0,0 @@
-addAssign("aviso","innerHTML","$resultado");
- //$respuesta->addAlert("$resultado");
- //$respuesta->addScript("javascript:location.reload(true);");
- return $respuesta;
-}
-$xajax->registerFunction("marcador_grabar");
-
-?>
\ No newline at end of file
diff --git a/milfs/addon/marcador/images/054843d530f3c83fcdbd55e688d874ec.png b/milfs/addon/marcador/images/054843d530f3c83fcdbd55e688d874ec.png
deleted file mode 100644
index fce0d03..0000000
Binary files a/milfs/addon/marcador/images/054843d530f3c83fcdbd55e688d874ec.png and /dev/null differ
diff --git a/milfs/addon/marcador/images/fb198e8742561eb1a9d8da9d95fddeae.png b/milfs/addon/marcador/images/fb198e8742561eb1a9d8da9d95fddeae.png
deleted file mode 100644
index 1d95ac7..0000000
Binary files a/milfs/addon/marcador/images/fb198e8742561eb1a9d8da9d95fddeae.png and /dev/null differ
diff --git a/milfs/addon/marcador/images/fca0a98bc665e9f026d5ea4331046893.png b/milfs/addon/marcador/images/fca0a98bc665e9f026d5ea4331046893.png
deleted file mode 100644
index 8eab5ac..0000000
Binary files a/milfs/addon/marcador/images/fca0a98bc665e9f026d5ea4331046893.png and /dev/null differ
diff --git a/milfs/addon/marcador/index.php b/milfs/addon/marcador/index.php
deleted file mode 100644
index e69de29..0000000
diff --git a/milfs/addon/marcador/marcador.php b/milfs/addon/marcador/marcador.php
deleted file mode 100644
index 8c89598..0000000
--- a/milfs/addon/marcador/marcador.php
+++ /dev/null
@@ -1,412 +0,0 @@
-
-
- ";
-}
-
-$imagen = "$imagen
";
-
-
-
-
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/addon/tuitealo/funciones/funciones.php b/milfs/addon/tuitealo/funciones/funciones.php
deleted file mode 100644
index 677788e..0000000
--- a/milfs/addon/tuitealo/funciones/funciones.php
+++ /dev/null
@@ -1,108 +0,0 @@
-$nombre[0]
-
$descripcion[0]
-
- $formulario
-
-
-
-
-
-
-
-
-
-
- ";
- return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
- $sujeto = $form[1301][0];
- $accion = $form[1302][0];
- $verbo = $form[1303][0];
- $tiempo = $form[1305][0];
- $ht = $form[1306][0];
- $mensaje = $form[1307][0];
- $arroba = $form[1301][0];
- if( $accion =="" or $verbo =="" or $tiempo =="" or $ht =="" or $arroba =="" ) {
- $error ="
Hay campos vacíos";
- $respuesta->addAssign("tuitealo_error","innerHTML","$error");
- return $respuesta;
-
- }
- $arroba = remplacetas('form_datos','control',"$arroba",'contenido',"id_campo = '77'") ;
- $arroba = $arroba[0];
- $url_propia = urlencode("https://patos.redpatodos.co");
- $texto="$sujeto $accion $verbo $tiempo $ht $mensaje cc $arroba ";
- $texto = ucfirst($texto);
- $texto_url=urlencode($texto);
- $largo = strlen($texto.$url_propia);
- if($largo > 140) { $alert ="danger"; $mensaje ="
El texto es demasiado largo y se recortará";
- $texto = substr($texto, 0, 140)."..."; }
- else{$alert='success'; $mensaje="";}
-
-
-
- $url ="https://twitter.com/share?url=$url_propia&text=$texto_url";
-
- $previsualizar ="
-
-
-
-
-
Previsualizar
-
Tuitéalo
-
- ";
-
-if( $tipo =="previsualizar") {
- $control = md5(rand(1,99999999).microtime());
- $formulario_grabar ="
-
-
-
-
-
- ";
-
- $previsualizar .="$formulario_grabar";
- $respuesta->addAssign("tuitealo_div","innerHTML","$previsualizar");
-
- }else{
- //
Grabar
- //$respuesta->addAssign("xajax_formulario_grabar(xajax.getFormValues('form_tuitealo'));");
- $respuesta->addScript("window.location.href ='$url';");
-
- }
-
- return $respuesta;
-}
-
-$xajax->registerFunction("tuitealo");
-
-?>
diff --git a/milfs/addon/tuitealo/index.php b/milfs/addon/tuitealo/index.php
deleted file mode 100644
index e69de29..0000000
diff --git a/milfs/addon/tuitealo/tuitealo.php b/milfs/addon/tuitealo/tuitealo.php
deleted file mode 100644
index 0ee353f..0000000
--- a/milfs/addon/tuitealo/tuitealo.php
+++ /dev/null
@@ -1,66 +0,0 @@
-processRequests();
-$logo = remplacetas('empresa','id','1','imagen') ;
-$direccion = remplacetas('empresa','id','1','direccion') ;
-$telefono = remplacetas('empresa','id','1','telefono') ;
-$email = remplacetas('empresa','id','1','email') ;
-
-
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("milfs/xajax/");
-
-
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/api.php b/milfs/api.php
deleted file mode 100644
index 066d9e2..0000000
--- a/milfs/api.php
+++ /dev/null
@@ -1,23 +0,0 @@
-
diff --git a/milfs/archivos/index.php b/milfs/archivos/index.php
deleted file mode 100644
index 5b06282..0000000
--- a/milfs/archivos/index.php
+++ /dev/null
@@ -1,96 +0,0 @@
-=0){
- mysqli_data_seek($res,$row);
- $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res);
- if (isset($resrow[$col])){
- return $resrow[$col];
- }
- }
- return false;
-}
- $control = remplacetas('form_datos','contenido',"$archivo",'control',"") ;
- $privacidad = remplacetas('form_id','id',"$control[5]",'publico',"") ;
-
- //if($privacidad[0] == 0 AND ($_SESSION['id'] != $control[6] OR $_SESSION['id_empresa'] != $control[7]) or $_SESSION['equipo'] != $control[8] ) {
- if($privacidad[0] == 0 AND ($_SESSION['id'] != $control[6] OR $_SESSION['id_empresa'] != $control[7] or $_SESSION['equipo'] != $control[8] )) {
- header("Location: ../images/seguridad.gif");
- //echo "if($privacidad[0] == 0 AND ($_SESSION[id] != $control[6] OR $_SESSION[id_empresa] != $control[7] or $_SESSION[equipo] != $control[8])";
- exit();
- }
- //else{ echo "$privacidad[2]"; exit();}
-$dir="$path_images_secure/full/";
-if ((!$file=realpath($dir.$_GET['archivo']))
- || strpos($file,realpath($dir))!==0 || substr($file,-4)=='.php'){
- //header('HTTP/1.0 404 Not Found');
- header("Location: ../images/sinimagen.jpg");
- exit();
-}
-$ref=$_SERVER['HTTP_REFERER'];
-if (strpos($ref,'https://')===0 || strpos($ref,'https')!==0){
- /* $mime=array(
- 'jpg'=>'image/jpeg',
- 'png'=>'image/png',
- 'mid'=>'audio/x-midi',
- 'wav'=>'audio/x-wav'
- );
- if($mime[substr($file,-3)] =='') {
- header('Location: ../pixel.png');
-
- exit();
- }*/
- $stat=stat($file);
- header('Content-Type: '.$mime[substr($file,-3)]);
- header('Content-Length: '.$stat[7]);
- header('Last-Modified: '.gmdate('D, d M Y H:i:s',$stat[9]).' GMT');
- readfile($file);
- exit();
-}
-header('Pragma: no-cache');
-header('Cache-Control: no-cache, no-store, must-revalidate');
-include($file.'.php');
-?>
diff --git a/milfs/c3p.php b/milfs/c3p.php
deleted file mode 100644
index df1edf2..0000000
--- a/milfs/c3p.php
+++ /dev/null
@@ -1,103 +0,0 @@
-processRequests();
-
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/copia de index.php b/milfs/copia de index.php
deleted file mode 100644
index 4a3f91e..0000000
--- a/milfs/copia de index.php
+++ /dev/null
@@ -1,196 +0,0 @@
-processRequests();
-//$xajax->debugOn();
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
I<3MILFS
-
-
-
-
-
-
-
-
-
-
-
-
- xajax_formulario_modal('$_REQUEST[id]','','$_REQUEST[c]','$_REQUEST[t]')";}
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
- echo "
";
- */
-
-
-
-
-
-
-
-/*formulario_consultar('','');
-if($_REQUEST[id] !=''){$onload ="";}
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/copia de map.php b/milfs/copia de map.php
deleted file mode 100644
index 0a57cc4..0000000
--- a/milfs/copia de map.php
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-
-
-
- MILFS
-
-
-
-
-
-
-
-
- MILFS
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/copia de rt.php b/milfs/copia de rt.php
deleted file mode 100644
index 3ddb849..0000000
--- a/milfs/copia de rt.php
+++ /dev/null
@@ -1,152 +0,0 @@
-
-
-
-
-
- MILFS
-
-
-
-
-
-
-
-
- MILFS
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/css/bootstrap-markdown.css b/milfs/css/bootstrap-markdown.css
deleted file mode 100644
index 388b2f5..0000000
--- a/milfs/css/bootstrap-markdown.css
+++ /dev/null
@@ -1 +0,0 @@
-.md-editor{display:block;border:1px solid #ddd}.md-editor .md-footer,.md-editor>.md-header{display:block;padding:6px 4px;background:#f5f5f5}.md-editor>.md-header{margin:0}.md-editor>.md-preview{background:#fff;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd;min-height:10px;overflow:auto}.md-editor>textarea{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:14px;outline:0;margin:0;display:block;padding:0;width:100%;border:0;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd;border-radius:0;box-shadow:none;background:#eee}.md-editor>textarea:focus{box-shadow:none;background:#fff}.md-editor.active{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.md-editor .md-controls{float:right;padding:3px}.md-editor .md-controls .md-control{right:5px;color:#bebebe;padding:3px 3px 3px 10px}.md-editor .md-controls .md-control:hover{color:#333}.md-editor.md-fullscreen-mode{width:100%;height:100%;position:fixed;top:0;left:0;z-index:99999;padding:60px 30px 15px;background:#fff!important;border:0!important}.md-editor.md-fullscreen-mode .md-footer{display:none}.md-editor.md-fullscreen-mode .md-input,.md-editor.md-fullscreen-mode .md-preview{margin:0 auto!important;height:100%!important;font-size:20px!important;padding:20px!important;color:#999;line-height:1.6em!important;resize:none!important;box-shadow:none!important;background:#fff!important;border:0!important}.md-editor.md-fullscreen-mode .md-preview{color:#333;overflow:auto}.md-editor.md-fullscreen-mode .md-input:focus,.md-editor.md-fullscreen-mode .md-input:hover{color:#333;background:#fff!important}.md-editor.md-fullscreen-mode .md-header{background:0 0;text-align:center;position:fixed;width:100%;top:20px}.md-editor.md-fullscreen-mode .btn-group{float:none}.md-editor.md-fullscreen-mode .btn{border:0;background:0 0;color:#b3b3b3}.md-editor.md-fullscreen-mode .btn.active,.md-editor.md-fullscreen-mode .btn:active,.md-editor.md-fullscreen-mode .btn:focus,.md-editor.md-fullscreen-mode .btn:hover{box-shadow:none;color:#333}.md-editor.md-fullscreen-mode .md-fullscreen-controls{position:absolute;top:20px;right:20px;text-align:right;z-index:1002;display:block}.md-editor.md-fullscreen-mode .md-fullscreen-controls a{color:#b3b3b3;clear:right;margin:10px;width:30px;height:30px;text-align:center}.md-editor.md-fullscreen-mode .md-fullscreen-controls a:hover{color:#333;text-decoration:none}.md-editor.md-fullscreen-mode .md-editor{height:100%!important;position:relative}.md-editor .md-fullscreen-controls{display:none}.md-nooverflow{overflow:hidden;position:fixed;width:100%}
\ No newline at end of file
diff --git a/milfs/css/bootstrap-markdown.min.css b/milfs/css/bootstrap-markdown.min.css
deleted file mode 100644
index 388b2f5..0000000
--- a/milfs/css/bootstrap-markdown.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.md-editor{display:block;border:1px solid #ddd}.md-editor .md-footer,.md-editor>.md-header{display:block;padding:6px 4px;background:#f5f5f5}.md-editor>.md-header{margin:0}.md-editor>.md-preview{background:#fff;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd;min-height:10px;overflow:auto}.md-editor>textarea{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:14px;outline:0;margin:0;display:block;padding:0;width:100%;border:0;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd;border-radius:0;box-shadow:none;background:#eee}.md-editor>textarea:focus{box-shadow:none;background:#fff}.md-editor.active{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.md-editor .md-controls{float:right;padding:3px}.md-editor .md-controls .md-control{right:5px;color:#bebebe;padding:3px 3px 3px 10px}.md-editor .md-controls .md-control:hover{color:#333}.md-editor.md-fullscreen-mode{width:100%;height:100%;position:fixed;top:0;left:0;z-index:99999;padding:60px 30px 15px;background:#fff!important;border:0!important}.md-editor.md-fullscreen-mode .md-footer{display:none}.md-editor.md-fullscreen-mode .md-input,.md-editor.md-fullscreen-mode .md-preview{margin:0 auto!important;height:100%!important;font-size:20px!important;padding:20px!important;color:#999;line-height:1.6em!important;resize:none!important;box-shadow:none!important;background:#fff!important;border:0!important}.md-editor.md-fullscreen-mode .md-preview{color:#333;overflow:auto}.md-editor.md-fullscreen-mode .md-input:focus,.md-editor.md-fullscreen-mode .md-input:hover{color:#333;background:#fff!important}.md-editor.md-fullscreen-mode .md-header{background:0 0;text-align:center;position:fixed;width:100%;top:20px}.md-editor.md-fullscreen-mode .btn-group{float:none}.md-editor.md-fullscreen-mode .btn{border:0;background:0 0;color:#b3b3b3}.md-editor.md-fullscreen-mode .btn.active,.md-editor.md-fullscreen-mode .btn:active,.md-editor.md-fullscreen-mode .btn:focus,.md-editor.md-fullscreen-mode .btn:hover{box-shadow:none;color:#333}.md-editor.md-fullscreen-mode .md-fullscreen-controls{position:absolute;top:20px;right:20px;text-align:right;z-index:1002;display:block}.md-editor.md-fullscreen-mode .md-fullscreen-controls a{color:#b3b3b3;clear:right;margin:10px;width:30px;height:30px;text-align:center}.md-editor.md-fullscreen-mode .md-fullscreen-controls a:hover{color:#333;text-decoration:none}.md-editor.md-fullscreen-mode .md-editor{height:100%!important;position:relative}.md-editor .md-fullscreen-controls{display:none}.md-nooverflow{overflow:hidden;position:fixed;width:100%}
\ No newline at end of file
diff --git a/milfs/css/bootstrap-theme.css b/milfs/css/bootstrap-theme.css
deleted file mode 100644
index a406992..0000000
--- a/milfs/css/bootstrap-theme.css
+++ /dev/null
@@ -1,347 +0,0 @@
-/*!
- * Bootstrap v3.1.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-.btn-default,
-.btn-primary,
-.btn-success,
-.btn-info,
-.btn-warning,
-.btn-danger {
- text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
-}
-.btn-default:active,
-.btn-primary:active,
-.btn-success:active,
-.btn-info:active,
-.btn-warning:active,
-.btn-danger:active,
-.btn-default.active,
-.btn-primary.active,
-.btn-success.active,
-.btn-info.active,
-.btn-warning.active,
-.btn-danger.active {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
-}
-.btn:active,
-.btn.active {
- background-image: none;
-}
-.btn-default {
- text-shadow: 0 1px 0 #fff;
- background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
- background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #dbdbdb;
- border-color: #ccc;
-}
-.btn-default:hover,
-.btn-default:focus {
- background-color: #e0e0e0;
- background-position: 0 -15px;
-}
-.btn-default:active,
-.btn-default.active {
- background-color: #e0e0e0;
- border-color: #dbdbdb;
-}
-.btn-primary {
- background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #2b669a;
-}
-.btn-primary:hover,
-.btn-primary:focus {
- background-color: #2d6ca2;
- background-position: 0 -15px;
-}
-.btn-primary:active,
-.btn-primary.active {
- background-color: #2d6ca2;
- border-color: #2b669a;
-}
-.btn-success {
- background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
- background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #3e8f3e;
-}
-.btn-success:hover,
-.btn-success:focus {
- background-color: #419641;
- background-position: 0 -15px;
-}
-.btn-success:active,
-.btn-success.active {
- background-color: #419641;
- border-color: #3e8f3e;
-}
-.btn-info {
- background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
- background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #28a4c9;
-}
-.btn-info:hover,
-.btn-info:focus {
- background-color: #2aabd2;
- background-position: 0 -15px;
-}
-.btn-info:active,
-.btn-info.active {
- background-color: #2aabd2;
- border-color: #28a4c9;
-}
-.btn-warning {
- background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
- background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #e38d13;
-}
-.btn-warning:hover,
-.btn-warning:focus {
- background-color: #eb9316;
- background-position: 0 -15px;
-}
-.btn-warning:active,
-.btn-warning.active {
- background-color: #eb9316;
- border-color: #e38d13;
-}
-.btn-danger {
- background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
- background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-color: #b92c28;
-}
-.btn-danger:hover,
-.btn-danger:focus {
- background-color: #c12e2a;
- background-position: 0 -15px;
-}
-.btn-danger:active,
-.btn-danger.active {
- background-color: #c12e2a;
- border-color: #b92c28;
-}
-.thumbnail,
-.img-thumbnail {
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
-}
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
- background-color: #e8e8e8;
- background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
- background-repeat: repeat-x;
-}
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
- background-color: #357ebd;
- background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
- background-repeat: repeat-x;
-}
-.navbar-default {
- background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
- background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
-}
-.navbar-default .navbar-nav > .active > a {
- background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
- background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
- background-repeat: repeat-x;
- -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
- box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
-}
-.navbar-brand,
-.navbar-nav > li > a {
- text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
-}
-.navbar-inverse {
- background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
- background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
- background-repeat: repeat-x;
-}
-.navbar-inverse .navbar-nav > .active > a {
- background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
- background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
- background-repeat: repeat-x;
- -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
- box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
-}
-.navbar-inverse .navbar-brand,
-.navbar-inverse .navbar-nav > li > a {
- text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
-}
-.navbar-static-top,
-.navbar-fixed-top,
-.navbar-fixed-bottom {
- border-radius: 0;
-}
-.alert {
- text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
-}
-.alert-success {
- background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
- background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
- background-repeat: repeat-x;
- border-color: #b2dba1;
-}
-.alert-info {
- background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
- background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
- background-repeat: repeat-x;
- border-color: #9acfea;
-}
-.alert-warning {
- background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
- background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
- background-repeat: repeat-x;
- border-color: #f5e79e;
-}
-.alert-danger {
- background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
- background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
- background-repeat: repeat-x;
- border-color: #dca7a7;
-}
-.progress {
- background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
- background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar {
- background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-success {
- background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
- background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-info {
- background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
- background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-warning {
- background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
- background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
- background-repeat: repeat-x;
-}
-.progress-bar-danger {
- background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
- background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
- background-repeat: repeat-x;
-}
-.list-group {
- border-radius: 4px;
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
-}
-.list-group-item.active,
-.list-group-item.active:hover,
-.list-group-item.active:focus {
- text-shadow: 0 -1px 0 #3071a9;
- background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
- background-repeat: repeat-x;
- border-color: #3278b3;
-}
-.panel {
- -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
-}
-.panel-default > .panel-heading {
- background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
- background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-primary > .panel-heading {
- background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
- background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-success > .panel-heading {
- background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
- background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-info > .panel-heading {
- background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
- background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-warning > .panel-heading {
- background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
- background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
- background-repeat: repeat-x;
-}
-.panel-danger > .panel-heading {
- background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
- background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
- background-repeat: repeat-x;
-}
-.well {
- background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
- background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
- background-repeat: repeat-x;
- border-color: #dcdcdc;
- -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
- box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
-}
-/*# sourceMappingURL=bootstrap-theme.css.map */
diff --git a/milfs/css/bootstrap-theme.css.map b/milfs/css/bootstrap-theme.css.map
deleted file mode 100644
index b36fc9a..0000000
--- a/milfs/css/bootstrap-theme.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["less/theme.less","less/mixins.less"],"names":[],"mappings":"AAeA;AACA;AACA;AACA;AACA;AACA;EACE,wCAAA;ECoGA,2FAAA;EACQ,mFAAA;;ADhGR,YAAC;AAAD,YAAC;AAAD,YAAC;AAAD,SAAC;AAAD,YAAC;AAAD,WAAC;AACD,YAAC;AAAD,YAAC;AAAD,YAAC;AAAD,SAAC;AAAD,YAAC;AAAD,WAAC;EC8FD,wDAAA;EACQ,gDAAA;;ADnER,IAAC;AACD,IAAC;EACC,sBAAA;;AAKJ;EC4PI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;EAyB2C,yBAAA;EAA2B,kBAAA;;AAvBtE,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAeJ;EC2PI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAgBJ;EC0PI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAiBJ;ECyPI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,SAAC;AACD,SAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,SAAC;AACD,SAAC;EACC,yBAAA;EACA,qBAAA;;AAkBJ;ECwPI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAmBJ;ECuPI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,WAAC;AACD,WAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,WAAC;AACD,WAAC;EACC,yBAAA;EACA,qBAAA;;AA2BJ;AACA;EC6CE,kDAAA;EACQ,0CAAA;;ADpCV,cAAe,KAAK,IAAG;AACvB,cAAe,KAAK,IAAG;ECmOnB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EDpOF,yBAAA;;AAEF,cAAe,UAAU;AACzB,cAAe,UAAU,IAAG;AAC5B,cAAe,UAAU,IAAG;EC6NxB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED9NF,yBAAA;;AAUF;ECiNI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EAoCF,mEAAA;EDrPA,kBAAA;ECaA,2FAAA;EACQ,mFAAA;;ADjBV,eAOE,YAAY,UAAU;EC0MpB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EApMF,wDAAA;EACQ,gDAAA;;ADLV;AACA,WAAY,KAAK;EACf,8CAAA;;AAIF;EC+LI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EAoCF,mEAAA;;ADtOF,eAIE,YAAY,UAAU;EC2LpB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EApMF,uDAAA;EACQ,+CAAA;;ADCV,eASE;AATF,eAUE,YAAY,KAAK;EACf,yCAAA;;AAKJ;AACA;AACA;EACE,gBAAA;;AAUF;EACE,6CAAA;EChCA,0FAAA;EACQ,kFAAA;;AD2CV;ECqJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAKF;ECoJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAMF;ECmJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAOF;ECkJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAgBF;ECyII,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADlIJ;EC+HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADjIJ;EC8HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADhIJ;EC6HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;AD/HJ;EC4HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;AD9HJ;EC2HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADtHJ;EACE,kBAAA;EC/EA,kDAAA;EACQ,0CAAA;;ADiFV,gBAAgB;AAChB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;EACrB,6BAAA;EC4GE,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED7GF,qBAAA;;AAUF;ECjGE,iDAAA;EACQ,yCAAA;;AD0GV,cAAe;ECsFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADxFJ,cAAe;ECqFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADvFJ,cAAe;ECoFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADtFJ,WAAY;ECmFR,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADrFJ,cAAe;ECkFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADpFJ,aAAc;ECiFV,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;AD5EJ;ECyEI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED1EF,qBAAA;EC1HA,yFAAA;EACQ,iFAAA","sourcesContent":["\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-bg, 5%); @end-color: darken(@navbar-default-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-bg; @end-color: lighten(@navbar-inverse-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n}\n\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","//\n// Mixins\n// --------------------------------------------------\n\n\n// Utilities\n// -------------------------\n\n// Clearfix\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n\n// WebKit-style focus\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n\n// Center-align a block level element\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n// Sizing shortcuts\n.size(@width; @height) {\n width: @width;\n height: @height;\n}\n.square(@size) {\n .size(@size; @size);\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n &::-moz-placeholder { color: @color; // Firefox\n opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Text overflow\n// Requires inline-block or block for proper styling\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n// CSS image replacement\n//\n// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. Note\n// that we cannot chain the mixins together in Less, so they are repeated.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (will be removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n\n\n\n// CSS3 PROPERTIES\n// --------------------------------------------------\n\n// Single side border-radius\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support the\n// standard `box-shadow` property.\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Transitions\n.transition(@transition) {\n -webkit-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n// Transformations\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n transform: rotate(@degrees);\n}\n.scale(@ratio; @ratio-y...) {\n -webkit-transform: scale(@ratio, @ratio-y);\n -ms-transform: scale(@ratio, @ratio-y); // IE9 only\n transform: scale(@ratio, @ratio-y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n transform: translate(@x, @y);\n}\n.skew(@x; @y) {\n -webkit-transform: skew(@x, @y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n transform: skew(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// User select\n// For selecting text on the page\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n\n// Resize anything\n.resizable(@direction) {\n resize: @direction; // Options: horizontal, vertical, both\n overflow: auto; // Safari fix\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Opacity\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n\n\n\n// GRADIENTS\n// --------------------------------------------------\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n\n// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n\n\n\n// Retina images\n//\n// Short retina mixin for setting background-image and -size\n\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// COMPONENT MIXINS\n// --------------------------------------------------\n\n// Horizontal dividers\n// -------------------------\n// Dividers (basically an hr) within dropdowns and nav lists\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n\n// Panels\n// -------------------------\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse .panel-body {\n border-top-color: @border;\n }\n }\n & > .panel-footer {\n + .panel-collapse .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n\n// Alerts\n// -------------------------\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n\n// Tables\n// -------------------------\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n\n// List Groups\n// -------------------------\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a& {\n color: @color;\n\n .list-group-item-heading { color: inherit; }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n\n// Button variants\n// -------------------------\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 8%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n// -------------------------\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n\n// Pagination\n// -------------------------\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n\n// Labels\n// -------------------------\n.label-variant(@color) {\n background-color: @color;\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n\n// Contextual backgrounds\n// -------------------------\n.bg-variant(@color) {\n background-color: @color;\n a&:hover {\n background-color: darken(@color, 10%);\n }\n}\n\n// Typography\n// -------------------------\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover {\n color: darken(@color, 10%);\n }\n}\n\n// Navbar vertical align\n// -------------------------\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n\n// Progress bars\n// -------------------------\n.progress-bar-variant(@color) {\n background-color: @color;\n .progress-striped & {\n #gradient > .striped();\n }\n}\n\n// Responsive utilities\n// -------------------------\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n\n\n// Grid System\n// -----------\n\n// Centered container element\n.container-fixed() {\n margin-right: auto;\n margin-left: auto;\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: (@gutter / -2);\n margin-right: (@gutter / -2);\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n @media (min-width: @screen-xs-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-xs-column-push(@columns) {\n @media (min-width: @screen-xs-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-xs-column-pull(@columns) {\n @media (min-width: @screen-xs-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) when (@index = 1) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) when (@index = 1) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n\n// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n border-color: @border-color;\n background-color: @background-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-focus-border` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. ``\n// element gets special love because it's special, and that's a fact!\n\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n"]}
\ No newline at end of file
diff --git a/milfs/css/bootstrap-theme.min.css b/milfs/css/bootstrap-theme.min.css
deleted file mode 100644
index ba4bd28..0000000
--- a/milfs/css/bootstrap-theme.min.css
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Bootstrap v3.1.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
\ No newline at end of file
diff --git a/milfs/css/bootstrap.css b/milfs/css/bootstrap.css
deleted file mode 100644
index 7f36651..0000000
--- a/milfs/css/bootstrap.css
+++ /dev/null
@@ -1,5785 +0,0 @@
-/*!
- * Bootstrap v3.1.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
-html {
- font-family: sans-serif;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
-}
-body {
- margin: 0;
-}
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-nav,
-section,
-summary {
- display: block;
-}
-audio,
-canvas,
-progress,
-video {
- display: inline-block;
- vertical-align: baseline;
-}
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-[hidden],
-template {
- display: none;
-}
-a {
- background: transparent;
-}
-a:active,
-a:hover {
- outline: 0;
-}
-abbr[title] {
- border-bottom: 1px dotted;
-}
-b,
-strong {
- font-weight: bold;
-}
-dfn {
- font-style: italic;
-}
-h1 {
- margin: .67em 0;
- font-size: 2em;
-}
-mark {
- color: #000;
- background: #ff0;
-}
-small {
- font-size: 80%;
-}
-sub,
-sup {
- position: relative;
- font-size: 75%;
- line-height: 0;
- vertical-align: baseline;
-}
-sup {
- top: -.5em;
-}
-sub {
- bottom: -.25em;
-}
-img {
- border: 0;
-}
-svg:not(:root) {
- overflow: hidden;
-}
-figure {
- margin: 1em 40px;
-}
-hr {
- height: 0;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
-}
-pre {
- overflow: auto;
-}
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-button,
-input,
-optgroup,
-select,
-textarea {
- margin: 0;
- font: inherit;
- color: inherit;
-}
-button {
- overflow: visible;
-}
-button,
-select {
- text-transform: none;
-}
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button;
- cursor: pointer;
-}
-button[disabled],
-html input[disabled] {
- cursor: default;
-}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- padding: 0;
- border: 0;
-}
-input {
- line-height: normal;
-}
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box;
- padding: 0;
-}
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-input[type="search"] {
- -webkit-box-sizing: content-box;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- -webkit-appearance: textfield;
-}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-fieldset {
- padding: .35em .625em .75em;
- margin: 0 2px;
- border: 1px solid #c0c0c0;
-}
-legend {
- padding: 0;
- border: 0;
-}
-textarea {
- overflow: auto;
-}
-optgroup {
- font-weight: bold;
-}
-table {
- border-spacing: 0;
- border-collapse: collapse;
-}
-td,
-th {
- padding: 0;
-}
-@media print {
- * {
- color: #000 !important;
- text-shadow: none !important;
- background: transparent !important;
- box-shadow: none !important;
- }
- a,
- a:visited {
- text-decoration: underline;
- }
- a[href]:after {
- content: " (" attr(href) ")";
- }
- abbr[title]:after {
- content: " (" attr(title) ")";
- }
- a[href^="javascript:"]:after,
- a[href^="#"]:after {
- content: "";
- }
- pre,
- blockquote {
- border: 1px solid #999;
-
- page-break-inside: avoid;
- }
- thead {
- display: table-header-group;
- }
- tr,
- img {
- page-break-inside: avoid;
- }
- img {
- max-width: 100% !important;
- }
- p,
- h2,
- h3 {
- orphans: 3;
- widows: 3;
- }
- h2,
- h3 {
- page-break-after: avoid;
- }
- select {
- background: #fff !important;
- }
- .navbar {
- display: none;
- }
- .table td,
- .table th {
- background-color: #fff !important;
- }
- .btn > .caret,
- .dropup > .btn > .caret {
- border-top-color: #000 !important;
- }
- .label {
- border: 1px solid #000;
- }
- .table {
- border-collapse: collapse !important;
- }
- .table-bordered th,
- .table-bordered td {
- border: 1px solid #ddd !important;
- }
-}
-* {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-*:before,
-*:after {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-html {
- font-size: 62.5%;
-
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-body {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
- font-size: 14px;
- line-height: 1.42857143;
- color: #333;
- background-color: #fff;
-}
-input,
-button,
-select,
-textarea {
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
-}
-a {
- color: #428bca;
- text-decoration: none;
-}
-a:hover,
-a:focus {
- color: #2a6496;
- text-decoration: underline;
-}
-a:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-figure {
- margin: 0;
-}
-img {
- vertical-align: middle;
-}
-.img-responsive,
-.thumbnail > img,
-.thumbnail a > img,
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
- display: block;
- max-width: 100%;
- height: auto;
-}
-.img-rounded {
- border-radius: 6px;
-}
-.img-thumbnail {
- display: inline-block;
- max-width: 100%;
- height: auto;
- padding: 4px;
- line-height: 1.42857143;
- background-color: #fff;
- border: 1px solid #ddd;
- border-radius: 4px;
- -webkit-transition: all .2s ease-in-out;
- transition: all .2s ease-in-out;
-}
-.img-circle {
- border-radius: 50%;
-}
-hr {
- margin-top: 20px;
- margin-bottom: 20px;
- border: 0;
- border-top: 1px solid #eee;
-}
-.sr-only {
- position: absolute;
- width: 1px;
- height: 1px;
- padding: 0;
- margin: -1px;
- overflow: hidden;
- clip: rect(0, 0, 0, 0);
- border: 0;
-}
-h1,
-h2,
-h3,
-h4,
-h5,
-h6,
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6 {
- font-family: inherit;
- font-weight: 500;
- line-height: 1.1;
- color: inherit;
-}
-h1 small,
-h2 small,
-h3 small,
-h4 small,
-h5 small,
-h6 small,
-.h1 small,
-.h2 small,
-.h3 small,
-.h4 small,
-.h5 small,
-.h6 small,
-h1 .small,
-h2 .small,
-h3 .small,
-h4 .small,
-h5 .small,
-h6 .small,
-.h1 .small,
-.h2 .small,
-.h3 .small,
-.h4 .small,
-.h5 .small,
-.h6 .small {
- font-weight: normal;
- line-height: 1;
- color: #999;
-}
-h1,
-.h1,
-h2,
-.h2,
-h3,
-.h3 {
- margin-top: 20px;
- margin-bottom: 10px;
-}
-h1 small,
-.h1 small,
-h2 small,
-.h2 small,
-h3 small,
-.h3 small,
-h1 .small,
-.h1 .small,
-h2 .small,
-.h2 .small,
-h3 .small,
-.h3 .small {
- font-size: 65%;
-}
-h4,
-.h4,
-h5,
-.h5,
-h6,
-.h6 {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-h4 small,
-.h4 small,
-h5 small,
-.h5 small,
-h6 small,
-.h6 small,
-h4 .small,
-.h4 .small,
-h5 .small,
-.h5 .small,
-h6 .small,
-.h6 .small {
- font-size: 75%;
-}
-h1,
-.h1 {
- font-size: 36px;
-}
-h2,
-.h2 {
- font-size: 30px;
-}
-h3,
-.h3 {
- font-size: 24px;
-}
-h4,
-.h4 {
- font-size: 18px;
-}
-h5,
-.h5 {
- font-size: 14px;
-}
-h6,
-.h6 {
- font-size: 12px;
-}
-p {
- margin: 0 0 10px;
-}
-.lead {
- margin-bottom: 20px;
- font-size: 16px;
- font-weight: 200;
- line-height: 1.4;
-}
-@media (min-width: 768px) {
- .lead {
- font-size: 21px;
- }
-}
-small,
-.small {
- font-size: 85%;
-}
-cite {
- font-style: normal;
-}
-.text-left {
- text-align: left;
-}
-.text-right {
- text-align: right;
-}
-.text-center {
- text-align: center;
-}
-.text-justify {
- text-align: justify;
-}
-.text-muted {
- color: #999;
-}
-.text-primary {
- color: #428bca;
-}
-a.text-primary:hover {
- color: #3071a9;
-}
-.text-success {
- color: #3c763d;
-}
-a.text-success:hover {
- color: #2b542c;
-}
-.text-info {
- color: #31708f;
-}
-a.text-info:hover {
- color: #245269;
-}
-.text-warning {
- color: #8a6d3b;
-}
-a.text-warning:hover {
- color: #66512c;
-}
-.text-danger {
- color: #a94442;
-}
-a.text-danger:hover {
- color: #843534;
-}
-.bg-primary {
- color: #fff;
- background-color: #428bca;
-}
-a.bg-primary:hover {
- background-color: #3071a9;
-}
-.bg-success {
- background-color: #dff0d8;
-}
-a.bg-success:hover {
- background-color: #c1e2b3;
-}
-.bg-info {
- background-color: #d9edf7;
-}
-a.bg-info:hover {
- background-color: #afd9ee;
-}
-.bg-warning {
- background-color: #fcf8e3;
-}
-a.bg-warning:hover {
- background-color: #f7ecb5;
-}
-.bg-danger {
- background-color: #f2dede;
-}
-a.bg-danger:hover {
- background-color: #e4b9b9;
-}
-.page-header {
- padding-bottom: 9px;
- margin: 40px 0 20px;
- border-bottom: 1px solid #eee;
-}
-ul,
-ol {
- margin-top: 0;
- margin-bottom: 10px;
-}
-ul ul,
-ol ul,
-ul ol,
-ol ol {
- margin-bottom: 0;
-}
-.list-unstyled {
- padding-left: 0;
- list-style: none;
-}
-.list-inline {
- padding-left: 0;
- margin-left: -5px;
- list-style: none;
-}
-.list-inline > li {
- display: inline-block;
- padding-right: 5px;
- padding-left: 5px;
-}
-dl {
- margin-top: 0;
- margin-bottom: 20px;
-}
-dt,
-dd {
- line-height: 1.42857143;
-}
-dt {
- font-weight: bold;
-}
-dd {
- margin-left: 0;
-}
-@media (min-width: 768px) {
- .dl-horizontal dt {
- float: left;
- width: 160px;
- overflow: hidden;
- clear: left;
- text-align: right;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- .dl-horizontal dd {
- margin-left: 180px;
- }
-}
-abbr[title],
-abbr[data-original-title] {
- cursor: help;
- border-bottom: 1px dotted #999;
-}
-.initialism {
- font-size: 90%;
- text-transform: uppercase;
-}
-blockquote {
- padding: 10px 20px;
- margin: 0 0 20px;
- font-size: 17.5px;
- border-left: 5px solid #eee;
-}
-blockquote p:last-child,
-blockquote ul:last-child,
-blockquote ol:last-child {
- margin-bottom: 0;
-}
-blockquote footer,
-blockquote small,
-blockquote .small {
- display: block;
- font-size: 80%;
- line-height: 1.42857143;
- color: #999;
-}
-blockquote footer:before,
-blockquote small:before,
-blockquote .small:before {
- content: '\2014 \00A0';
-}
-.blockquote-reverse,
-blockquote.pull-right {
- padding-right: 15px;
- padding-left: 0;
- text-align: right;
- border-right: 5px solid #eee;
- border-left: 0;
-}
-.blockquote-reverse footer:before,
-blockquote.pull-right footer:before,
-.blockquote-reverse small:before,
-blockquote.pull-right small:before,
-.blockquote-reverse .small:before,
-blockquote.pull-right .small:before {
- content: '';
-}
-.blockquote-reverse footer:after,
-blockquote.pull-right footer:after,
-.blockquote-reverse small:after,
-blockquote.pull-right small:after,
-.blockquote-reverse .small:after,
-blockquote.pull-right .small:after {
- content: '\00A0 \2014';
-}
-blockquote:before,
-blockquote:after {
- content: "";
-}
-address {
- margin-bottom: 20px;
- font-style: normal;
- line-height: 1.42857143;
-}
-code,
-kbd,
-pre,
-samp {
- font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
-}
-code {
- padding: 2px 4px;
- font-size: 90%;
- color: #c7254e;
- white-space: nowrap;
- background-color: #f9f2f4;
- border-radius: 4px;
-}
-kbd {
- padding: 2px 4px;
- font-size: 90%;
- color: #fff;
- background-color: #333;
- border-radius: 3px;
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
-}
-pre {
- display: block;
- padding: 9.5px;
- margin: 0 0 10px;
- font-size: 13px;
- line-height: 1.42857143;
- color: #333;
- word-break: break-all;
- word-wrap: break-word;
- background-color: #f5f5f5;
- border: 1px solid #ccc;
- border-radius: 4px;
-}
-pre code {
- padding: 0;
- font-size: inherit;
- color: inherit;
- white-space: pre-wrap;
- background-color: transparent;
- border-radius: 0;
-}
-.pre-scrollable {
- max-height: 340px;
- overflow-y: scroll;
-}
-.container {
- padding-right: 15px;
- padding-left: 15px;
- margin-right: auto;
- margin-left: auto;
-}
-@media (min-width: 768px) {
- .container {
- width: 750px;
- }
-}
-@media (min-width: 992px) {
- .container {
- width: 970px;
- }
-}
-@media (min-width: 1200px) {
- .container {
- width: 1170px;
- }
-}
-.container-fluid {
- padding-right: 15px;
- padding-left: 15px;
- margin-right: auto;
- margin-left: auto;
-}
-.row {
- margin-right: -15px;
- margin-left: -15px;
-}
-.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
- position: relative;
- min-height: 1px;
- padding-right: 15px;
- padding-left: 15px;
-}
-.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
- float: left;
-}
-.col-xs-12 {
- width: 100%;
-}
-.col-xs-11 {
- width: 91.66666667%;
-}
-.col-xs-10 {
- width: 83.33333333%;
-}
-.col-xs-9 {
- width: 75%;
-}
-.col-xs-8 {
- width: 66.66666667%;
-}
-.col-xs-7 {
- width: 58.33333333%;
-}
-.col-xs-6 {
- width: 50%;
-}
-.col-xs-5 {
- width: 41.66666667%;
-}
-.col-xs-4 {
- width: 33.33333333%;
-}
-.col-xs-3 {
- width: 25%;
-}
-.col-xs-2 {
- width: 16.66666667%;
-}
-.col-xs-1 {
- width: 8.33333333%;
-}
-.col-xs-pull-12 {
- right: 100%;
-}
-.col-xs-pull-11 {
- right: 91.66666667%;
-}
-.col-xs-pull-10 {
- right: 83.33333333%;
-}
-.col-xs-pull-9 {
- right: 75%;
-}
-.col-xs-pull-8 {
- right: 66.66666667%;
-}
-.col-xs-pull-7 {
- right: 58.33333333%;
-}
-.col-xs-pull-6 {
- right: 50%;
-}
-.col-xs-pull-5 {
- right: 41.66666667%;
-}
-.col-xs-pull-4 {
- right: 33.33333333%;
-}
-.col-xs-pull-3 {
- right: 25%;
-}
-.col-xs-pull-2 {
- right: 16.66666667%;
-}
-.col-xs-pull-1 {
- right: 8.33333333%;
-}
-.col-xs-pull-0 {
- right: 0;
-}
-.col-xs-push-12 {
- left: 100%;
-}
-.col-xs-push-11 {
- left: 91.66666667%;
-}
-.col-xs-push-10 {
- left: 83.33333333%;
-}
-.col-xs-push-9 {
- left: 75%;
-}
-.col-xs-push-8 {
- left: 66.66666667%;
-}
-.col-xs-push-7 {
- left: 58.33333333%;
-}
-.col-xs-push-6 {
- left: 50%;
-}
-.col-xs-push-5 {
- left: 41.66666667%;
-}
-.col-xs-push-4 {
- left: 33.33333333%;
-}
-.col-xs-push-3 {
- left: 25%;
-}
-.col-xs-push-2 {
- left: 16.66666667%;
-}
-.col-xs-push-1 {
- left: 8.33333333%;
-}
-.col-xs-push-0 {
- left: 0;
-}
-.col-xs-offset-12 {
- margin-left: 100%;
-}
-.col-xs-offset-11 {
- margin-left: 91.66666667%;
-}
-.col-xs-offset-10 {
- margin-left: 83.33333333%;
-}
-.col-xs-offset-9 {
- margin-left: 75%;
-}
-.col-xs-offset-8 {
- margin-left: 66.66666667%;
-}
-.col-xs-offset-7 {
- margin-left: 58.33333333%;
-}
-.col-xs-offset-6 {
- margin-left: 50%;
-}
-.col-xs-offset-5 {
- margin-left: 41.66666667%;
-}
-.col-xs-offset-4 {
- margin-left: 33.33333333%;
-}
-.col-xs-offset-3 {
- margin-left: 25%;
-}
-.col-xs-offset-2 {
- margin-left: 16.66666667%;
-}
-.col-xs-offset-1 {
- margin-left: 8.33333333%;
-}
-.col-xs-offset-0 {
- margin-left: 0;
-}
-@media (min-width: 768px) {
- .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
- float: left;
- }
- .col-sm-12 {
- width: 100%;
- }
- .col-sm-11 {
- width: 91.66666667%;
- }
- .col-sm-10 {
- width: 83.33333333%;
- }
- .col-sm-9 {
- width: 75%;
- }
- .col-sm-8 {
- width: 66.66666667%;
- }
- .col-sm-7 {
- width: 58.33333333%;
- }
- .col-sm-6 {
- width: 50%;
- }
- .col-sm-5 {
- width: 41.66666667%;
- }
- .col-sm-4 {
- width: 33.33333333%;
- }
- .col-sm-3 {
- width: 25%;
- }
- .col-sm-2 {
- width: 16.66666667%;
- }
- .col-sm-1 {
- width: 8.33333333%;
- }
- .col-sm-pull-12 {
- right: 100%;
- }
- .col-sm-pull-11 {
- right: 91.66666667%;
- }
- .col-sm-pull-10 {
- right: 83.33333333%;
- }
- .col-sm-pull-9 {
- right: 75%;
- }
- .col-sm-pull-8 {
- right: 66.66666667%;
- }
- .col-sm-pull-7 {
- right: 58.33333333%;
- }
- .col-sm-pull-6 {
- right: 50%;
- }
- .col-sm-pull-5 {
- right: 41.66666667%;
- }
- .col-sm-pull-4 {
- right: 33.33333333%;
- }
- .col-sm-pull-3 {
- right: 25%;
- }
- .col-sm-pull-2 {
- right: 16.66666667%;
- }
- .col-sm-pull-1 {
- right: 8.33333333%;
- }
- .col-sm-pull-0 {
- right: 0;
- }
- .col-sm-push-12 {
- left: 100%;
- }
- .col-sm-push-11 {
- left: 91.66666667%;
- }
- .col-sm-push-10 {
- left: 83.33333333%;
- }
- .col-sm-push-9 {
- left: 75%;
- }
- .col-sm-push-8 {
- left: 66.66666667%;
- }
- .col-sm-push-7 {
- left: 58.33333333%;
- }
- .col-sm-push-6 {
- left: 50%;
- }
- .col-sm-push-5 {
- left: 41.66666667%;
- }
- .col-sm-push-4 {
- left: 33.33333333%;
- }
- .col-sm-push-3 {
- left: 25%;
- }
- .col-sm-push-2 {
- left: 16.66666667%;
- }
- .col-sm-push-1 {
- left: 8.33333333%;
- }
- .col-sm-push-0 {
- left: 0;
- }
- .col-sm-offset-12 {
- margin-left: 100%;
- }
- .col-sm-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-sm-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-sm-offset-9 {
- margin-left: 75%;
- }
- .col-sm-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-sm-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-sm-offset-6 {
- margin-left: 50%;
- }
- .col-sm-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-sm-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-sm-offset-3 {
- margin-left: 25%;
- }
- .col-sm-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-sm-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-sm-offset-0 {
- margin-left: 0;
- }
-}
-@media (min-width: 992px) {
- .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
- float: left;
- }
- .col-md-12 {
- width: 100%;
- }
- .col-md-11 {
- width: 91.66666667%;
- }
- .col-md-10 {
- width: 83.33333333%;
- }
- .col-md-9 {
- width: 75%;
- }
- .col-md-8 {
- width: 66.66666667%;
- }
- .col-md-7 {
- width: 58.33333333%;
- }
- .col-md-6 {
- width: 50%;
- }
- .col-md-5 {
- width: 41.66666667%;
- }
- .col-md-4 {
- width: 33.33333333%;
- }
- .col-md-3 {
- width: 25%;
- }
- .col-md-2 {
- width: 16.66666667%;
- }
- .col-md-1 {
- width: 8.33333333%;
- }
- .col-md-pull-12 {
- right: 100%;
- }
- .col-md-pull-11 {
- right: 91.66666667%;
- }
- .col-md-pull-10 {
- right: 83.33333333%;
- }
- .col-md-pull-9 {
- right: 75%;
- }
- .col-md-pull-8 {
- right: 66.66666667%;
- }
- .col-md-pull-7 {
- right: 58.33333333%;
- }
- .col-md-pull-6 {
- right: 50%;
- }
- .col-md-pull-5 {
- right: 41.66666667%;
- }
- .col-md-pull-4 {
- right: 33.33333333%;
- }
- .col-md-pull-3 {
- right: 25%;
- }
- .col-md-pull-2 {
- right: 16.66666667%;
- }
- .col-md-pull-1 {
- right: 8.33333333%;
- }
- .col-md-pull-0 {
- right: 0;
- }
- .col-md-push-12 {
- left: 100%;
- }
- .col-md-push-11 {
- left: 91.66666667%;
- }
- .col-md-push-10 {
- left: 83.33333333%;
- }
- .col-md-push-9 {
- left: 75%;
- }
- .col-md-push-8 {
- left: 66.66666667%;
- }
- .col-md-push-7 {
- left: 58.33333333%;
- }
- .col-md-push-6 {
- left: 50%;
- }
- .col-md-push-5 {
- left: 41.66666667%;
- }
- .col-md-push-4 {
- left: 33.33333333%;
- }
- .col-md-push-3 {
- left: 25%;
- }
- .col-md-push-2 {
- left: 16.66666667%;
- }
- .col-md-push-1 {
- left: 8.33333333%;
- }
- .col-md-push-0 {
- left: 0;
- }
- .col-md-offset-12 {
- margin-left: 100%;
- }
- .col-md-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-md-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-md-offset-9 {
- margin-left: 75%;
- }
- .col-md-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-md-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-md-offset-6 {
- margin-left: 50%;
- }
- .col-md-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-md-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-md-offset-3 {
- margin-left: 25%;
- }
- .col-md-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-md-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-md-offset-0 {
- margin-left: 0;
- }
-}
-@media (min-width: 1200px) {
- .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
- float: left;
- }
- .col-lg-12 {
- width: 100%;
- }
- .col-lg-11 {
- width: 91.66666667%;
- }
- .col-lg-10 {
- width: 83.33333333%;
- }
- .col-lg-9 {
- width: 75%;
- }
- .col-lg-8 {
- width: 66.66666667%;
- }
- .col-lg-7 {
- width: 58.33333333%;
- }
- .col-lg-6 {
- width: 50%;
- }
- .col-lg-5 {
- width: 41.66666667%;
- }
- .col-lg-4 {
- width: 33.33333333%;
- }
- .col-lg-3 {
- width: 25%;
- }
- .col-lg-2 {
- width: 16.66666667%;
- }
- .col-lg-1 {
- width: 8.33333333%;
- }
- .col-lg-pull-12 {
- right: 100%;
- }
- .col-lg-pull-11 {
- right: 91.66666667%;
- }
- .col-lg-pull-10 {
- right: 83.33333333%;
- }
- .col-lg-pull-9 {
- right: 75%;
- }
- .col-lg-pull-8 {
- right: 66.66666667%;
- }
- .col-lg-pull-7 {
- right: 58.33333333%;
- }
- .col-lg-pull-6 {
- right: 50%;
- }
- .col-lg-pull-5 {
- right: 41.66666667%;
- }
- .col-lg-pull-4 {
- right: 33.33333333%;
- }
- .col-lg-pull-3 {
- right: 25%;
- }
- .col-lg-pull-2 {
- right: 16.66666667%;
- }
- .col-lg-pull-1 {
- right: 8.33333333%;
- }
- .col-lg-pull-0 {
- right: 0;
- }
- .col-lg-push-12 {
- left: 100%;
- }
- .col-lg-push-11 {
- left: 91.66666667%;
- }
- .col-lg-push-10 {
- left: 83.33333333%;
- }
- .col-lg-push-9 {
- left: 75%;
- }
- .col-lg-push-8 {
- left: 66.66666667%;
- }
- .col-lg-push-7 {
- left: 58.33333333%;
- }
- .col-lg-push-6 {
- left: 50%;
- }
- .col-lg-push-5 {
- left: 41.66666667%;
- }
- .col-lg-push-4 {
- left: 33.33333333%;
- }
- .col-lg-push-3 {
- left: 25%;
- }
- .col-lg-push-2 {
- left: 16.66666667%;
- }
- .col-lg-push-1 {
- left: 8.33333333%;
- }
- .col-lg-push-0 {
- left: 0;
- }
- .col-lg-offset-12 {
- margin-left: 100%;
- }
- .col-lg-offset-11 {
- margin-left: 91.66666667%;
- }
- .col-lg-offset-10 {
- margin-left: 83.33333333%;
- }
- .col-lg-offset-9 {
- margin-left: 75%;
- }
- .col-lg-offset-8 {
- margin-left: 66.66666667%;
- }
- .col-lg-offset-7 {
- margin-left: 58.33333333%;
- }
- .col-lg-offset-6 {
- margin-left: 50%;
- }
- .col-lg-offset-5 {
- margin-left: 41.66666667%;
- }
- .col-lg-offset-4 {
- margin-left: 33.33333333%;
- }
- .col-lg-offset-3 {
- margin-left: 25%;
- }
- .col-lg-offset-2 {
- margin-left: 16.66666667%;
- }
- .col-lg-offset-1 {
- margin-left: 8.33333333%;
- }
- .col-lg-offset-0 {
- margin-left: 0;
- }
-}
-table {
- max-width: 100%;
- background-color: transparent;
-}
-th {
- text-align: left;
-}
-.table {
- width: 100%;
- margin-bottom: 20px;
-}
-.table > thead > tr > th,
-.table > tbody > tr > th,
-.table > tfoot > tr > th,
-.table > thead > tr > td,
-.table > tbody > tr > td,
-.table > tfoot > tr > td {
- padding: 8px;
- line-height: 1.42857143;
- vertical-align: top;
- border-top: 1px solid #ddd;
-}
-.table > thead > tr > th {
- vertical-align: bottom;
- border-bottom: 2px solid #ddd;
-}
-.table > caption + thead > tr:first-child > th,
-.table > colgroup + thead > tr:first-child > th,
-.table > thead:first-child > tr:first-child > th,
-.table > caption + thead > tr:first-child > td,
-.table > colgroup + thead > tr:first-child > td,
-.table > thead:first-child > tr:first-child > td {
- border-top: 0;
-}
-.table > tbody + tbody {
- border-top: 2px solid #ddd;
-}
-.table .table {
- background-color: #fff;
-}
-.table-condensed > thead > tr > th,
-.table-condensed > tbody > tr > th,
-.table-condensed > tfoot > tr > th,
-.table-condensed > thead > tr > td,
-.table-condensed > tbody > tr > td,
-.table-condensed > tfoot > tr > td {
- padding: 5px;
-}
-.table-bordered {
- border: 1px solid #ddd;
-}
-.table-bordered > thead > tr > th,
-.table-bordered > tbody > tr > th,
-.table-bordered > tfoot > tr > th,
-.table-bordered > thead > tr > td,
-.table-bordered > tbody > tr > td,
-.table-bordered > tfoot > tr > td {
- border: 1px solid #ddd;
-}
-.table-bordered > thead > tr > th,
-.table-bordered > thead > tr > td {
- border-bottom-width: 2px;
-}
-.table-striped > tbody > tr:nth-child(odd) > td,
-.table-striped > tbody > tr:nth-child(odd) > th {
- background-color: #f9f9f9;
-}
-.table-hover > tbody > tr:hover > td,
-.table-hover > tbody > tr:hover > th {
- background-color: #f5f5f5;
-}
-table col[class*="col-"] {
- position: static;
- display: table-column;
- float: none;
-}
-table td[class*="col-"],
-table th[class*="col-"] {
- position: static;
- display: table-cell;
- float: none;
-}
-.table > thead > tr > td.active,
-.table > tbody > tr > td.active,
-.table > tfoot > tr > td.active,
-.table > thead > tr > th.active,
-.table > tbody > tr > th.active,
-.table > tfoot > tr > th.active,
-.table > thead > tr.active > td,
-.table > tbody > tr.active > td,
-.table > tfoot > tr.active > td,
-.table > thead > tr.active > th,
-.table > tbody > tr.active > th,
-.table > tfoot > tr.active > th {
- background-color: #f5f5f5;
-}
-.table-hover > tbody > tr > td.active:hover,
-.table-hover > tbody > tr > th.active:hover,
-.table-hover > tbody > tr.active:hover > td,
-.table-hover > tbody > tr.active:hover > th {
- background-color: #e8e8e8;
-}
-.table > thead > tr > td.success,
-.table > tbody > tr > td.success,
-.table > tfoot > tr > td.success,
-.table > thead > tr > th.success,
-.table > tbody > tr > th.success,
-.table > tfoot > tr > th.success,
-.table > thead > tr.success > td,
-.table > tbody > tr.success > td,
-.table > tfoot > tr.success > td,
-.table > thead > tr.success > th,
-.table > tbody > tr.success > th,
-.table > tfoot > tr.success > th {
- background-color: #dff0d8;
-}
-.table-hover > tbody > tr > td.success:hover,
-.table-hover > tbody > tr > th.success:hover,
-.table-hover > tbody > tr.success:hover > td,
-.table-hover > tbody > tr.success:hover > th {
- background-color: #d0e9c6;
-}
-.table > thead > tr > td.info,
-.table > tbody > tr > td.info,
-.table > tfoot > tr > td.info,
-.table > thead > tr > th.info,
-.table > tbody > tr > th.info,
-.table > tfoot > tr > th.info,
-.table > thead > tr.info > td,
-.table > tbody > tr.info > td,
-.table > tfoot > tr.info > td,
-.table > thead > tr.info > th,
-.table > tbody > tr.info > th,
-.table > tfoot > tr.info > th {
- background-color: #d9edf7;
-}
-.table-hover > tbody > tr > td.info:hover,
-.table-hover > tbody > tr > th.info:hover,
-.table-hover > tbody > tr.info:hover > td,
-.table-hover > tbody > tr.info:hover > th {
- background-color: #c4e3f3;
-}
-.table > thead > tr > td.warning,
-.table > tbody > tr > td.warning,
-.table > tfoot > tr > td.warning,
-.table > thead > tr > th.warning,
-.table > tbody > tr > th.warning,
-.table > tfoot > tr > th.warning,
-.table > thead > tr.warning > td,
-.table > tbody > tr.warning > td,
-.table > tfoot > tr.warning > td,
-.table > thead > tr.warning > th,
-.table > tbody > tr.warning > th,
-.table > tfoot > tr.warning > th {
- background-color: #fcf8e3;
-}
-.table-hover > tbody > tr > td.warning:hover,
-.table-hover > tbody > tr > th.warning:hover,
-.table-hover > tbody > tr.warning:hover > td,
-.table-hover > tbody > tr.warning:hover > th {
- background-color: #faf2cc;
-}
-.table > thead > tr > td.danger,
-.table > tbody > tr > td.danger,
-.table > tfoot > tr > td.danger,
-.table > thead > tr > th.danger,
-.table > tbody > tr > th.danger,
-.table > tfoot > tr > th.danger,
-.table > thead > tr.danger > td,
-.table > tbody > tr.danger > td,
-.table > tfoot > tr.danger > td,
-.table > thead > tr.danger > th,
-.table > tbody > tr.danger > th,
-.table > tfoot > tr.danger > th {
- background-color: #f2dede;
-}
-.table-hover > tbody > tr > td.danger:hover,
-.table-hover > tbody > tr > th.danger:hover,
-.table-hover > tbody > tr.danger:hover > td,
-.table-hover > tbody > tr.danger:hover > th {
- background-color: #ebcccc;
-}
-@media (max-width: 767px) {
- .table-responsive {
- width: 100%;
- margin-bottom: 15px;
- overflow-x: scroll;
- overflow-y: hidden;
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
- border: 1px solid #ddd;
- }
- .table-responsive > .table {
- margin-bottom: 0;
- }
- .table-responsive > .table > thead > tr > th,
- .table-responsive > .table > tbody > tr > th,
- .table-responsive > .table > tfoot > tr > th,
- .table-responsive > .table > thead > tr > td,
- .table-responsive > .table > tbody > tr > td,
- .table-responsive > .table > tfoot > tr > td {
- white-space: nowrap;
- }
- .table-responsive > .table-bordered {
- border: 0;
- }
- .table-responsive > .table-bordered > thead > tr > th:first-child,
- .table-responsive > .table-bordered > tbody > tr > th:first-child,
- .table-responsive > .table-bordered > tfoot > tr > th:first-child,
- .table-responsive > .table-bordered > thead > tr > td:first-child,
- .table-responsive > .table-bordered > tbody > tr > td:first-child,
- .table-responsive > .table-bordered > tfoot > tr > td:first-child {
- border-left: 0;
- }
- .table-responsive > .table-bordered > thead > tr > th:last-child,
- .table-responsive > .table-bordered > tbody > tr > th:last-child,
- .table-responsive > .table-bordered > tfoot > tr > th:last-child,
- .table-responsive > .table-bordered > thead > tr > td:last-child,
- .table-responsive > .table-bordered > tbody > tr > td:last-child,
- .table-responsive > .table-bordered > tfoot > tr > td:last-child {
- border-right: 0;
- }
- .table-responsive > .table-bordered > tbody > tr:last-child > th,
- .table-responsive > .table-bordered > tfoot > tr:last-child > th,
- .table-responsive > .table-bordered > tbody > tr:last-child > td,
- .table-responsive > .table-bordered > tfoot > tr:last-child > td {
- border-bottom: 0;
- }
-}
-fieldset {
- min-width: 0;
- padding: 0;
- margin: 0;
- border: 0;
-}
-legend {
- display: block;
- width: 100%;
- padding: 0;
- margin-bottom: 20px;
- font-size: 21px;
- line-height: inherit;
- color: #333;
- border: 0;
- border-bottom: 1px solid #e5e5e5;
-}
-label {
- display: inline-block;
- margin-bottom: 5px;
- font-weight: bold;
-}
-input[type="search"] {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-input[type="radio"],
-input[type="checkbox"] {
- margin: 4px 0 0;
- margin-top: 1px \9;
- /* IE8-9 */
- line-height: normal;
-}
-input[type="file"] {
- display: block;
-}
-input[type="range"] {
- display: block;
- width: 100%;
-}
-select[multiple],
-select[size] {
- height: auto;
-}
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-output {
- display: block;
- padding-top: 7px;
- font-size: 14px;
- line-height: 1.42857143;
- color: #555;
-}
-.form-control {
- display: block;
- width: 100%;
- height: 34px;
- padding: 6px 12px;
- font-size: 14px;
- line-height: 1.42857143;
- color: #555;
- background-color: #fff;
- background-image: none;
- border: 1px solid #ccc;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
- transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-}
-.form-control:focus {
- border-color: #66afe9;
- outline: 0;
- -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
- box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
-}
-.form-control::-moz-placeholder {
- color: #999;
- opacity: 1;
-}
-.form-control:-ms-input-placeholder {
- color: #999;
-}
-.form-control::-webkit-input-placeholder {
- color: #999;
-}
-.form-control[disabled],
-.form-control[readonly],
-fieldset[disabled] .form-control {
- cursor: not-allowed;
- background-color: #eee;
- opacity: 1;
-}
-textarea.form-control {
- height: auto;
-}
-input[type="search"] {
- -webkit-appearance: none;
-}
-input[type="date"] {
- line-height: 34px;
-}
-.form-group {
- margin-bottom: 15px;
-}
-.radio,
-.checkbox {
- display: block;
- min-height: 20px;
- padding-left: 20px;
- margin-top: 10px;
- margin-bottom: 10px;
-}
-.radio label,
-.checkbox label {
- display: inline;
- font-weight: normal;
- cursor: pointer;
-}
-.radio input[type="radio"],
-.radio-inline input[type="radio"],
-.checkbox input[type="checkbox"],
-.checkbox-inline input[type="checkbox"] {
- float: left;
- margin-left: -20px;
-}
-.radio + .radio,
-.checkbox + .checkbox {
- margin-top: -5px;
-}
-.radio-inline,
-.checkbox-inline {
- display: inline-block;
- padding-left: 20px;
- margin-bottom: 0;
- font-weight: normal;
- vertical-align: middle;
- cursor: pointer;
-}
-.radio-inline + .radio-inline,
-.checkbox-inline + .checkbox-inline {
- margin-top: 0;
- margin-left: 10px;
-}
-input[type="radio"][disabled],
-input[type="checkbox"][disabled],
-.radio[disabled],
-.radio-inline[disabled],
-.checkbox[disabled],
-.checkbox-inline[disabled],
-fieldset[disabled] input[type="radio"],
-fieldset[disabled] input[type="checkbox"],
-fieldset[disabled] .radio,
-fieldset[disabled] .radio-inline,
-fieldset[disabled] .checkbox,
-fieldset[disabled] .checkbox-inline {
- cursor: not-allowed;
-}
-.input-sm {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-select.input-sm {
- height: 30px;
- line-height: 30px;
-}
-textarea.input-sm,
-select[multiple].input-sm {
- height: auto;
-}
-.input-lg {
- height: 46px;
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
-}
-select.input-lg {
- height: 46px;
- line-height: 46px;
-}
-textarea.input-lg,
-select[multiple].input-lg {
- height: auto;
-}
-.has-feedback {
- position: relative;
-}
-.has-feedback .form-control {
- padding-right: 42.5px;
-}
-.has-feedback .form-control-feedback {
- position: absolute;
- top: 25px;
- right: 0;
- display: block;
- width: 34px;
- height: 34px;
- line-height: 34px;
- text-align: center;
-}
-.has-success .help-block,
-.has-success .control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline {
- color: #3c763d;
-}
-.has-success .form-control {
- border-color: #3c763d;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-}
-.has-success .form-control:focus {
- border-color: #2b542c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
-}
-.has-success .input-group-addon {
- color: #3c763d;
- background-color: #dff0d8;
- border-color: #3c763d;
-}
-.has-success .form-control-feedback {
- color: #3c763d;
-}
-.has-warning .help-block,
-.has-warning .control-label,
-.has-warning .radio,
-.has-warning .checkbox,
-.has-warning .radio-inline,
-.has-warning .checkbox-inline {
- color: #8a6d3b;
-}
-.has-warning .form-control {
- border-color: #8a6d3b;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-}
-.has-warning .form-control:focus {
- border-color: #66512c;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
-}
-.has-warning .input-group-addon {
- color: #8a6d3b;
- background-color: #fcf8e3;
- border-color: #8a6d3b;
-}
-.has-warning .form-control-feedback {
- color: #8a6d3b;
-}
-.has-error .help-block,
-.has-error .control-label,
-.has-error .radio,
-.has-error .checkbox,
-.has-error .radio-inline,
-.has-error .checkbox-inline {
- color: #a94442;
-}
-.has-error .form-control {
- border-color: #a94442;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-}
-.has-error .form-control:focus {
- border-color: #843534;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
-}
-.has-error .input-group-addon {
- color: #a94442;
- background-color: #f2dede;
- border-color: #a94442;
-}
-.has-error .form-control-feedback {
- color: #a94442;
-}
-.form-control-static {
- margin-bottom: 0;
-}
-.help-block {
- display: block;
- margin-top: 5px;
- margin-bottom: 10px;
- color: #737373;
-}
-@media (min-width: 768px) {
- .form-inline .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .form-inline .input-group > .form-control {
- width: 100%;
- }
- .form-inline .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio,
- .form-inline .checkbox {
- display: inline-block;
- padding-left: 0;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .form-inline .radio input[type="radio"],
- .form-inline .checkbox input[type="checkbox"] {
- float: none;
- margin-left: 0;
- }
- .form-inline .has-feedback .form-control-feedback {
- top: 0;
- }
-}
-.form-horizontal .control-label,
-.form-horizontal .radio,
-.form-horizontal .checkbox,
-.form-horizontal .radio-inline,
-.form-horizontal .checkbox-inline {
- padding-top: 7px;
- margin-top: 0;
- margin-bottom: 0;
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox {
- min-height: 27px;
-}
-.form-horizontal .form-group {
- margin-right: -15px;
- margin-left: -15px;
-}
-.form-horizontal .form-control-static {
- padding-top: 7px;
-}
-@media (min-width: 768px) {
- .form-horizontal .control-label {
- text-align: right;
- }
-}
-.form-horizontal .has-feedback .form-control-feedback {
- top: 0;
- right: 15px;
-}
-.btn {
- display: inline-block;
- padding: 6px 12px;
- margin-bottom: 0;
- font-size: 14px;
- font-weight: normal;
- line-height: 1.42857143;
- text-align: center;
- white-space: nowrap;
- vertical-align: middle;
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- background-image: none;
- border: 1px solid transparent;
- border-radius: 4px;
-}
-.btn:focus,
-.btn:active:focus,
-.btn.active:focus {
- outline: thin dotted;
- outline: 5px auto -webkit-focus-ring-color;
- outline-offset: -2px;
-}
-.btn:hover,
-.btn:focus {
- color: #333;
- text-decoration: none;
-}
-.btn:active,
-.btn.active {
- background-image: none;
- outline: 0;
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
-}
-.btn.disabled,
-.btn[disabled],
-fieldset[disabled] .btn {
- pointer-events: none;
- cursor: not-allowed;
- filter: alpha(opacity=65);
- -webkit-box-shadow: none;
- box-shadow: none;
- opacity: .65;
-}
-.btn-default {
- color: #333;
- background-color: #fff;
- border-color: #ccc;
-}
-.btn-default:hover,
-.btn-default:focus,
-.btn-default:active,
-.btn-default.active,
-.open .dropdown-toggle.btn-default {
- color: #333;
- background-color: #ebebeb;
- border-color: #adadad;
-}
-.btn-default:active,
-.btn-default.active,
-.open .dropdown-toggle.btn-default {
- background-image: none;
-}
-.btn-default.disabled,
-.btn-default[disabled],
-fieldset[disabled] .btn-default,
-.btn-default.disabled:hover,
-.btn-default[disabled]:hover,
-fieldset[disabled] .btn-default:hover,
-.btn-default.disabled:focus,
-.btn-default[disabled]:focus,
-fieldset[disabled] .btn-default:focus,
-.btn-default.disabled:active,
-.btn-default[disabled]:active,
-fieldset[disabled] .btn-default:active,
-.btn-default.disabled.active,
-.btn-default[disabled].active,
-fieldset[disabled] .btn-default.active {
- background-color: #fff;
- border-color: #ccc;
-}
-.btn-default .badge {
- color: #fff;
- background-color: #333;
-}
-.btn-primary {
- color: #fff;
- background-color: #428bca;
- border-color: #357ebd;
-}
-.btn-primary:hover,
-.btn-primary:focus,
-.btn-primary:active,
-.btn-primary.active,
-.open .dropdown-toggle.btn-primary {
- color: #fff;
- background-color: #3276b1;
- border-color: #285e8e;
-}
-.btn-primary:active,
-.btn-primary.active,
-.open .dropdown-toggle.btn-primary {
- background-image: none;
-}
-.btn-primary.disabled,
-.btn-primary[disabled],
-fieldset[disabled] .btn-primary,
-.btn-primary.disabled:hover,
-.btn-primary[disabled]:hover,
-fieldset[disabled] .btn-primary:hover,
-.btn-primary.disabled:focus,
-.btn-primary[disabled]:focus,
-fieldset[disabled] .btn-primary:focus,
-.btn-primary.disabled:active,
-.btn-primary[disabled]:active,
-fieldset[disabled] .btn-primary:active,
-.btn-primary.disabled.active,
-.btn-primary[disabled].active,
-fieldset[disabled] .btn-primary.active {
- background-color: #428bca;
- border-color: #357ebd;
-}
-.btn-primary .badge {
- color: #428bca;
- background-color: #fff;
-}
-.btn-success {
- color: #fff;
- background-color: #5cb85c;
- border-color: #4cae4c;
-}
-.btn-success:hover,
-.btn-success:focus,
-.btn-success:active,
-.btn-success.active,
-.open .dropdown-toggle.btn-success {
- color: #fff;
- background-color: #47a447;
- border-color: #398439;
-}
-.btn-success:active,
-.btn-success.active,
-.open .dropdown-toggle.btn-success {
- background-image: none;
-}
-.btn-success.disabled,
-.btn-success[disabled],
-fieldset[disabled] .btn-success,
-.btn-success.disabled:hover,
-.btn-success[disabled]:hover,
-fieldset[disabled] .btn-success:hover,
-.btn-success.disabled:focus,
-.btn-success[disabled]:focus,
-fieldset[disabled] .btn-success:focus,
-.btn-success.disabled:active,
-.btn-success[disabled]:active,
-fieldset[disabled] .btn-success:active,
-.btn-success.disabled.active,
-.btn-success[disabled].active,
-fieldset[disabled] .btn-success.active {
- background-color: #5cb85c;
- border-color: #4cae4c;
-}
-.btn-success .badge {
- color: #5cb85c;
- background-color: #fff;
-}
-.btn-info {
- color: #fff;
- background-color: #5bc0de;
- border-color: #46b8da;
-}
-.btn-info:hover,
-.btn-info:focus,
-.btn-info:active,
-.btn-info.active,
-.open .dropdown-toggle.btn-info {
- color: #fff;
- background-color: #39b3d7;
- border-color: #269abc;
-}
-.btn-info:active,
-.btn-info.active,
-.open .dropdown-toggle.btn-info {
- background-image: none;
-}
-.btn-info.disabled,
-.btn-info[disabled],
-fieldset[disabled] .btn-info,
-.btn-info.disabled:hover,
-.btn-info[disabled]:hover,
-fieldset[disabled] .btn-info:hover,
-.btn-info.disabled:focus,
-.btn-info[disabled]:focus,
-fieldset[disabled] .btn-info:focus,
-.btn-info.disabled:active,
-.btn-info[disabled]:active,
-fieldset[disabled] .btn-info:active,
-.btn-info.disabled.active,
-.btn-info[disabled].active,
-fieldset[disabled] .btn-info.active {
- background-color: #5bc0de;
- border-color: #46b8da;
-}
-.btn-info .badge {
- color: #5bc0de;
- background-color: #fff;
-}
-.btn-warning {
- color: #fff;
- background-color: #f0ad4e;
- border-color: #eea236;
-}
-.btn-warning:hover,
-.btn-warning:focus,
-.btn-warning:active,
-.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
- color: #fff;
- background-color: #ed9c28;
- border-color: #d58512;
-}
-.btn-warning:active,
-.btn-warning.active,
-.open .dropdown-toggle.btn-warning {
- background-image: none;
-}
-.btn-warning.disabled,
-.btn-warning[disabled],
-fieldset[disabled] .btn-warning,
-.btn-warning.disabled:hover,
-.btn-warning[disabled]:hover,
-fieldset[disabled] .btn-warning:hover,
-.btn-warning.disabled:focus,
-.btn-warning[disabled]:focus,
-fieldset[disabled] .btn-warning:focus,
-.btn-warning.disabled:active,
-.btn-warning[disabled]:active,
-fieldset[disabled] .btn-warning:active,
-.btn-warning.disabled.active,
-.btn-warning[disabled].active,
-fieldset[disabled] .btn-warning.active {
- background-color: #f0ad4e;
- border-color: #eea236;
-}
-.btn-warning .badge {
- color: #f0ad4e;
- background-color: #fff;
-}
-.btn-danger {
- color: #fff;
- background-color: #d9534f;
- border-color: #d43f3a;
-}
-.btn-danger:hover,
-.btn-danger:focus,
-.btn-danger:active,
-.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
- color: #fff;
- background-color: #d2322d;
- border-color: #ac2925;
-}
-.btn-danger:active,
-.btn-danger.active,
-.open .dropdown-toggle.btn-danger {
- background-image: none;
-}
-.btn-danger.disabled,
-.btn-danger[disabled],
-fieldset[disabled] .btn-danger,
-.btn-danger.disabled:hover,
-.btn-danger[disabled]:hover,
-fieldset[disabled] .btn-danger:hover,
-.btn-danger.disabled:focus,
-.btn-danger[disabled]:focus,
-fieldset[disabled] .btn-danger:focus,
-.btn-danger.disabled:active,
-.btn-danger[disabled]:active,
-fieldset[disabled] .btn-danger:active,
-.btn-danger.disabled.active,
-.btn-danger[disabled].active,
-fieldset[disabled] .btn-danger.active {
- background-color: #d9534f;
- border-color: #d43f3a;
-}
-.btn-danger .badge {
- color: #d9534f;
- background-color: #fff;
-}
-.btn-link {
- font-weight: normal;
- color: #428bca;
- cursor: pointer;
- border-radius: 0;
-}
-.btn-link,
-.btn-link:active,
-.btn-link[disabled],
-fieldset[disabled] .btn-link {
- background-color: transparent;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.btn-link,
-.btn-link:hover,
-.btn-link:focus,
-.btn-link:active {
- border-color: transparent;
-}
-.btn-link:hover,
-.btn-link:focus {
- color: #2a6496;
- text-decoration: underline;
- background-color: transparent;
-}
-.btn-link[disabled]:hover,
-fieldset[disabled] .btn-link:hover,
-.btn-link[disabled]:focus,
-fieldset[disabled] .btn-link:focus {
- color: #999;
- text-decoration: none;
-}
-.btn-lg,
-.btn-group-lg > .btn {
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
-}
-.btn-sm,
-.btn-group-sm > .btn {
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-.btn-xs,
-.btn-group-xs > .btn {
- padding: 1px 5px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-.btn-block {
- display: block;
- width: 100%;
- padding-right: 0;
- padding-left: 0;
-}
-.btn-block + .btn-block {
- margin-top: 5px;
-}
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
- width: 100%;
-}
-.fade {
- opacity: 0;
- -webkit-transition: opacity .15s linear;
- transition: opacity .15s linear;
-}
-.fade.in {
- opacity: 1;
-}
-.collapse {
- display: none;
-}
-.collapse.in {
- display: block;
-}
-.collapsing {
- position: relative;
- height: 0;
- overflow: hidden;
- -webkit-transition: height .35s ease;
- transition: height .35s ease;
-}
-@font-face {
- font-family: 'Glyphicons Halflings';
-
- src: url('../fonts/glyphicons-halflings-regular.eot');
- src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
-}
-.glyphicon {
- position: relative;
- top: 1px;
- display: inline-block;
- font-family: 'Glyphicons Halflings';
- font-style: normal;
- font-weight: normal;
- line-height: 1;
-
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-.glyphicon-asterisk:before {
- content: "\2a";
-}
-.glyphicon-plus:before {
- content: "\2b";
-}
-.glyphicon-euro:before {
- content: "\20ac";
-}
-.glyphicon-minus:before {
- content: "\2212";
-}
-.glyphicon-cloud:before {
- content: "\2601";
-}
-.glyphicon-envelope:before {
- content: "\2709";
-}
-.glyphicon-pencil:before {
- content: "\270f";
-}
-.glyphicon-glass:before {
- content: "\e001";
-}
-.glyphicon-music:before {
- content: "\e002";
-}
-.glyphicon-search:before {
- content: "\e003";
-}
-.glyphicon-heart:before {
- content: "\e005";
-}
-.glyphicon-star:before {
- content: "\e006";
-}
-.glyphicon-star-empty:before {
- content: "\e007";
-}
-.glyphicon-user:before {
- content: "\e008";
-}
-.glyphicon-film:before {
- content: "\e009";
-}
-.glyphicon-th-large:before {
- content: "\e010";
-}
-.glyphicon-th:before {
- content: "\e011";
-}
-.glyphicon-th-list:before {
- content: "\e012";
-}
-.glyphicon-ok:before {
- content: "\e013";
-}
-.glyphicon-remove:before {
- content: "\e014";
-}
-.glyphicon-zoom-in:before {
- content: "\e015";
-}
-.glyphicon-zoom-out:before {
- content: "\e016";
-}
-.glyphicon-off:before {
- content: "\e017";
-}
-.glyphicon-signal:before {
- content: "\e018";
-}
-.glyphicon-cog:before {
- content: "\e019";
-}
-.glyphicon-trash:before {
- content: "\e020";
-}
-.glyphicon-home:before {
- content: "\e021";
-}
-.glyphicon-file:before {
- content: "\e022";
-}
-.glyphicon-time:before {
- content: "\e023";
-}
-.glyphicon-road:before {
- content: "\e024";
-}
-.glyphicon-download-alt:before {
- content: "\e025";
-}
-.glyphicon-download:before {
- content: "\e026";
-}
-.glyphicon-upload:before {
- content: "\e027";
-}
-.glyphicon-inbox:before {
- content: "\e028";
-}
-.glyphicon-play-circle:before {
- content: "\e029";
-}
-.glyphicon-repeat:before {
- content: "\e030";
-}
-.glyphicon-refresh:before {
- content: "\e031";
-}
-.glyphicon-list-alt:before {
- content: "\e032";
-}
-.glyphicon-lock:before {
- content: "\e033";
-}
-.glyphicon-flag:before {
- content: "\e034";
-}
-.glyphicon-headphones:before {
- content: "\e035";
-}
-.glyphicon-volume-off:before {
- content: "\e036";
-}
-.glyphicon-volume-down:before {
- content: "\e037";
-}
-.glyphicon-volume-up:before {
- content: "\e038";
-}
-.glyphicon-qrcode:before {
- content: "\e039";
-}
-.glyphicon-barcode:before {
- content: "\e040";
-}
-.glyphicon-tag:before {
- content: "\e041";
-}
-.glyphicon-tags:before {
- content: "\e042";
-}
-.glyphicon-book:before {
- content: "\e043";
-}
-.glyphicon-bookmark:before {
- content: "\e044";
-}
-.glyphicon-print:before {
- content: "\e045";
-}
-.glyphicon-camera:before {
- content: "\e046";
-}
-.glyphicon-font:before {
- content: "\e047";
-}
-.glyphicon-bold:before {
- content: "\e048";
-}
-.glyphicon-italic:before {
- content: "\e049";
-}
-.glyphicon-text-height:before {
- content: "\e050";
-}
-.glyphicon-text-width:before {
- content: "\e051";
-}
-.glyphicon-align-left:before {
- content: "\e052";
-}
-.glyphicon-align-center:before {
- content: "\e053";
-}
-.glyphicon-align-right:before {
- content: "\e054";
-}
-.glyphicon-align-justify:before {
- content: "\e055";
-}
-.glyphicon-list:before {
- content: "\e056";
-}
-.glyphicon-indent-left:before {
- content: "\e057";
-}
-.glyphicon-indent-right:before {
- content: "\e058";
-}
-.glyphicon-facetime-video:before {
- content: "\e059";
-}
-.glyphicon-picture:before {
- content: "\e060";
-}
-.glyphicon-map-marker:before {
- content: "\e062";
-}
-.glyphicon-adjust:before {
- content: "\e063";
-}
-.glyphicon-tint:before {
- content: "\e064";
-}
-.glyphicon-edit:before {
- content: "\e065";
-}
-.glyphicon-share:before {
- content: "\e066";
-}
-.glyphicon-check:before {
- content: "\e067";
-}
-.glyphicon-move:before {
- content: "\e068";
-}
-.glyphicon-step-backward:before {
- content: "\e069";
-}
-.glyphicon-fast-backward:before {
- content: "\e070";
-}
-.glyphicon-backward:before {
- content: "\e071";
-}
-.glyphicon-play:before {
- content: "\e072";
-}
-.glyphicon-pause:before {
- content: "\e073";
-}
-.glyphicon-stop:before {
- content: "\e074";
-}
-.glyphicon-forward:before {
- content: "\e075";
-}
-.glyphicon-fast-forward:before {
- content: "\e076";
-}
-.glyphicon-step-forward:before {
- content: "\e077";
-}
-.glyphicon-eject:before {
- content: "\e078";
-}
-.glyphicon-chevron-left:before {
- content: "\e079";
-}
-.glyphicon-chevron-right:before {
- content: "\e080";
-}
-.glyphicon-plus-sign:before {
- content: "\e081";
-}
-.glyphicon-minus-sign:before {
- content: "\e082";
-}
-.glyphicon-remove-sign:before {
- content: "\e083";
-}
-.glyphicon-ok-sign:before {
- content: "\e084";
-}
-.glyphicon-question-sign:before {
- content: "\e085";
-}
-.glyphicon-info-sign:before {
- content: "\e086";
-}
-.glyphicon-screenshot:before {
- content: "\e087";
-}
-.glyphicon-remove-circle:before {
- content: "\e088";
-}
-.glyphicon-ok-circle:before {
- content: "\e089";
-}
-.glyphicon-ban-circle:before {
- content: "\e090";
-}
-.glyphicon-arrow-left:before {
- content: "\e091";
-}
-.glyphicon-arrow-right:before {
- content: "\e092";
-}
-.glyphicon-arrow-up:before {
- content: "\e093";
-}
-.glyphicon-arrow-down:before {
- content: "\e094";
-}
-.glyphicon-share-alt:before {
- content: "\e095";
-}
-.glyphicon-resize-full:before {
- content: "\e096";
-}
-.glyphicon-resize-small:before {
- content: "\e097";
-}
-.glyphicon-exclamation-sign:before {
- content: "\e101";
-}
-.glyphicon-gift:before {
- content: "\e102";
-}
-.glyphicon-leaf:before {
- content: "\e103";
-}
-.glyphicon-fire:before {
- content: "\e104";
-}
-.glyphicon-eye-open:before {
- content: "\e105";
-}
-.glyphicon-eye-close:before {
- content: "\e106";
-}
-.glyphicon-warning-sign:before {
- content: "\e107";
-}
-.glyphicon-plane:before {
- content: "\e108";
-}
-.glyphicon-calendar:before {
- content: "\e109";
-}
-.glyphicon-random:before {
- content: "\e110";
-}
-.glyphicon-comment:before {
- content: "\e111";
-}
-.glyphicon-magnet:before {
- content: "\e112";
-}
-.glyphicon-chevron-up:before {
- content: "\e113";
-}
-.glyphicon-chevron-down:before {
- content: "\e114";
-}
-.glyphicon-retweet:before {
- content: "\e115";
-}
-.glyphicon-shopping-cart:before {
- content: "\e116";
-}
-.glyphicon-folder-close:before {
- content: "\e117";
-}
-.glyphicon-folder-open:before {
- content: "\e118";
-}
-.glyphicon-resize-vertical:before {
- content: "\e119";
-}
-.glyphicon-resize-horizontal:before {
- content: "\e120";
-}
-.glyphicon-hdd:before {
- content: "\e121";
-}
-.glyphicon-bullhorn:before {
- content: "\e122";
-}
-.glyphicon-bell:before {
- content: "\e123";
-}
-.glyphicon-certificate:before {
- content: "\e124";
-}
-.glyphicon-thumbs-up:before {
- content: "\e125";
-}
-.glyphicon-thumbs-down:before {
- content: "\e126";
-}
-.glyphicon-hand-right:before {
- content: "\e127";
-}
-.glyphicon-hand-left:before {
- content: "\e128";
-}
-.glyphicon-hand-up:before {
- content: "\e129";
-}
-.glyphicon-hand-down:before {
- content: "\e130";
-}
-.glyphicon-circle-arrow-right:before {
- content: "\e131";
-}
-.glyphicon-circle-arrow-left:before {
- content: "\e132";
-}
-.glyphicon-circle-arrow-up:before {
- content: "\e133";
-}
-.glyphicon-circle-arrow-down:before {
- content: "\e134";
-}
-.glyphicon-globe:before {
- content: "\e135";
-}
-.glyphicon-wrench:before {
- content: "\e136";
-}
-.glyphicon-tasks:before {
- content: "\e137";
-}
-.glyphicon-filter:before {
- content: "\e138";
-}
-.glyphicon-briefcase:before {
- content: "\e139";
-}
-.glyphicon-fullscreen:before {
- content: "\e140";
-}
-.glyphicon-dashboard:before {
- content: "\e141";
-}
-.glyphicon-paperclip:before {
- content: "\e142";
-}
-.glyphicon-heart-empty:before {
- content: "\e143";
-}
-.glyphicon-link:before {
- content: "\e144";
-}
-.glyphicon-phone:before {
- content: "\e145";
-}
-.glyphicon-pushpin:before {
- content: "\e146";
-}
-.glyphicon-usd:before {
- content: "\e148";
-}
-.glyphicon-gbp:before {
- content: "\e149";
-}
-.glyphicon-sort:before {
- content: "\e150";
-}
-.glyphicon-sort-by-alphabet:before {
- content: "\e151";
-}
-.glyphicon-sort-by-alphabet-alt:before {
- content: "\e152";
-}
-.glyphicon-sort-by-order:before {
- content: "\e153";
-}
-.glyphicon-sort-by-order-alt:before {
- content: "\e154";
-}
-.glyphicon-sort-by-attributes:before {
- content: "\e155";
-}
-.glyphicon-sort-by-attributes-alt:before {
- content: "\e156";
-}
-.glyphicon-unchecked:before {
- content: "\e157";
-}
-.glyphicon-expand:before {
- content: "\e158";
-}
-.glyphicon-collapse-down:before {
- content: "\e159";
-}
-.glyphicon-collapse-up:before {
- content: "\e160";
-}
-.glyphicon-log-in:before {
- content: "\e161";
-}
-.glyphicon-flash:before {
- content: "\e162";
-}
-.glyphicon-log-out:before {
- content: "\e163";
-}
-.glyphicon-new-window:before {
- content: "\e164";
-}
-.glyphicon-record:before {
- content: "\e165";
-}
-.glyphicon-save:before {
- content: "\e166";
-}
-.glyphicon-open:before {
- content: "\e167";
-}
-.glyphicon-saved:before {
- content: "\e168";
-}
-.glyphicon-import:before {
- content: "\e169";
-}
-.glyphicon-export:before {
- content: "\e170";
-}
-.glyphicon-send:before {
- content: "\e171";
-}
-.glyphicon-floppy-disk:before {
- content: "\e172";
-}
-.glyphicon-floppy-saved:before {
- content: "\e173";
-}
-.glyphicon-floppy-remove:before {
- content: "\e174";
-}
-.glyphicon-floppy-save:before {
- content: "\e175";
-}
-.glyphicon-floppy-open:before {
- content: "\e176";
-}
-.glyphicon-credit-card:before {
- content: "\e177";
-}
-.glyphicon-transfer:before {
- content: "\e178";
-}
-.glyphicon-cutlery:before {
- content: "\e179";
-}
-.glyphicon-header:before {
- content: "\e180";
-}
-.glyphicon-compressed:before {
- content: "\e181";
-}
-.glyphicon-earphone:before {
- content: "\e182";
-}
-.glyphicon-phone-alt:before {
- content: "\e183";
-}
-.glyphicon-tower:before {
- content: "\e184";
-}
-.glyphicon-stats:before {
- content: "\e185";
-}
-.glyphicon-sd-video:before {
- content: "\e186";
-}
-.glyphicon-hd-video:before {
- content: "\e187";
-}
-.glyphicon-subtitles:before {
- content: "\e188";
-}
-.glyphicon-sound-stereo:before {
- content: "\e189";
-}
-.glyphicon-sound-dolby:before {
- content: "\e190";
-}
-.glyphicon-sound-5-1:before {
- content: "\e191";
-}
-.glyphicon-sound-6-1:before {
- content: "\e192";
-}
-.glyphicon-sound-7-1:before {
- content: "\e193";
-}
-.glyphicon-copyright-mark:before {
- content: "\e194";
-}
-.glyphicon-registration-mark:before {
- content: "\e195";
-}
-.glyphicon-cloud-download:before {
- content: "\e197";
-}
-.glyphicon-cloud-upload:before {
- content: "\e198";
-}
-.glyphicon-tree-conifer:before {
- content: "\e199";
-}
-.glyphicon-tree-deciduous:before {
- content: "\e200";
-}
-.caret {
- display: inline-block;
- width: 0;
- height: 0;
- margin-left: 2px;
- vertical-align: middle;
- border-top: 4px solid;
- border-right: 4px solid transparent;
- border-left: 4px solid transparent;
-}
-.dropdown {
- position: relative;
-}
-.dropdown-toggle:focus {
- outline: 0;
-}
-.dropdown-menu {
- position: absolute;
- top: 100%;
- left: 0;
- z-index: 1000;
- display: none;
- float: left;
- min-width: 160px;
- padding: 5px 0;
- margin: 2px 0 0;
- font-size: 14px;
- list-style: none;
- background-color: #fff;
- background-clip: padding-box;
- border: 1px solid #ccc;
- border: 1px solid rgba(0, 0, 0, .15);
- border-radius: 4px;
- -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
- box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
-}
-.dropdown-menu.pull-right {
- right: 0;
- left: auto;
-}
-.dropdown-menu .divider {
- height: 1px;
- margin: 9px 0;
- overflow: hidden;
- background-color: #e5e5e5;
-}
-.dropdown-menu > li > a {
- display: block;
- padding: 3px 20px;
- clear: both;
- font-weight: normal;
- line-height: 1.42857143;
- color: #333;
- white-space: nowrap;
-}
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
- color: #262626;
- text-decoration: none;
- background-color: #f5f5f5;
-}
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
- color: #fff;
- text-decoration: none;
- background-color: #428bca;
- outline: 0;
-}
-.dropdown-menu > .disabled > a,
-.dropdown-menu > .disabled > a:hover,
-.dropdown-menu > .disabled > a:focus {
- color: #999;
-}
-.dropdown-menu > .disabled > a:hover,
-.dropdown-menu > .disabled > a:focus {
- text-decoration: none;
- cursor: not-allowed;
- background-color: transparent;
- background-image: none;
- filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.open > .dropdown-menu {
- display: block;
-}
-.open > a {
- outline: 0;
-}
-.dropdown-menu-right {
- right: 0;
- left: auto;
-}
-.dropdown-menu-left {
- right: auto;
- left: 0;
-}
-.dropdown-header {
- display: block;
- padding: 3px 20px;
- font-size: 12px;
- line-height: 1.42857143;
- color: #999;
-}
-.dropdown-backdrop {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 990;
-}
-.pull-right > .dropdown-menu {
- right: 0;
- left: auto;
-}
-.dropup .caret,
-.navbar-fixed-bottom .dropdown .caret {
- content: "";
- border-top: 0;
- border-bottom: 4px solid;
-}
-.dropup .dropdown-menu,
-.navbar-fixed-bottom .dropdown .dropdown-menu {
- top: auto;
- bottom: 100%;
- margin-bottom: 1px;
-}
-@media (min-width: 768px) {
- .navbar-right .dropdown-menu {
- right: 0;
- left: auto;
- }
- .navbar-right .dropdown-menu-left {
- right: auto;
- left: 0;
- }
-}
-.btn-group,
-.btn-group-vertical {
- position: relative;
- display: inline-block;
- vertical-align: middle;
-}
-.btn-group > .btn,
-.btn-group-vertical > .btn {
- position: relative;
- float: left;
-}
-.btn-group > .btn:hover,
-.btn-group-vertical > .btn:hover,
-.btn-group > .btn:focus,
-.btn-group-vertical > .btn:focus,
-.btn-group > .btn:active,
-.btn-group-vertical > .btn:active,
-.btn-group > .btn.active,
-.btn-group-vertical > .btn.active {
- z-index: 2;
-}
-.btn-group > .btn:focus,
-.btn-group-vertical > .btn:focus {
- outline: none;
-}
-.btn-group .btn + .btn,
-.btn-group .btn + .btn-group,
-.btn-group .btn-group + .btn,
-.btn-group .btn-group + .btn-group {
- margin-left: -1px;
-}
-.btn-toolbar {
- margin-left: -5px;
-}
-.btn-toolbar .btn-group,
-.btn-toolbar .input-group {
- float: left;
-}
-.btn-toolbar > .btn,
-.btn-toolbar > .btn-group,
-.btn-toolbar > .input-group {
- margin-left: 5px;
-}
-.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
- border-radius: 0;
-}
-.btn-group > .btn:first-child {
- margin-left: 0;
-}
-.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-.btn-group > .btn:last-child:not(:first-child),
-.btn-group > .dropdown-toggle:not(:first-child) {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-.btn-group > .btn-group {
- float: left;
-}
-.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
- border-radius: 0;
-}
-.btn-group > .btn-group:first-child > .btn:last-child,
-.btn-group > .btn-group:first-child > .dropdown-toggle {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-.btn-group > .btn-group:last-child > .btn:first-child {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
- outline: 0;
-}
-.btn-group > .btn + .dropdown-toggle {
- padding-right: 8px;
- padding-left: 8px;
-}
-.btn-group > .btn-lg + .dropdown-toggle {
- padding-right: 12px;
- padding-left: 12px;
-}
-.btn-group.open .dropdown-toggle {
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
-}
-.btn-group.open .dropdown-toggle.btn-link {
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-.btn .caret {
- margin-left: 0;
-}
-.btn-lg .caret {
- border-width: 5px 5px 0;
- border-bottom-width: 0;
-}
-.dropup .btn-lg .caret {
- border-width: 0 5px 5px;
-}
-.btn-group-vertical > .btn,
-.btn-group-vertical > .btn-group,
-.btn-group-vertical > .btn-group > .btn {
- display: block;
- float: none;
- width: 100%;
- max-width: 100%;
-}
-.btn-group-vertical > .btn-group > .btn {
- float: none;
-}
-.btn-group-vertical > .btn + .btn,
-.btn-group-vertical > .btn + .btn-group,
-.btn-group-vertical > .btn-group + .btn,
-.btn-group-vertical > .btn-group + .btn-group {
- margin-top: -1px;
- margin-left: 0;
-}
-.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
- border-radius: 0;
-}
-.btn-group-vertical > .btn:first-child:not(:last-child) {
- border-top-right-radius: 4px;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.btn-group-vertical > .btn:last-child:not(:first-child) {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
- border-bottom-left-radius: 4px;
-}
-.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
- border-radius: 0;
-}
-.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
-.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-.btn-group-justified {
- display: table;
- width: 100%;
- table-layout: fixed;
- border-collapse: separate;
-}
-.btn-group-justified > .btn,
-.btn-group-justified > .btn-group {
- display: table-cell;
- float: none;
- width: 1%;
-}
-.btn-group-justified > .btn-group .btn {
- width: 100%;
-}
-[data-toggle="buttons"] > .btn > input[type="radio"],
-[data-toggle="buttons"] > .btn > input[type="checkbox"] {
- display: none;
-}
-.input-group {
- position: relative;
- display: table;
- border-collapse: separate;
-}
-.input-group[class*="col-"] {
- float: none;
- padding-right: 0;
- padding-left: 0;
-}
-.input-group .form-control {
- position: relative;
- z-index: 2;
- float: left;
- width: 100%;
- margin-bottom: 0;
-}
-.input-group-lg > .form-control,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn {
- height: 46px;
- padding: 10px 16px;
- font-size: 18px;
- line-height: 1.33;
- border-radius: 6px;
-}
-select.input-group-lg > .form-control,
-select.input-group-lg > .input-group-addon,
-select.input-group-lg > .input-group-btn > .btn {
- height: 46px;
- line-height: 46px;
-}
-textarea.input-group-lg > .form-control,
-textarea.input-group-lg > .input-group-addon,
-textarea.input-group-lg > .input-group-btn > .btn,
-select[multiple].input-group-lg > .form-control,
-select[multiple].input-group-lg > .input-group-addon,
-select[multiple].input-group-lg > .input-group-btn > .btn {
- height: auto;
-}
-.input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn {
- height: 30px;
- padding: 5px 10px;
- font-size: 12px;
- line-height: 1.5;
- border-radius: 3px;
-}
-select.input-group-sm > .form-control,
-select.input-group-sm > .input-group-addon,
-select.input-group-sm > .input-group-btn > .btn {
- height: 30px;
- line-height: 30px;
-}
-textarea.input-group-sm > .form-control,
-textarea.input-group-sm > .input-group-addon,
-textarea.input-group-sm > .input-group-btn > .btn,
-select[multiple].input-group-sm > .form-control,
-select[multiple].input-group-sm > .input-group-addon,
-select[multiple].input-group-sm > .input-group-btn > .btn {
- height: auto;
-}
-.input-group-addon,
-.input-group-btn,
-.input-group .form-control {
- display: table-cell;
-}
-.input-group-addon:not(:first-child):not(:last-child),
-.input-group-btn:not(:first-child):not(:last-child),
-.input-group .form-control:not(:first-child):not(:last-child) {
- border-radius: 0;
-}
-.input-group-addon,
-.input-group-btn {
- width: 1%;
- white-space: nowrap;
- vertical-align: middle;
-}
-.input-group-addon {
- padding: 6px 12px;
- font-size: 14px;
- font-weight: normal;
- line-height: 1;
- color: #555;
- text-align: center;
- background-color: #eee;
- border: 1px solid #ccc;
- border-radius: 4px;
-}
-.input-group-addon.input-sm {
- padding: 5px 10px;
- font-size: 12px;
- border-radius: 3px;
-}
-.input-group-addon.input-lg {
- padding: 10px 16px;
- font-size: 18px;
- border-radius: 6px;
-}
-.input-group-addon input[type="radio"],
-.input-group-addon input[type="checkbox"] {
- margin-top: 0;
-}
-.input-group .form-control:first-child,
-.input-group-addon:first-child,
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group > .btn,
-.input-group-btn:first-child > .dropdown-toggle,
-.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
- border-top-right-radius: 0;
- border-bottom-right-radius: 0;
-}
-.input-group-addon:first-child {
- border-right: 0;
-}
-.input-group .form-control:last-child,
-.input-group-addon:last-child,
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group > .btn,
-.input-group-btn:last-child > .dropdown-toggle,
-.input-group-btn:first-child > .btn:not(:first-child),
-.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
- border-top-left-radius: 0;
- border-bottom-left-radius: 0;
-}
-.input-group-addon:last-child {
- border-left: 0;
-}
-.input-group-btn {
- position: relative;
- font-size: 0;
- white-space: nowrap;
-}
-.input-group-btn > .btn {
- position: relative;
-}
-.input-group-btn > .btn + .btn {
- margin-left: -1px;
-}
-.input-group-btn > .btn:hover,
-.input-group-btn > .btn:focus,
-.input-group-btn > .btn:active {
- z-index: 2;
-}
-.input-group-btn:first-child > .btn,
-.input-group-btn:first-child > .btn-group {
- margin-right: -1px;
-}
-.input-group-btn:last-child > .btn,
-.input-group-btn:last-child > .btn-group {
- margin-left: -1px;
-}
-.nav {
- padding-left: 0;
- margin-bottom: 0;
- list-style: none;
-}
-.nav > li {
- position: relative;
- display: block;
-}
-.nav > li > a {
- position: relative;
- display: block;
- padding: 10px 15px;
-}
-.nav > li > a:hover,
-.nav > li > a:focus {
- text-decoration: none;
- background-color: #eee;
-}
-.nav > li.disabled > a {
- color: #999;
-}
-.nav > li.disabled > a:hover,
-.nav > li.disabled > a:focus {
- color: #999;
- text-decoration: none;
- cursor: not-allowed;
- background-color: transparent;
-}
-.nav .open > a,
-.nav .open > a:hover,
-.nav .open > a:focus {
- background-color: #eee;
- border-color: #428bca;
-}
-.nav .nav-divider {
- height: 1px;
- margin: 9px 0;
- overflow: hidden;
- background-color: #e5e5e5;
-}
-.nav > li > a > img {
- max-width: none;
-}
-.nav-tabs {
- border-bottom: 1px solid #ddd;
-}
-.nav-tabs > li {
- float: left;
- margin-bottom: -1px;
-}
-.nav-tabs > li > a {
- margin-right: 2px;
- line-height: 1.42857143;
- border: 1px solid transparent;
- border-radius: 4px 4px 0 0;
-}
-.nav-tabs > li > a:hover {
- border-color: #eee #eee #ddd;
-}
-.nav-tabs > li.active > a,
-.nav-tabs > li.active > a:hover,
-.nav-tabs > li.active > a:focus {
- color: #555;
- cursor: default;
- background-color: #fff;
- border: 1px solid #ddd;
- border-bottom-color: transparent;
-}
-.nav-tabs.nav-justified {
- width: 100%;
- border-bottom: 0;
-}
-.nav-tabs.nav-justified > li {
- float: none;
-}
-.nav-tabs.nav-justified > li > a {
- margin-bottom: 5px;
- text-align: center;
-}
-.nav-tabs.nav-justified > .dropdown .dropdown-menu {
- top: auto;
- left: auto;
-}
-@media (min-width: 768px) {
- .nav-tabs.nav-justified > li {
- display: table-cell;
- width: 1%;
- }
- .nav-tabs.nav-justified > li > a {
- margin-bottom: 0;
- }
-}
-.nav-tabs.nav-justified > li > a {
- margin-right: 0;
- border-radius: 4px;
-}
-.nav-tabs.nav-justified > .active > a,
-.nav-tabs.nav-justified > .active > a:hover,
-.nav-tabs.nav-justified > .active > a:focus {
- border: 1px solid #ddd;
-}
-@media (min-width: 768px) {
- .nav-tabs.nav-justified > li > a {
- border-bottom: 1px solid #ddd;
- border-radius: 4px 4px 0 0;
- }
- .nav-tabs.nav-justified > .active > a,
- .nav-tabs.nav-justified > .active > a:hover,
- .nav-tabs.nav-justified > .active > a:focus {
- border-bottom-color: #fff;
- }
-}
-.nav-pills > li {
- float: left;
-}
-.nav-pills > li > a {
- border-radius: 4px;
-}
-.nav-pills > li + li {
- margin-left: 2px;
-}
-.nav-pills > li.active > a,
-.nav-pills > li.active > a:hover,
-.nav-pills > li.active > a:focus {
- color: #fff;
- background-color: #428bca;
-}
-.nav-stacked > li {
- float: none;
-}
-.nav-stacked > li + li {
- margin-top: 2px;
- margin-left: 0;
-}
-.nav-justified {
- width: 100%;
-}
-.nav-justified > li {
- float: none;
-}
-.nav-justified > li > a {
- margin-bottom: 5px;
- text-align: center;
-}
-.nav-justified > .dropdown .dropdown-menu {
- top: auto;
- left: auto;
-}
-@media (min-width: 768px) {
- .nav-justified > li {
- display: table-cell;
- width: 1%;
- }
- .nav-justified > li > a {
- margin-bottom: 0;
- }
-}
-.nav-tabs-justified {
- border-bottom: 0;
-}
-.nav-tabs-justified > li > a {
- margin-right: 0;
- border-radius: 4px;
-}
-.nav-tabs-justified > .active > a,
-.nav-tabs-justified > .active > a:hover,
-.nav-tabs-justified > .active > a:focus {
- border: 1px solid #ddd;
-}
-@media (min-width: 768px) {
- .nav-tabs-justified > li > a {
- border-bottom: 1px solid #ddd;
- border-radius: 4px 4px 0 0;
- }
- .nav-tabs-justified > .active > a,
- .nav-tabs-justified > .active > a:hover,
- .nav-tabs-justified > .active > a:focus {
- border-bottom-color: #fff;
- }
-}
-.tab-content > .tab-pane {
- display: none;
-}
-.tab-content > .active {
- display: block;
-}
-.nav-tabs .dropdown-menu {
- margin-top: -1px;
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-.navbar {
- position: relative;
- min-height: 50px;
- margin-bottom: 20px;
- border: 1px solid transparent;
-}
-@media (min-width: 768px) {
- .navbar {
- border-radius: 4px;
- }
-}
-@media (min-width: 768px) {
- .navbar-header {
- float: left;
- }
-}
-.navbar-collapse {
- max-height: 340px;
- padding-right: 15px;
- padding-left: 15px;
- overflow-x: visible;
- -webkit-overflow-scrolling: touch;
- border-top: 1px solid transparent;
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
-}
-.navbar-collapse.in {
- overflow-y: auto;
-}
-@media (min-width: 768px) {
- .navbar-collapse {
- width: auto;
- border-top: 0;
- box-shadow: none;
- }
- .navbar-collapse.collapse {
- display: block !important;
- height: auto !important;
- padding-bottom: 0;
- overflow: visible !important;
- }
- .navbar-collapse.in {
- overflow-y: visible;
- }
- .navbar-fixed-top .navbar-collapse,
- .navbar-static-top .navbar-collapse,
- .navbar-fixed-bottom .navbar-collapse {
- padding-right: 0;
- padding-left: 0;
- }
-}
-.container > .navbar-header,
-.container-fluid > .navbar-header,
-.container > .navbar-collapse,
-.container-fluid > .navbar-collapse {
- margin-right: -15px;
- margin-left: -15px;
-}
-@media (min-width: 768px) {
- .container > .navbar-header,
- .container-fluid > .navbar-header,
- .container > .navbar-collapse,
- .container-fluid > .navbar-collapse {
- margin-right: 0;
- margin-left: 0;
- }
-}
-.navbar-static-top {
- z-index: 1000;
- border-width: 0 0 1px;
-}
-@media (min-width: 768px) {
- .navbar-static-top {
- border-radius: 0;
- }
-}
-.navbar-fixed-top,
-.navbar-fixed-bottom {
- position: fixed;
- right: 0;
- left: 0;
- z-index: 1030;
-}
-@media (min-width: 768px) {
- .navbar-fixed-top,
- .navbar-fixed-bottom {
- border-radius: 0;
- }
-}
-.navbar-fixed-top {
- top: 0;
- border-width: 0 0 1px;
-}
-.navbar-fixed-bottom {
- bottom: 0;
- margin-bottom: 0;
- border-width: 1px 0 0;
-}
-.navbar-brand {
- float: left;
- height: 50px;
- padding: 15px 15px;
- font-size: 18px;
- line-height: 20px;
-}
-.navbar-brand:hover,
-.navbar-brand:focus {
- text-decoration: none;
-}
-@media (min-width: 768px) {
- .navbar > .container .navbar-brand,
- .navbar > .container-fluid .navbar-brand {
- margin-left: -15px;
- }
-}
-.navbar-toggle {
- position: relative;
- float: right;
- padding: 9px 10px;
- margin-top: 8px;
- margin-right: 15px;
- margin-bottom: 8px;
- background-color: transparent;
- background-image: none;
- border: 1px solid transparent;
- border-radius: 4px;
-}
-.navbar-toggle:focus {
- outline: none;
-}
-.navbar-toggle .icon-bar {
- display: block;
- width: 22px;
- height: 2px;
- border-radius: 1px;
-}
-.navbar-toggle .icon-bar + .icon-bar {
- margin-top: 4px;
-}
-@media (min-width: 768px) {
- .navbar-toggle {
- display: none;
- }
-}
-.navbar-nav {
- margin: 7.5px -15px;
-}
-.navbar-nav > li > a {
- padding-top: 10px;
- padding-bottom: 10px;
- line-height: 20px;
-}
-@media (max-width: 767px) {
- .navbar-nav .open .dropdown-menu {
- position: static;
- float: none;
- width: auto;
- margin-top: 0;
- background-color: transparent;
- border: 0;
- box-shadow: none;
- }
- .navbar-nav .open .dropdown-menu > li > a,
- .navbar-nav .open .dropdown-menu .dropdown-header {
- padding: 5px 15px 5px 25px;
- }
- .navbar-nav .open .dropdown-menu > li > a {
- line-height: 20px;
- }
- .navbar-nav .open .dropdown-menu > li > a:hover,
- .navbar-nav .open .dropdown-menu > li > a:focus {
- background-image: none;
- }
-}
-@media (min-width: 768px) {
- .navbar-nav {
- float: left;
- margin: 0;
- }
- .navbar-nav > li {
- float: left;
- }
- .navbar-nav > li > a {
- padding-top: 15px;
- padding-bottom: 15px;
- }
- .navbar-nav.navbar-right:last-child {
- margin-right: -15px;
- }
-}
-@media (min-width: 768px) {
- .navbar-left {
- float: left !important;
- }
- .navbar-right {
- float: right !important;
- }
-}
-.navbar-form {
- padding: 10px 15px;
- margin-top: 8px;
- margin-right: -15px;
- margin-bottom: 8px;
- margin-left: -15px;
- border-top: 1px solid transparent;
- border-bottom: 1px solid transparent;
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
-}
-@media (min-width: 768px) {
- .navbar-form .form-group {
- display: inline-block;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .navbar-form .form-control {
- display: inline-block;
- width: auto;
- vertical-align: middle;
- }
- .navbar-form .input-group > .form-control {
- width: 100%;
- }
- .navbar-form .control-label {
- margin-bottom: 0;
- vertical-align: middle;
- }
- .navbar-form .radio,
- .navbar-form .checkbox {
- display: inline-block;
- padding-left: 0;
- margin-top: 0;
- margin-bottom: 0;
- vertical-align: middle;
- }
- .navbar-form .radio input[type="radio"],
- .navbar-form .checkbox input[type="checkbox"] {
- float: none;
- margin-left: 0;
- }
- .navbar-form .has-feedback .form-control-feedback {
- top: 0;
- }
-}
-@media (max-width: 767px) {
- .navbar-form .form-group {
- margin-bottom: 5px;
- }
-}
-@media (min-width: 768px) {
- .navbar-form {
- width: auto;
- padding-top: 0;
- padding-bottom: 0;
- margin-right: 0;
- margin-left: 0;
- border: 0;
- -webkit-box-shadow: none;
- box-shadow: none;
- }
- .navbar-form.navbar-right:last-child {
- margin-right: -15px;
- }
-}
-.navbar-nav > li > .dropdown-menu {
- margin-top: 0;
- border-top-left-radius: 0;
- border-top-right-radius: 0;
-}
-.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-.navbar-btn {
- margin-top: 8px;
- margin-bottom: 8px;
-}
-.navbar-btn.btn-sm {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-.navbar-btn.btn-xs {
- margin-top: 14px;
- margin-bottom: 14px;
-}
-.navbar-text {
- margin-top: 15px;
- margin-bottom: 15px;
-}
-@media (min-width: 768px) {
- .navbar-text {
- float: left;
- margin-right: 15px;
- margin-left: 15px;
- }
- .navbar-text.navbar-right:last-child {
- margin-right: 0;
- }
-}
-.navbar-default {
- background-color: #f8f8f8;
- border-color: #e7e7e7;
-}
-.navbar-default .navbar-brand {
- color: #777;
-}
-.navbar-default .navbar-brand:hover,
-.navbar-default .navbar-brand:focus {
- color: #5e5e5e;
- background-color: transparent;
-}
-.navbar-default .navbar-text {
- color: #777;
-}
-.navbar-default .navbar-nav > li > a {
- color: #777;
-}
-.navbar-default .navbar-nav > li > a:hover,
-.navbar-default .navbar-nav > li > a:focus {
- color: #333;
- background-color: transparent;
-}
-.navbar-default .navbar-nav > .active > a,
-.navbar-default .navbar-nav > .active > a:hover,
-.navbar-default .navbar-nav > .active > a:focus {
- color: #555;
- background-color: #e7e7e7;
-}
-.navbar-default .navbar-nav > .disabled > a,
-.navbar-default .navbar-nav > .disabled > a:hover,
-.navbar-default .navbar-nav > .disabled > a:focus {
- color: #ccc;
- background-color: transparent;
-}
-.navbar-default .navbar-toggle {
- border-color: #ddd;
-}
-.navbar-default .navbar-toggle:hover,
-.navbar-default .navbar-toggle:focus {
- background-color: #ddd;
-}
-.navbar-default .navbar-toggle .icon-bar {
- background-color: #888;
-}
-.navbar-default .navbar-collapse,
-.navbar-default .navbar-form {
- border-color: #e7e7e7;
-}
-.navbar-default .navbar-nav > .open > a,
-.navbar-default .navbar-nav > .open > a:hover,
-.navbar-default .navbar-nav > .open > a:focus {
- color: #555;
- background-color: #e7e7e7;
-}
-@media (max-width: 767px) {
- .navbar-default .navbar-nav .open .dropdown-menu > li > a {
- color: #777;
- }
- .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
- .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
- color: #333;
- background-color: transparent;
- }
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
- .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
- color: #555;
- background-color: #e7e7e7;
- }
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
- .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
- color: #ccc;
- background-color: transparent;
- }
-}
-.navbar-default .navbar-link {
- color: #777;
-}
-.navbar-default .navbar-link:hover {
- color: #333;
-}
-.navbar-inverse {
- background-color: #222;
- border-color: #080808;
-}
-.navbar-inverse .navbar-brand {
- color: #999;
-}
-.navbar-inverse .navbar-brand:hover,
-.navbar-inverse .navbar-brand:focus {
- color: #fff;
- background-color: transparent;
-}
-.navbar-inverse .navbar-text {
- color: #999;
-}
-.navbar-inverse .navbar-nav > li > a {
- color: #999;
-}
-.navbar-inverse .navbar-nav > li > a:hover,
-.navbar-inverse .navbar-nav > li > a:focus {
- color: #fff;
- background-color: transparent;
-}
-.navbar-inverse .navbar-nav > .active > a,
-.navbar-inverse .navbar-nav > .active > a:hover,
-.navbar-inverse .navbar-nav > .active > a:focus {
- color: #fff;
- background-color: #080808;
-}
-.navbar-inverse .navbar-nav > .disabled > a,
-.navbar-inverse .navbar-nav > .disabled > a:hover,
-.navbar-inverse .navbar-nav > .disabled > a:focus {
- color: #444;
- background-color: transparent;
-}
-.navbar-inverse .navbar-toggle {
- border-color: #333;
-}
-.navbar-inverse .navbar-toggle:hover,
-.navbar-inverse .navbar-toggle:focus {
- background-color: #333;
-}
-.navbar-inverse .navbar-toggle .icon-bar {
- background-color: #fff;
-}
-.navbar-inverse .navbar-collapse,
-.navbar-inverse .navbar-form {
- border-color: #101010;
-}
-.navbar-inverse .navbar-nav > .open > a,
-.navbar-inverse .navbar-nav > .open > a:hover,
-.navbar-inverse .navbar-nav > .open > a:focus {
- color: #fff;
- background-color: #080808;
-}
-@media (max-width: 767px) {
- .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
- border-color: #080808;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
- background-color: #080808;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
- color: #999;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
- .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
- color: #fff;
- background-color: transparent;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
- color: #fff;
- background-color: #080808;
- }
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
- .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
- color: #444;
- background-color: transparent;
- }
-}
-.navbar-inverse .navbar-link {
- color: #999;
-}
-.navbar-inverse .navbar-link:hover {
- color: #fff;
-}
-.breadcrumb {
- padding: 8px 15px;
- margin-bottom: 20px;
- list-style: none;
- background-color: #f5f5f5;
- border-radius: 4px;
-}
-.breadcrumb > li {
- display: inline-block;
-}
-.breadcrumb > li + li:before {
- padding: 0 5px;
- color: #ccc;
- content: "/\00a0";
-}
-.breadcrumb > .active {
- color: #999;
-}
-.pagination {
- display: inline-block;
- padding-left: 0;
- margin: 20px 0;
- border-radius: 4px;
-}
-.pagination > li {
- display: inline;
-}
-.pagination > li > a,
-.pagination > li > span {
- position: relative;
- float: left;
- padding: 6px 12px;
- margin-left: -1px;
- line-height: 1.42857143;
- color: #428bca;
- text-decoration: none;
- background-color: #fff;
- border: 1px solid #ddd;
-}
-.pagination > li:first-child > a,
-.pagination > li:first-child > span {
- margin-left: 0;
- border-top-left-radius: 4px;
- border-bottom-left-radius: 4px;
-}
-.pagination > li:last-child > a,
-.pagination > li:last-child > span {
- border-top-right-radius: 4px;
- border-bottom-right-radius: 4px;
-}
-.pagination > li > a:hover,
-.pagination > li > span:hover,
-.pagination > li > a:focus,
-.pagination > li > span:focus {
- color: #2a6496;
- background-color: #eee;
- border-color: #ddd;
-}
-.pagination > .active > a,
-.pagination > .active > span,
-.pagination > .active > a:hover,
-.pagination > .active > span:hover,
-.pagination > .active > a:focus,
-.pagination > .active > span:focus {
- z-index: 2;
- color: #fff;
- cursor: default;
- background-color: #428bca;
- border-color: #428bca;
-}
-.pagination > .disabled > span,
-.pagination > .disabled > span:hover,
-.pagination > .disabled > span:focus,
-.pagination > .disabled > a,
-.pagination > .disabled > a:hover,
-.pagination > .disabled > a:focus {
- color: #999;
- cursor: not-allowed;
- background-color: #fff;
- border-color: #ddd;
-}
-.pagination-lg > li > a,
-.pagination-lg > li > span {
- padding: 10px 16px;
- font-size: 18px;
-}
-.pagination-lg > li:first-child > a,
-.pagination-lg > li:first-child > span {
- border-top-left-radius: 6px;
- border-bottom-left-radius: 6px;
-}
-.pagination-lg > li:last-child > a,
-.pagination-lg > li:last-child > span {
- border-top-right-radius: 6px;
- border-bottom-right-radius: 6px;
-}
-.pagination-sm > li > a,
-.pagination-sm > li > span {
- padding: 5px 10px;
- font-size: 12px;
-}
-.pagination-sm > li:first-child > a,
-.pagination-sm > li:first-child > span {
- border-top-left-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-.pagination-sm > li:last-child > a,
-.pagination-sm > li:last-child > span {
- border-top-right-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-.pager {
- padding-left: 0;
- margin: 20px 0;
- text-align: center;
- list-style: none;
-}
-.pager li {
- display: inline;
-}
-.pager li > a,
-.pager li > span {
- display: inline-block;
- padding: 5px 14px;
- background-color: #fff;
- border: 1px solid #ddd;
- border-radius: 15px;
-}
-.pager li > a:hover,
-.pager li > a:focus {
- text-decoration: none;
- background-color: #eee;
-}
-.pager .next > a,
-.pager .next > span {
- float: right;
-}
-.pager .previous > a,
-.pager .previous > span {
- float: left;
-}
-.pager .disabled > a,
-.pager .disabled > a:hover,
-.pager .disabled > a:focus,
-.pager .disabled > span {
- color: #999;
- cursor: not-allowed;
- background-color: #fff;
-}
-.label {
- display: inline;
- padding: .2em .6em .3em;
- font-size: 75%;
- font-weight: bold;
- line-height: 1;
- color: #fff;
- text-align: center;
- white-space: nowrap;
- vertical-align: baseline;
- border-radius: .25em;
-}
-.label[href]:hover,
-.label[href]:focus {
- color: #fff;
- text-decoration: none;
- cursor: pointer;
-}
-.label:empty {
- display: none;
-}
-.btn .label {
- position: relative;
- top: -1px;
-}
-.label-default {
- background-color: #999;
-}
-.label-default[href]:hover,
-.label-default[href]:focus {
- background-color: #808080;
-}
-.label-primary {
- background-color: #428bca;
-}
-.label-primary[href]:hover,
-.label-primary[href]:focus {
- background-color: #3071a9;
-}
-.label-success {
- background-color: #5cb85c;
-}
-.label-success[href]:hover,
-.label-success[href]:focus {
- background-color: #449d44;
-}
-.label-info {
- background-color: #5bc0de;
-}
-.label-info[href]:hover,
-.label-info[href]:focus {
- background-color: #31b0d5;
-}
-.label-warning {
- background-color: #f0ad4e;
-}
-.label-warning[href]:hover,
-.label-warning[href]:focus {
- background-color: #ec971f;
-}
-.label-danger {
- background-color: #d9534f;
-}
-.label-danger[href]:hover,
-.label-danger[href]:focus {
- background-color: #c9302c;
-}
-.badge {
- display: inline-block;
- min-width: 10px;
- padding: 3px 7px;
- font-size: 12px;
- font-weight: bold;
- line-height: 1;
- color: #fff;
- text-align: center;
- white-space: nowrap;
- vertical-align: baseline;
- background-color: #999;
- border-radius: 10px;
-}
-.badge:empty {
- display: none;
-}
-.btn .badge {
- position: relative;
- top: -1px;
-}
-.btn-xs .badge {
- top: 0;
- padding: 1px 5px;
-}
-a.badge:hover,
-a.badge:focus {
- color: #fff;
- text-decoration: none;
- cursor: pointer;
-}
-a.list-group-item.active > .badge,
-.nav-pills > .active > a > .badge {
- color: #428bca;
- background-color: #fff;
-}
-.nav-pills > li > a > .badge {
- margin-left: 3px;
-}
-.jumbotron {
- padding: 30px;
- margin-bottom: 30px;
- color: inherit;
- background-color: #eee;
-}
-.jumbotron h1,
-.jumbotron .h1 {
- color: inherit;
-}
-.jumbotron p {
- margin-bottom: 15px;
- font-size: 21px;
- font-weight: 200;
-}
-.container .jumbotron {
- border-radius: 6px;
-}
-.jumbotron .container {
- max-width: 100%;
-}
-@media screen and (min-width: 768px) {
- .jumbotron {
- padding-top: 48px;
- padding-bottom: 48px;
- }
- .container .jumbotron {
- padding-right: 60px;
- padding-left: 60px;
- }
- .jumbotron h1,
- .jumbotron .h1 {
- font-size: 63px;
- }
-}
-.thumbnail {
- display: block;
- padding: 4px;
- margin-bottom: 20px;
- line-height: 1.42857143;
- background-color: #fff;
- border: 1px solid #ddd;
- border-radius: 4px;
- -webkit-transition: all .2s ease-in-out;
- transition: all .2s ease-in-out;
-}
-.thumbnail > img,
-.thumbnail a > img {
- margin-right: auto;
- margin-left: auto;
-}
-a.thumbnail:hover,
-a.thumbnail:focus,
-a.thumbnail.active {
- border-color: #428bca;
-}
-.thumbnail .caption {
- padding: 9px;
- color: #333;
-}
-.alert {
- padding: 15px;
- margin-bottom: 20px;
- border: 1px solid transparent;
- border-radius: 4px;
-}
-.alert h4 {
- margin-top: 0;
- color: inherit;
-}
-.alert .alert-link {
- font-weight: bold;
-}
-.alert > p,
-.alert > ul {
- margin-bottom: 0;
-}
-.alert > p + p {
- margin-top: 5px;
-}
-.alert-dismissable {
- padding-right: 35px;
-}
-.alert-dismissable .close {
- position: relative;
- top: -2px;
- right: -21px;
- color: inherit;
-}
-.alert-success {
- color: #3c763d;
- background-color: #dff0d8;
- border-color: #d6e9c6;
-}
-.alert-success hr {
- border-top-color: #c9e2b3;
-}
-.alert-success .alert-link {
- color: #2b542c;
-}
-.alert-info {
- color: #31708f;
- background-color: #d9edf7;
- border-color: #bce8f1;
-}
-.alert-info hr {
- border-top-color: #a6e1ec;
-}
-.alert-info .alert-link {
- color: #245269;
-}
-.alert-warning {
- color: #8a6d3b;
- background-color: #fcf8e3;
- border-color: #faebcc;
-}
-.alert-warning hr {
- border-top-color: #f7e1b5;
-}
-.alert-warning .alert-link {
- color: #66512c;
-}
-.alert-danger {
- color: #a94442;
- background-color: #f2dede;
- border-color: #ebccd1;
-}
-.alert-danger hr {
- border-top-color: #e4b9c0;
-}
-.alert-danger .alert-link {
- color: #843534;
-}
-@-webkit-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-@keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-.progress {
- height: 20px;
- margin-bottom: 20px;
- overflow: hidden;
- background-color: #f5f5f5;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
-}
-.progress-bar {
- float: left;
- width: 0;
- height: 100%;
- font-size: 12px;
- line-height: 20px;
- color: #fff;
- text-align: center;
- background-color: #428bca;
- -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
- box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
- -webkit-transition: width .6s ease;
- transition: width .6s ease;
-}
-.progress-striped .progress-bar {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-size: 40px 40px;
-}
-.progress.active .progress-bar {
- -webkit-animation: progress-bar-stripes 2s linear infinite;
- animation: progress-bar-stripes 2s linear infinite;
-}
-.progress-bar-success {
- background-color: #5cb85c;
-}
-.progress-striped .progress-bar-success {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.progress-bar-info {
- background-color: #5bc0de;
-}
-.progress-striped .progress-bar-info {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.progress-bar-warning {
- background-color: #f0ad4e;
-}
-.progress-striped .progress-bar-warning {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.progress-bar-danger {
- background-color: #d9534f;
-}
-.progress-striped .progress-bar-danger {
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.media,
-.media-body {
- overflow: hidden;
- zoom: 1;
-}
-.media,
-.media .media {
- margin-top: 15px;
-}
-.media:first-child {
- margin-top: 0;
-}
-.media-object {
- display: block;
-}
-.media-heading {
- margin: 0 0 5px;
-}
-.media > .pull-left {
- margin-right: 10px;
-}
-.media > .pull-right {
- margin-left: 10px;
-}
-.media-list {
- padding-left: 0;
- list-style: none;
-}
-.list-group {
- padding-left: 0;
- margin-bottom: 20px;
-}
-.list-group-item {
- position: relative;
- display: block;
- padding: 10px 15px;
- margin-bottom: -1px;
- background-color: #fff;
- border: 1px solid #ddd;
-}
-.list-group-item:first-child {
- border-top-left-radius: 4px;
- border-top-right-radius: 4px;
-}
-.list-group-item:last-child {
- margin-bottom: 0;
- border-bottom-right-radius: 4px;
- border-bottom-left-radius: 4px;
-}
-.list-group-item > .badge {
- float: right;
-}
-.list-group-item > .badge + .badge {
- margin-right: 5px;
-}
-a.list-group-item {
- color: #555;
-}
-a.list-group-item .list-group-item-heading {
- color: #333;
-}
-a.list-group-item:hover,
-a.list-group-item:focus {
- text-decoration: none;
- background-color: #f5f5f5;
-}
-a.list-group-item.active,
-a.list-group-item.active:hover,
-a.list-group-item.active:focus {
- z-index: 2;
- color: #fff;
- background-color: #428bca;
- border-color: #428bca;
-}
-a.list-group-item.active .list-group-item-heading,
-a.list-group-item.active:hover .list-group-item-heading,
-a.list-group-item.active:focus .list-group-item-heading {
- color: inherit;
-}
-a.list-group-item.active .list-group-item-text,
-a.list-group-item.active:hover .list-group-item-text,
-a.list-group-item.active:focus .list-group-item-text {
- color: #e1edf7;
-}
-.list-group-item-success {
- color: #3c763d;
- background-color: #dff0d8;
-}
-a.list-group-item-success {
- color: #3c763d;
-}
-a.list-group-item-success .list-group-item-heading {
- color: inherit;
-}
-a.list-group-item-success:hover,
-a.list-group-item-success:focus {
- color: #3c763d;
- background-color: #d0e9c6;
-}
-a.list-group-item-success.active,
-a.list-group-item-success.active:hover,
-a.list-group-item-success.active:focus {
- color: #fff;
- background-color: #3c763d;
- border-color: #3c763d;
-}
-.list-group-item-info {
- color: #31708f;
- background-color: #d9edf7;
-}
-a.list-group-item-info {
- color: #31708f;
-}
-a.list-group-item-info .list-group-item-heading {
- color: inherit;
-}
-a.list-group-item-info:hover,
-a.list-group-item-info:focus {
- color: #31708f;
- background-color: #c4e3f3;
-}
-a.list-group-item-info.active,
-a.list-group-item-info.active:hover,
-a.list-group-item-info.active:focus {
- color: #fff;
- background-color: #31708f;
- border-color: #31708f;
-}
-.list-group-item-warning {
- color: #8a6d3b;
- background-color: #fcf8e3;
-}
-a.list-group-item-warning {
- color: #8a6d3b;
-}
-a.list-group-item-warning .list-group-item-heading {
- color: inherit;
-}
-a.list-group-item-warning:hover,
-a.list-group-item-warning:focus {
- color: #8a6d3b;
- background-color: #faf2cc;
-}
-a.list-group-item-warning.active,
-a.list-group-item-warning.active:hover,
-a.list-group-item-warning.active:focus {
- color: #fff;
- background-color: #8a6d3b;
- border-color: #8a6d3b;
-}
-.list-group-item-danger {
- color: #a94442;
- background-color: #f2dede;
-}
-a.list-group-item-danger {
- color: #a94442;
-}
-a.list-group-item-danger .list-group-item-heading {
- color: inherit;
-}
-a.list-group-item-danger:hover,
-a.list-group-item-danger:focus {
- color: #a94442;
- background-color: #ebcccc;
-}
-a.list-group-item-danger.active,
-a.list-group-item-danger.active:hover,
-a.list-group-item-danger.active:focus {
- color: #fff;
- background-color: #a94442;
- border-color: #a94442;
-}
-.list-group-item-heading {
- margin-top: 0;
- margin-bottom: 5px;
-}
-.list-group-item-text {
- margin-bottom: 0;
- line-height: 1.3;
-}
-.panel {
- margin-bottom: 20px;
- background-color: #fff;
- border: 1px solid transparent;
- border-radius: 4px;
- -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
- box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
-}
-.panel-body {
- padding: 15px;
-}
-.panel-heading {
- padding: 10px 15px;
- border-bottom: 1px solid transparent;
- border-top-left-radius: 3px;
- border-top-right-radius: 3px;
-}
-.panel-heading > .dropdown .dropdown-toggle {
- color: inherit;
-}
-.panel-title {
- margin-top: 0;
- margin-bottom: 0;
- font-size: 16px;
- color: inherit;
-}
-.panel-title > a {
- color: inherit;
-}
-.panel-footer {
- padding: 10px 15px;
- background-color: #f5f5f5;
- border-top: 1px solid #ddd;
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-.panel > .list-group {
- margin-bottom: 0;
-}
-.panel > .list-group .list-group-item {
- border-width: 1px 0;
- border-radius: 0;
-}
-.panel > .list-group:first-child .list-group-item:first-child {
- border-top: 0;
- border-top-left-radius: 3px;
- border-top-right-radius: 3px;
-}
-.panel > .list-group:last-child .list-group-item:last-child {
- border-bottom: 0;
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-.panel-heading + .list-group .list-group-item:first-child {
- border-top-width: 0;
-}
-.panel > .table,
-.panel > .table-responsive > .table {
- margin-bottom: 0;
-}
-.panel > .table:first-child,
-.panel > .table-responsive:first-child > .table:first-child {
- border-top-left-radius: 3px;
- border-top-right-radius: 3px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
-.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
- border-top-left-radius: 3px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
-.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
- border-top-right-radius: 3px;
-}
-.panel > .table:last-child,
-.panel > .table-responsive:last-child > .table:last-child {
- border-bottom-right-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
-.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
- border-bottom-left-radius: 3px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
-.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
- border-bottom-right-radius: 3px;
-}
-.panel > .panel-body + .table,
-.panel > .panel-body + .table-responsive {
- border-top: 1px solid #ddd;
-}
-.panel > .table > tbody:first-child > tr:first-child th,
-.panel > .table > tbody:first-child > tr:first-child td {
- border-top: 0;
-}
-.panel > .table-bordered,
-.panel > .table-responsive > .table-bordered {
- border: 0;
-}
-.panel > .table-bordered > thead > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
-.panel > .table-bordered > tbody > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
-.panel > .table-bordered > tfoot > tr > th:first-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
-.panel > .table-bordered > thead > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
-.panel > .table-bordered > tbody > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
-.panel > .table-bordered > tfoot > tr > td:first-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
- border-left: 0;
-}
-.panel > .table-bordered > thead > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
-.panel > .table-bordered > tbody > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
-.panel > .table-bordered > tfoot > tr > th:last-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
-.panel > .table-bordered > thead > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
-.panel > .table-bordered > tbody > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
-.panel > .table-bordered > tfoot > tr > td:last-child,
-.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
- border-right: 0;
-}
-.panel > .table-bordered > thead > tr:first-child > td,
-.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
-.panel > .table-bordered > tbody > tr:first-child > td,
-.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
-.panel > .table-bordered > thead > tr:first-child > th,
-.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
-.panel > .table-bordered > tbody > tr:first-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
- border-bottom: 0;
-}
-.panel > .table-bordered > tbody > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
-.panel > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
-.panel > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
-.panel > .table-bordered > tfoot > tr:last-child > th,
-.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
- border-bottom: 0;
-}
-.panel > .table-responsive {
- margin-bottom: 0;
- border: 0;
-}
-.panel-group {
- margin-bottom: 20px;
-}
-.panel-group .panel {
- margin-bottom: 0;
- overflow: hidden;
- border-radius: 4px;
-}
-.panel-group .panel + .panel {
- margin-top: 5px;
-}
-.panel-group .panel-heading {
- border-bottom: 0;
-}
-.panel-group .panel-heading + .panel-collapse .panel-body {
- border-top: 1px solid #ddd;
-}
-.panel-group .panel-footer {
- border-top: 0;
-}
-.panel-group .panel-footer + .panel-collapse .panel-body {
- border-bottom: 1px solid #ddd;
-}
-.panel-default {
- border-color: #ddd;
-}
-.panel-default > .panel-heading {
- color: #333;
- background-color: #f5f5f5;
- border-color: #ddd;
-}
-.panel-default > .panel-heading + .panel-collapse .panel-body {
- border-top-color: #ddd;
-}
-.panel-default > .panel-footer + .panel-collapse .panel-body {
- border-bottom-color: #ddd;
-}
-.panel-primary {
- border-color: #428bca;
-}
-.panel-primary > .panel-heading {
- color: #fff;
- background-color: #428bca;
- border-color: #428bca;
-}
-.panel-primary > .panel-heading + .panel-collapse .panel-body {
- border-top-color: #428bca;
-}
-.panel-primary > .panel-footer + .panel-collapse .panel-body {
- border-bottom-color: #428bca;
-}
-.panel-success {
- border-color: #d6e9c6;
-}
-.panel-success > .panel-heading {
- color: #3c763d;
- background-color: #dff0d8;
- border-color: #d6e9c6;
-}
-.panel-success > .panel-heading + .panel-collapse .panel-body {
- border-top-color: #d6e9c6;
-}
-.panel-success > .panel-footer + .panel-collapse .panel-body {
- border-bottom-color: #d6e9c6;
-}
-.panel-info {
- border-color: #bce8f1;
-}
-.panel-info > .panel-heading {
- color: #31708f;
- background-color: #d9edf7;
- border-color: #bce8f1;
-}
-.panel-info > .panel-heading + .panel-collapse .panel-body {
- border-top-color: #bce8f1;
-}
-.panel-info > .panel-footer + .panel-collapse .panel-body {
- border-bottom-color: #bce8f1;
-}
-.panel-warning {
- border-color: #faebcc;
-}
-.panel-warning > .panel-heading {
- color: #8a6d3b;
- background-color: #fcf8e3;
- border-color: #faebcc;
-}
-.panel-warning > .panel-heading + .panel-collapse .panel-body {
- border-top-color: #faebcc;
-}
-.panel-warning > .panel-footer + .panel-collapse .panel-body {
- border-bottom-color: #faebcc;
-}
-.panel-danger {
- border-color: #ebccd1;
-}
-.panel-danger > .panel-heading {
- color: #a94442;
- background-color: #f2dede;
- border-color: #ebccd1;
-}
-.panel-danger > .panel-heading + .panel-collapse .panel-body {
- border-top-color: #ebccd1;
-}
-.panel-danger > .panel-footer + .panel-collapse .panel-body {
- border-bottom-color: #ebccd1;
-}
-.well {
- min-height: 20px;
- padding: 19px;
- margin-bottom: 20px;
- background-color: #f5f5f5;
- border: 1px solid #e3e3e3;
- border-radius: 4px;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
-}
-.well blockquote {
- border-color: #ddd;
- border-color: rgba(0, 0, 0, .15);
-}
-.well-lg {
- padding: 24px;
- border-radius: 6px;
-}
-.well-sm {
- padding: 9px;
- border-radius: 3px;
-}
-.close {
- float: right;
- font-size: 21px;
- font-weight: bold;
- line-height: 1;
- color: #000;
- text-shadow: 0 1px 0 #fff;
- filter: alpha(opacity=20);
- opacity: .2;
-}
-.close:hover,
-.close:focus {
- color: #000;
- text-decoration: none;
- cursor: pointer;
- filter: alpha(opacity=50);
- opacity: .5;
-}
-button.close {
- -webkit-appearance: none;
- padding: 0;
- cursor: pointer;
- background: transparent;
- border: 0;
-}
-.modal-open {
- overflow: hidden;
-}
-.modal {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1050;
- display: none;
- overflow: auto;
- overflow-y: scroll;
- -webkit-overflow-scrolling: touch;
- outline: 0;
-}
-.modal.fade .modal-dialog {
- -webkit-transition: -webkit-transform .3s ease-out;
- -moz-transition: -moz-transform .3s ease-out;
- -o-transition: -o-transform .3s ease-out;
- transition: transform .3s ease-out;
- -webkit-transform: translate(0, -25%);
- -ms-transform: translate(0, -25%);
- transform: translate(0, -25%);
-}
-.modal.in .modal-dialog {
- -webkit-transform: translate(0, 0);
- -ms-transform: translate(0, 0);
- transform: translate(0, 0);
-}
-.modal-dialog {
- position: relative;
- width: auto;
- margin: 10px;
-}
-.modal-content {
- position: relative;
- background-color: #fff;
- background-clip: padding-box;
- border: 1px solid #999;
- border: 1px solid rgba(0, 0, 0, .2);
- border-radius: 6px;
- outline: none;
- -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
- box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
-}
-.modal-backdrop {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: 1040;
- background-color: #000;
-}
-.modal-backdrop.fade {
- filter: alpha(opacity=0);
- opacity: 0;
-}
-.modal-backdrop.in {
- filter: alpha(opacity=50);
- opacity: .5;
-}
-.modal-header {
- min-height: 16.42857143px;
- padding: 15px;
- border-bottom: 1px solid #e5e5e5;
-}
-.modal-header .close {
- margin-top: -2px;
-}
-.modal-title {
- margin: 0;
- line-height: 1.42857143;
-}
-.modal-body {
- position: relative;
- padding: 20px;
-}
-.modal-footer {
- padding: 19px 20px 20px;
- margin-top: 15px;
- text-align: right;
- border-top: 1px solid #e5e5e5;
-}
-.modal-footer .btn + .btn {
- margin-bottom: 0;
- margin-left: 5px;
-}
-.modal-footer .btn-group .btn + .btn {
- margin-left: -1px;
-}
-.modal-footer .btn-block + .btn-block {
- margin-left: 0;
-}
-@media (min-width: 768px) {
- .modal-dialog {
- width: 600px;
- margin: 30px auto;
- }
- .modal-content {
- -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
- box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
- }
- .modal-sm {
- width: 300px;
- }
-}
-@media (min-width: 992px) {
- .modal-lg {
- width: 900px;
- }
-}
-.tooltip {
- position: absolute;
- z-index: 1030;
- display: block;
- font-size: 12px;
- line-height: 1.4;
- visibility: visible;
- filter: alpha(opacity=0);
- opacity: 0;
-}
-.tooltip.in {
- filter: alpha(opacity=90);
- opacity: .9;
-}
-.tooltip.top {
- padding: 5px 0;
- margin-top: -3px;
-}
-.tooltip.right {
- padding: 0 5px;
- margin-left: 3px;
-}
-.tooltip.bottom {
- padding: 5px 0;
- margin-top: 3px;
-}
-.tooltip.left {
- padding: 0 5px;
- margin-left: -3px;
-}
-.tooltip-inner {
- max-width: 200px;
- padding: 3px 8px;
- color: #fff;
- text-align: center;
- text-decoration: none;
- background-color: #000;
- border-radius: 4px;
-}
-.tooltip-arrow {
- position: absolute;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
-}
-.tooltip.top .tooltip-arrow {
- bottom: 0;
- left: 50%;
- margin-left: -5px;
- border-width: 5px 5px 0;
- border-top-color: #000;
-}
-.tooltip.top-left .tooltip-arrow {
- bottom: 0;
- left: 5px;
- border-width: 5px 5px 0;
- border-top-color: #000;
-}
-.tooltip.top-right .tooltip-arrow {
- right: 5px;
- bottom: 0;
- border-width: 5px 5px 0;
- border-top-color: #000;
-}
-.tooltip.right .tooltip-arrow {
- top: 50%;
- left: 0;
- margin-top: -5px;
- border-width: 5px 5px 5px 0;
- border-right-color: #000;
-}
-.tooltip.left .tooltip-arrow {
- top: 50%;
- right: 0;
- margin-top: -5px;
- border-width: 5px 0 5px 5px;
- border-left-color: #000;
-}
-.tooltip.bottom .tooltip-arrow {
- top: 0;
- left: 50%;
- margin-left: -5px;
- border-width: 0 5px 5px;
- border-bottom-color: #000;
-}
-.tooltip.bottom-left .tooltip-arrow {
- top: 0;
- left: 5px;
- border-width: 0 5px 5px;
- border-bottom-color: #000;
-}
-.tooltip.bottom-right .tooltip-arrow {
- top: 0;
- right: 5px;
- border-width: 0 5px 5px;
- border-bottom-color: #000;
-}
-.popover {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 1010;
- display: none;
- max-width: 276px;
- padding: 1px;
- text-align: left;
- white-space: normal;
- background-color: #fff;
- background-clip: padding-box;
- border: 1px solid #ccc;
- border: 1px solid rgba(0, 0, 0, .2);
- border-radius: 6px;
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
- box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
-}
-.popover.top {
- margin-top: -10px;
-}
-.popover.right {
- margin-left: 10px;
-}
-.popover.bottom {
- margin-top: 10px;
-}
-.popover.left {
- margin-left: -10px;
-}
-.popover-title {
- padding: 8px 14px;
- margin: 0;
- font-size: 14px;
- font-weight: normal;
- line-height: 18px;
- background-color: #f7f7f7;
- border-bottom: 1px solid #ebebeb;
- border-radius: 5px 5px 0 0;
-}
-.popover-content {
- padding: 9px 14px;
-}
-.popover > .arrow,
-.popover > .arrow:after {
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- border-color: transparent;
- border-style: solid;
-}
-.popover > .arrow {
- border-width: 11px;
-}
-.popover > .arrow:after {
- content: "";
- border-width: 10px;
-}
-.popover.top > .arrow {
- bottom: -11px;
- left: 50%;
- margin-left: -11px;
- border-top-color: #999;
- border-top-color: rgba(0, 0, 0, .25);
- border-bottom-width: 0;
-}
-.popover.top > .arrow:after {
- bottom: 1px;
- margin-left: -10px;
- content: " ";
- border-top-color: #fff;
- border-bottom-width: 0;
-}
-.popover.right > .arrow {
- top: 50%;
- left: -11px;
- margin-top: -11px;
- border-right-color: #999;
- border-right-color: rgba(0, 0, 0, .25);
- border-left-width: 0;
-}
-.popover.right > .arrow:after {
- bottom: -10px;
- left: 1px;
- content: " ";
- border-right-color: #fff;
- border-left-width: 0;
-}
-.popover.bottom > .arrow {
- top: -11px;
- left: 50%;
- margin-left: -11px;
- border-top-width: 0;
- border-bottom-color: #999;
- border-bottom-color: rgba(0, 0, 0, .25);
-}
-.popover.bottom > .arrow:after {
- top: 1px;
- margin-left: -10px;
- content: " ";
- border-top-width: 0;
- border-bottom-color: #fff;
-}
-.popover.left > .arrow {
- top: 50%;
- right: -11px;
- margin-top: -11px;
- border-right-width: 0;
- border-left-color: #999;
- border-left-color: rgba(0, 0, 0, .25);
-}
-.popover.left > .arrow:after {
- right: 1px;
- bottom: -10px;
- content: " ";
- border-right-width: 0;
- border-left-color: #fff;
-}
-.carousel {
- position: relative;
-}
-.carousel-inner {
- position: relative;
- width: 100%;
- overflow: hidden;
-}
-.carousel-inner > .item {
- position: relative;
- display: none;
- -webkit-transition: .6s ease-in-out left;
- transition: .6s ease-in-out left;
-}
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
- line-height: 1;
-}
-.carousel-inner > .active,
-.carousel-inner > .next,
-.carousel-inner > .prev {
- display: block;
-}
-.carousel-inner > .active {
- left: 0;
-}
-.carousel-inner > .next,
-.carousel-inner > .prev {
- position: absolute;
- top: 0;
- width: 100%;
-}
-.carousel-inner > .next {
- left: 100%;
-}
-.carousel-inner > .prev {
- left: -100%;
-}
-.carousel-inner > .next.left,
-.carousel-inner > .prev.right {
- left: 0;
-}
-.carousel-inner > .active.left {
- left: -100%;
-}
-.carousel-inner > .active.right {
- left: 100%;
-}
-.carousel-control {
- position: absolute;
- top: 0;
- bottom: 0;
- left: 0;
- width: 15%;
- font-size: 20px;
- color: #fff;
- text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
- filter: alpha(opacity=50);
- opacity: .5;
-}
-.carousel-control.left {
- background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .5) 0%), color-stop(rgba(0, 0, 0, .0001) 100%));
- background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
- background-repeat: repeat-x;
-}
-.carousel-control.right {
- right: 0;
- left: auto;
- background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .0001) 0%), color-stop(rgba(0, 0, 0, .5) 100%));
- background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
- background-repeat: repeat-x;
-}
-.carousel-control:hover,
-.carousel-control:focus {
- color: #fff;
- text-decoration: none;
- filter: alpha(opacity=90);
- outline: none;
- opacity: .9;
-}
-.carousel-control .icon-prev,
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-left,
-.carousel-control .glyphicon-chevron-right {
- position: absolute;
- top: 50%;
- z-index: 5;
- display: inline-block;
-}
-.carousel-control .icon-prev,
-.carousel-control .glyphicon-chevron-left {
- left: 50%;
-}
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-right {
- right: 50%;
-}
-.carousel-control .icon-prev,
-.carousel-control .icon-next {
- width: 20px;
- height: 20px;
- margin-top: -10px;
- margin-left: -10px;
- font-family: serif;
-}
-.carousel-control .icon-prev:before {
- content: '\2039';
-}
-.carousel-control .icon-next:before {
- content: '\203a';
-}
-.carousel-indicators {
- position: absolute;
- bottom: 10px;
- left: 50%;
- z-index: 15;
- width: 60%;
- padding-left: 0;
- margin-left: -30%;
- text-align: center;
- list-style: none;
-}
-.carousel-indicators li {
- display: inline-block;
- width: 10px;
- height: 10px;
- margin: 1px;
- text-indent: -999px;
- cursor: pointer;
- background-color: #000 \9;
- background-color: rgba(0, 0, 0, 0);
- border: 1px solid #fff;
- border-radius: 10px;
-}
-.carousel-indicators .active {
- width: 12px;
- height: 12px;
- margin: 0;
- background-color: #fff;
-}
-.carousel-caption {
- position: absolute;
- right: 15%;
- bottom: 20px;
- left: 15%;
- z-index: 10;
- padding-top: 20px;
- padding-bottom: 20px;
- color: #fff;
- text-align: center;
- text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
-}
-.carousel-caption .btn {
- text-shadow: none;
-}
-@media screen and (min-width: 768px) {
- .carousel-control .glyphicon-chevron-left,
- .carousel-control .glyphicon-chevron-right,
- .carousel-control .icon-prev,
- .carousel-control .icon-next {
- width: 30px;
- height: 30px;
- margin-top: -15px;
- margin-left: -15px;
- font-size: 30px;
- }
- .carousel-caption {
- right: 20%;
- left: 20%;
- padding-bottom: 30px;
- }
- .carousel-indicators {
- bottom: 20px;
- }
-}
-.clearfix:before,
-.clearfix:after,
-.container:before,
-.container:after,
-.container-fluid:before,
-.container-fluid:after,
-.row:before,
-.row:after,
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after,
-.btn-toolbar:before,
-.btn-toolbar:after,
-.btn-group-vertical > .btn-group:before,
-.btn-group-vertical > .btn-group:after,
-.nav:before,
-.nav:after,
-.navbar:before,
-.navbar:after,
-.navbar-header:before,
-.navbar-header:after,
-.navbar-collapse:before,
-.navbar-collapse:after,
-.pager:before,
-.pager:after,
-.panel-body:before,
-.panel-body:after,
-.modal-footer:before,
-.modal-footer:after {
- display: table;
- content: " ";
-}
-.clearfix:after,
-.container:after,
-.container-fluid:after,
-.row:after,
-.form-horizontal .form-group:after,
-.btn-toolbar:after,
-.btn-group-vertical > .btn-group:after,
-.nav:after,
-.navbar:after,
-.navbar-header:after,
-.navbar-collapse:after,
-.pager:after,
-.panel-body:after,
-.modal-footer:after {
- clear: both;
-}
-.center-block {
- display: block;
- margin-right: auto;
- margin-left: auto;
-}
-.pull-right {
- float: right !important;
-}
-.pull-left {
- float: left !important;
-}
-.hide {
- display: none !important;
-}
-.show {
- display: block !important;
-}
-.invisible {
- visibility: hidden;
-}
-.text-hide {
- font: 0/0 a;
- color: transparent;
- text-shadow: none;
- background-color: transparent;
- border: 0;
-}
-.hidden {
- display: none !important;
- visibility: hidden !important;
-}
-.affix {
- position: fixed;
-}
-@-ms-viewport {
- width: device-width;
-}
-.visible-xs,
-.visible-sm,
-.visible-md,
-.visible-lg {
- display: none !important;
-}
-@media (max-width: 767px) {
- .visible-xs {
- display: block !important;
- }
- table.visible-xs {
- display: table;
- }
- tr.visible-xs {
- display: table-row !important;
- }
- th.visible-xs,
- td.visible-xs {
- display: table-cell !important;
- }
-}
-@media (min-width: 768px) and (max-width: 991px) {
- .visible-sm {
- display: block !important;
- }
- table.visible-sm {
- display: table;
- }
- tr.visible-sm {
- display: table-row !important;
- }
- th.visible-sm,
- td.visible-sm {
- display: table-cell !important;
- }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
- .visible-md {
- display: block !important;
- }
- table.visible-md {
- display: table;
- }
- tr.visible-md {
- display: table-row !important;
- }
- th.visible-md,
- td.visible-md {
- display: table-cell !important;
- }
-}
-@media (min-width: 1200px) {
- .visible-lg {
- display: block !important;
- }
- table.visible-lg {
- display: table;
- }
- tr.visible-lg {
- display: table-row !important;
- }
- th.visible-lg,
- td.visible-lg {
- display: table-cell !important;
- }
-}
-@media (max-width: 767px) {
- .hidden-xs {
- display: none !important;
- }
-}
-@media (min-width: 768px) and (max-width: 991px) {
- .hidden-sm {
- display: none !important;
- }
-}
-@media (min-width: 992px) and (max-width: 1199px) {
- .hidden-md {
- display: none !important;
- }
-}
-@media (min-width: 1200px) {
- .hidden-lg {
- display: none !important;
- }
-}
-.visible-print {
- display: none !important;
-}
-@media print {
- .visible-print {
- display: block !important;
- }
- table.visible-print {
- display: table;
- }
- tr.visible-print {
- display: table-row !important;
- }
- th.visible-print,
- td.visible-print {
- display: table-cell !important;
- }
-}
-@media print {
- .hidden-print {
- display: none !important;
- }
-}
-/*# sourceMappingURL=bootstrap.css.map */
diff --git a/milfs/css/bootstrap.css.map b/milfs/css/bootstrap.css.map
deleted file mode 100644
index 6bc5a2d..0000000
--- a/milfs/css/bootstrap.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["less/normalize.less","less/print.less","less/scaffolding.less","less/mixins.less","less/variables.less","less/thumbnails.less","less/carousel.less","less/type.less","less/code.less","less/grid.less","less/tables.less","less/forms.less","less/buttons.less","less/button-groups.less","less/component-animations.less","less/glyphicons.less","less/dropdowns.less","less/input-groups.less","less/navs.less","less/navbar.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/pager.less","less/labels.less","less/badges.less","less/jumbotron.less","less/alerts.less","less/progress-bars.less","less/media.less","less/list-group.less","less/panels.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/popovers.less","less/responsive-utilities.less"],"names":[],"mappings":";AAQA;EACE,uBAAA;EACA,0BAAA;EACA,8BAAA;;AAOF;EACE,SAAA;;AAUF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,cAAA;;AAQF;AACA;AACA;AACA;EACE,qBAAA;EACA,wBAAA;;AAQF,KAAK,IAAI;EACP,aAAA;EACA,SAAA;;AAQF;AACA;EACE,aAAA;;AAUF;EACE,uBAAA;;AAOF,CAAC;AACD,CAAC;EACC,UAAA;;AAUF,IAAI;EACF,yBAAA;;AAOF;AACA;EACE,iBAAA;;AAOF;EACE,kBAAA;;AAQF;EACE,cAAA;EACA,gBAAA;;AAOF;EACE,gBAAA;EACA,WAAA;;AAOF;EACE,cAAA;;AAOF;AACA;EACE,cAAA;EACA,cAAA;EACA,kBAAA;EACA,wBAAA;;AAGF;EACE,WAAA;;AAGF;EACE,eAAA;;AAUF;EACE,SAAA;;AAOF,GAAG,IAAI;EACL,gBAAA;;AAUF;EACE,gBAAA;;AAOF;EACE,4BAAA;EACA,uBAAA;EACA,SAAA;;AAOF;EACE,cAAA;;AAOF;AACA;AACA;AACA;EACE,iCAAA;EACA,cAAA;;AAkBF;AACA;AACA;AACA;AACA;EACE,cAAA;EACA,aAAA;EACA,SAAA;;AAOF;EACE,iBAAA;;AAUF;AACA;EACE,oBAAA;;AAWF;AACA,IAAK,MAAK;AACV,KAAK;AACL,KAAK;EACH,0BAAA;EACA,eAAA;;AAOF,MAAM;AACN,IAAK,MAAK;EACR,eAAA;;AAOF,MAAM;AACN,KAAK;EACH,SAAA;EACA,UAAA;;AAQF;EACE,mBAAA;;AAWF,KAAK;AACL,KAAK;EACH,sBAAA;EACA,UAAA;;AASF,KAAK,eAAe;AACpB,KAAK,eAAe;EAClB,YAAA;;AASF,KAAK;EACH,6BAAA;EACA,4BAAA;EACA,+BAAA;EACA,uBAAA;;AASF,KAAK,eAAe;AACpB,KAAK,eAAe;EAClB,wBAAA;;AAOF;EACE,yBAAA;EACA,aAAA;EACA,8BAAA;;AAQF;EACE,SAAA;EACA,UAAA;;AAOF;EACE,cAAA;;AAQF;EACE,iBAAA;;AAUF;EACE,yBAAA;EACA,iBAAA;;AAGF;AACA;EACE,UAAA;;AChUF;EA9FE;IACE,4BAAA;IACA,sBAAA;IACA,kCAAA;IACA,2BAAA;;EAGF;EACA,CAAC;IACC,0BAAA;;EAGF,CAAC,MAAM;IACL,SAAS,KAAK,WAAW,GAAzB;;EAGF,IAAI,OAAO;IACT,SAAS,KAAK,YAAY,GAA1B;;EAIF,CAAC,qBAAqB;EACtB,CAAC,WAAW;IACV,SAAS,EAAT;;EAGF;EACA;IACE,sBAAA;IACA,wBAAA;;EAGF;IACE,2BAAA;;EAGF;EACA;IACE,wBAAA;;EAGF;IACE,0BAAA;;EAGF;EACA;EACA;IACE,UAAA;IACA,SAAA;;EAGF;EACA;IACE,uBAAA;;EAKF;IACE,2BAAA;;EAIF;IACE,aAAA;;EAEF,MACE;EADF,MAEE;IACE,iCAAA;;EAGJ,IAEE;EADF,OAAQ,OACN;IACE,iCAAA;;EAGJ;IACE,sBAAA;;EAGF;IACE,oCAAA;;EAEF,eACE;EADF,eAEE;IACE,iCAAA;;;ACtFN;ECyOE,8BAAA;EACG,2BAAA;EACK,sBAAA;;ADxOV,CAAC;AACD,CAAC;ECqOC,8BAAA;EACG,2BAAA;EACK,sBAAA;;ADhOV;EACE,gBAAA;EACA,6CAAA;;AAGF;EACE,aEcwB,8CFdxB;EACA,eAAA;EACA,uBAAA;EACA,cAAA;EACA,yBAAA;;AAIF;AACA;AACA;AACA;EACE,oBAAA;EACA,kBAAA;EACA,oBAAA;;AAMF;EACE,cAAA;EACA,qBAAA;;AAEA,CAAC;AACD,CAAC;EACC,cAAA;EACA,0BAAA;;AAGF,CAAC;ECzBD,oBAAA;EAEA,0CAAA;EACA,oBAAA;;ADiCF;EACE,SAAA;;AAMF;EACE,sBAAA;;AAIF;AG1EA,UAUE;AAVF,UAWE,EAAE;ACPJ,eAKE,QAME;AAXJ,eAKE,QAOE,IAAI;EHyWN,cAAA;EACA,eAAA;EACA,YAAA;;AD5SF;EACE,kBAAA;;AAMF;EACE,YAAA;EACA,uBAAA;EACA,yBAAA;EACA,yBAAA;EACA,kBAAA;EC8BA,wCAAA;EACQ,gCAAA;EA+PR,qBAAA;EACA,eAAA;EACA,YAAA;;ADxRF;EACE,kBAAA;;AAMF;EACE,gBAAA;EACA,mBAAA;EACA,SAAA;EACA,6BAAA;;AAQF;EACE,kBAAA;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,gBAAA;EACA,MAAM,gBAAN;EACA,SAAA;;AK5HF;AAAI;AAAI;AAAI;AAAI;AAAI;AACpB;AAAK;AAAK;AAAK;AAAK;AAAK;EACvB,oBAAA;EACA,gBAAA;EACA,gBAAA;EACA,cAAA;;AALF,EAOE;AAPE,EAOF;AAPM,EAON;AAPU,EAOV;AAPc,EAOd;AAPkB,EAOlB;AANF,GAME;AANG,GAMH;AANQ,GAMR;AANa,GAMb;AANkB,GAMlB;AANuB,GAMvB;AAPF,EAQE;AARE,EAQF;AARM,EAQN;AARU,EAQV;AARc,EAQd;AARkB,EAQlB;AAPF,GAOE;AAPG,GAOH;AAPQ,GAOR;AAPa,GAOb;AAPkB,GAOlB;AAPuB,GAOvB;EACE,mBAAA;EACA,cAAA;EACA,cAAA;;AAIJ;AAAI;AACJ;AAAI;AACJ;AAAI;EACF,gBAAA;EACA,mBAAA;;AAJF,EAME;AANE,GAMF;AALF,EAKE;AALE,GAKF;AAJF,EAIE;AAJE,GAIF;AANF,EAOE;AAPE,GAOF;AANF,EAME;AANE,GAMF;AALF,EAKE;AALE,GAKF;EACE,cAAA;;AAGJ;AAAI;AACJ;AAAI;AACJ;AAAI;EACF,gBAAA;EACA,mBAAA;;AAJF,EAME;AANE,GAMF;AALF,EAKE;AALE,GAKF;AAJF,EAIE;AAJE,GAIF;AANF,EAOE;AAPE,GAOF;AANF,EAME;AANE,GAMF;AALF,EAKE;AALE,GAKF;EACE,cAAA;;AAIJ;AAAI;EAAM,eAAA;;AACV;AAAI;EAAM,eAAA;;AACV;AAAI;EAAM,eAAA;;AACV;AAAI;EAAM,eAAA;;AACV;AAAI;EAAM,eAAA;;AACV;AAAI;EAAM,eAAA;;AAMV;EACE,gBAAA;;AAGF;EACE,mBAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;;AAKF,QAHqC;EAGrC;IAFI,eAAA;;;AASJ;AACA;EAAU,cAAA;;AAGV;EAAU,kBAAA;;AAGV;EAAuB,gBAAA;;AACvB;EAAuB,iBAAA;;AACvB;EAAuB,kBAAA;;AACvB;EAAuB,mBAAA;;AAGvB;EACE,cAAA;;AAEF;EJofE,cAAA;;AACA,CAAC,aAAC;EACA,cAAA;;AInfJ;EJifE,cAAA;;AACA,CAAC,aAAC;EACA,cAAA;;AIhfJ;EJ8eE,cAAA;;AACA,CAAC,UAAC;EACA,cAAA;;AI7eJ;EJ2eE,cAAA;;AACA,CAAC,aAAC;EACA,cAAA;;AI1eJ;EJweE,cAAA;;AACA,CAAC,YAAC;EACA,cAAA;;AIneJ;EAGE,WAAA;EJqdA,yBAAA;;AACA,CAAC,WAAC;EACA,yBAAA;;AIpdJ;EJkdE,yBAAA;;AACA,CAAC,WAAC;EACA,yBAAA;;AIjdJ;EJ+cE,yBAAA;;AACA,CAAC,QAAC;EACA,yBAAA;;AI9cJ;EJ4cE,yBAAA;;AACA,CAAC,WAAC;EACA,yBAAA;;AI3cJ;EJycE,yBAAA;;AACA,CAAC,UAAC;EACA,yBAAA;;AIncJ;EACE,mBAAA;EACA,mBAAA;EACA,gCAAA;;AAQF;AACA;EACE,aAAA;EACA,mBAAA;;AAHF,EAIE;AAHF,EAGE;AAJF,EAKE;AAJF,EAIE;EACE,gBAAA;;AAOJ;EACE,eAAA;EACA,gBAAA;;AAIF;EALE,eAAA;EACA,gBAAA;EAMA,iBAAA;;AAFF,YAIE;EACE,qBAAA;EACA,iBAAA;EACA,kBAAA;;AAKJ;EACE,aAAA;EACA,mBAAA;;AAEF;AACA;EACE,uBAAA;;AAEF;EACE,iBAAA;;AAEF;EACE,cAAA;;AAwBF,QAhB2C;EACzC,cACE;IACE,WAAA;IACA,YAAA;IACA,WAAA;IACA,iBAAA;IJ1IJ,gBAAA;IACA,uBAAA;IACA,mBAAA;;EImIA,cAQE;IACE,kBAAA;;;AAUN,IAAI;AAEJ,IAAI;EACF,YAAA;EACA,iCAAA;;AAEF;EACE,cAAA;EACA,yBAAA;;AAIF;EACE,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,8BAAA;;AAKE,UAHF,EAGG;AAAD,UAFF,GAEG;AAAD,UADF,GACG;EACC,gBAAA;;AAVN,UAgBE;AAhBF,UAiBE;AAjBF,UAkBE;EACE,cAAA;EACA,cAAA;EACA,uBAAA;EACA,cAAA;;AAEA,UARF,OAQG;AAAD,UAPF,MAOG;AAAD,UANF,OAMG;EACC,SAAS,aAAT;;AAQN;AACA,UAAU;EACR,mBAAA;EACA,eAAA;EACA,+BAAA;EACA,cAAA;EACA,iBAAA;;AAME,mBAHF,OAGG;AAAD,UAXM,WAQR,OAGG;AAAD,mBAFF,MAEG;AAAD,UAXM,WASR,MAEG;AAAD,mBADF,OACG;AAAD,UAXM,WAUR,OACG;EAAU,SAAS,EAAT;;AACX,mBAJF,OAIG;AAAD,UAZM,WAQR,OAIG;AAAD,mBAHF,MAGG;AAAD,UAZM,WASR,MAGG;AAAD,mBAFF,OAEG;AAAD,UAZM,WAUR,OAEG;EACC,SAAS,aAAT;;AAMN,UAAU;AACV,UAAU;EACR,SAAS,EAAT;;AAIF;EACE,mBAAA;EACA,kBAAA;EACA,uBAAA;;AC7RF;AACA;AACA;AACA;EACE,sCJkCiD,wBIlCjD;;AAIF;EACE,gBAAA;EACA,cAAA;EACA,cAAA;EACA,yBAAA;EACA,mBAAA;EACA,kBAAA;;AAIF;EACE,gBAAA;EACA,cAAA;EACA,cAAA;EACA,yBAAA;EACA,kBAAA;EACA,8CAAA;;AAIF;EACE,cAAA;EACA,cAAA;EACA,gBAAA;EACA,eAAA;EACA,uBAAA;EACA,qBAAA;EACA,qBAAA;EACA,cAAA;EACA,yBAAA;EACA,yBAAA;EACA,kBAAA;;AAXF,GAcE;EACE,UAAA;EACA,kBAAA;EACA,cAAA;EACA,qBAAA;EACA,6BAAA;EACA,gBAAA;;AAKJ;EACE,iBAAA;EACA,kBAAA;;ACpDF;ENqnBE,kBAAA;EACA,iBAAA;EACA,kBAAA;EACA,mBAAA;;AMlnBA,QAHmC;EAGnC;IAFE,YAAA;;;AAKF,QAHmC;EAGnC;IAFE,YAAA;;;AAKJ,QAHqC;EAGrC;IAFI,aAAA;;;AAUJ;ENimBE,kBAAA;EACA,iBAAA;EACA,kBAAA;EACA,mBAAA;;AM3lBF;ENimBE,kBAAA;EACA,mBAAA;;AAqIE;EACE,kBAAA;EAEA,eAAA;EAEA,kBAAA;EACA,mBAAA;;AAgBF;EACE,WAAA;;AAOJ,KAAK,EAAQ,CAAC;EACZ,WAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,mBAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,mBAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,UAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,mBAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,mBAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,UAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,mBAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,mBAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,UAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,mBAAA;;AADF,KAAK,EAAQ,CAAC;EACZ,kBAAA;;AASF,KAAK,EAAQ,MAAM;EACjB,WAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,mBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,mBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,UAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,mBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,mBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,UAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,mBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,mBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,UAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,mBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,kBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,SAAA;;AANF,KAAK,EAAQ,MAAM;EACjB,UAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,kBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,kBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,SAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,kBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,kBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,SAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,kBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,kBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,SAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,kBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,iBAAA;;AADF,KAAK,EAAQ,MAAM;EACjB,QAAA;;AASF,KAAK,EAAQ,QAAQ;EACnB,iBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,yBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,yBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,gBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,yBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,yBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,gBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,yBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,yBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,gBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,yBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,wBAAA;;AADF,KAAK,EAAQ,QAAQ;EACnB,eAAA;;AMvvBJ,QALmC;ENouB/B;IACE,WAAA;;EAOJ,KAAK,EAAQ,CAAC;IACZ,WAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,UAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,UAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,UAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,kBAAA;;EASF,KAAK,EAAQ,MAAM;IACjB,WAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EANF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,iBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,QAAA;;EASF,KAAK,EAAQ,QAAQ;IACnB,iBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,gBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,gBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,gBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,wBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,eAAA;;;AM9uBJ,QALmC;EN2tB/B;IACE,WAAA;;EAOJ,KAAK,EAAQ,CAAC;IACZ,WAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,UAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,UAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,UAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,kBAAA;;EASF,KAAK,EAAQ,MAAM;IACjB,WAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EANF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,iBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,QAAA;;EASF,KAAK,EAAQ,QAAQ;IACnB,iBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,gBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,gBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,gBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,wBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,eAAA;;;AMvuBJ,QAHmC;ENktB/B;IACE,WAAA;;EAOJ,KAAK,EAAQ,CAAC;IACZ,WAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,UAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,UAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,UAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,mBAAA;;EADF,KAAK,EAAQ,CAAC;IACZ,kBAAA;;EASF,KAAK,EAAQ,MAAM;IACjB,WAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,mBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EANF,KAAK,EAAQ,MAAM;IACjB,UAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,SAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,kBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,iBAAA;;EADF,KAAK,EAAQ,MAAM;IACjB,QAAA;;EASF,KAAK,EAAQ,QAAQ;IACnB,iBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,gBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,gBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,gBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,yBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,wBAAA;;EADF,KAAK,EAAQ,QAAQ;IACnB,eAAA;;;AOtzBJ;EACE,eAAA;EACA,6BAAA;;AAEF;EACE,gBAAA;;AAMF;EACE,WAAA;EACA,mBAAA;;AAFF,MAIE,QAGE,KACE;AARN,MAKE,QAEE,KACE;AARN,MAME,QACE,KACE;AARN,MAIE,QAGE,KAEE;AATN,MAKE,QAEE,KAEE;AATN,MAME,QACE,KAEE;EACE,YAAA;EACA,uBAAA;EACA,mBAAA;EACA,6BAAA;;AAbR,MAkBE,QAAQ,KAAK;EACX,sBAAA;EACA,gCAAA;;AApBJ,MAuBE,UAAU,QAGR,KAAI,YACF;AA3BN,MAwBE,WAAW,QAET,KAAI,YACF;AA3BN,MAyBE,QAAO,YACL,KAAI,YACF;AA3BN,MAuBE,UAAU,QAGR,KAAI,YAEF;AA5BN,MAwBE,WAAW,QAET,KAAI,YAEF;AA5BN,MAyBE,QAAO,YACL,KAAI,YAEF;EACE,aAAA;;AA7BR,MAkCE,QAAQ;EACN,6BAAA;;AAnCJ,MAuCE;EACE,yBAAA;;AAOJ,gBACE,QAGE,KACE;AALN,gBAEE,QAEE,KACE;AALN,gBAGE,QACE,KACE;AALN,gBACE,QAGE,KAEE;AANN,gBAEE,QAEE,KAEE;AANN,gBAGE,QACE,KAEE;EACE,YAAA;;AAWR;EACE,yBAAA;;AADF,eAEE,QAGE,KACE;AANN,eAGE,QAEE,KACE;AANN,eAIE,QACE,KACE;AANN,eAEE,QAGE,KAEE;AAPN,eAGE,QAEE,KAEE;AAPN,eAIE,QACE,KAEE;EACE,yBAAA;;AARR,eAYE,QAAQ,KACN;AAbJ,eAYE,QAAQ,KAEN;EACE,wBAAA;;AAUN,cACE,QAAQ,KAAI,UAAU,KACpB;AAFJ,cACE,QAAQ,KAAI,UAAU,KAEpB;EACE,yBAAA;;AAUN,YACE,QAAQ,KAAI,MACV;AAFJ,YACE,QAAQ,KAAI,MAEV;EACE,yBAAA;;AAUN,KAAM,IAAG;EACP,gBAAA;EACA,WAAA;EACA,qBAAA;;AAKE,KAFF,GAEG;AAAD,KADF,GACG;EACC,gBAAA;EACA,WAAA;EACA,mBAAA;;AP0SJ,MAAO,QAAQ,KAGb,KAAI,CAAC;AAFP,MAAO,QAAQ,KAEb,KAAI,CAAC;AADP,MAAO,QAAQ,KACb,KAAI,CAAC;AAHP,MAAO,QAAQ,KAIb,KAAI,CAAC;AAHP,MAAO,QAAQ,KAGb,KAAI,CAAC;AAFP,MAAO,QAAQ,KAEb,KAAI,CAAC;AACL,MALK,QAAQ,KAKZ,CAAC,MAAS;AAAX,MAJK,QAAQ,KAIZ,CAAC,MAAS;AAAX,MAHK,QAAQ,KAGZ,CAAC,MAAS;AACX,MANK,QAAQ,KAMZ,CAAC,MAAS;AAAX,MALK,QAAQ,KAKZ,CAAC,MAAS;AAAX,MAJK,QAAQ,KAIZ,CAAC,MAAS;EACT,yBAAA;;AAMJ,YAAa,QAAQ,KACnB,KAAI,CAAC,MAAQ;AADf,YAAa,QAAQ,KAEnB,KAAI,CAAC,MAAQ;AACb,YAHW,QAAQ,KAGlB,CAAC,MAAQ,MAAO;AACjB,YAJW,QAAQ,KAIlB,CAAC,MAAQ,MAAO;EACf,yBAAA;;AAlBJ,MAAO,QAAQ,KAGb,KAAI,CAAC;AAFP,MAAO,QAAQ,KAEb,KAAI,CAAC;AADP,MAAO,QAAQ,KACb,KAAI,CAAC;AAHP,MAAO,QAAQ,KAIb,KAAI,CAAC;AAHP,MAAO,QAAQ,KAGb,KAAI,CAAC;AAFP,MAAO,QAAQ,KAEb,KAAI,CAAC;AACL,MALK,QAAQ,KAKZ,CAAC,OAAS;AAAX,MAJK,QAAQ,KAIZ,CAAC,OAAS;AAAX,MAHK,QAAQ,KAGZ,CAAC,OAAS;AACX,MANK,QAAQ,KAMZ,CAAC,OAAS;AAAX,MALK,QAAQ,KAKZ,CAAC,OAAS;AAAX,MAJK,QAAQ,KAIZ,CAAC,OAAS;EACT,yBAAA;;AAMJ,YAAa,QAAQ,KACnB,KAAI,CAAC,OAAQ;AADf,YAAa,QAAQ,KAEnB,KAAI,CAAC,OAAQ;AACb,YAHW,QAAQ,KAGlB,CAAC,OAAQ,MAAO;AACjB,YAJW,QAAQ,KAIlB,CAAC,OAAQ,MAAO;EACf,yBAAA;;AAlBJ,MAAO,QAAQ,KAGb,KAAI,CAAC;AAFP,MAAO,QAAQ,KAEb,KAAI,CAAC;AADP,MAAO,QAAQ,KACb,KAAI,CAAC;AAHP,MAAO,QAAQ,KAIb,KAAI,CAAC;AAHP,MAAO,QAAQ,KAGb,KAAI,CAAC;AAFP,MAAO,QAAQ,KAEb,KAAI,CAAC;AACL,MALK,QAAQ,KAKZ,CAAC,IAAS;AAAX,MAJK,QAAQ,KAIZ,CAAC,IAAS;AAAX,MAHK,QAAQ,KAGZ,CAAC,IAAS;AACX,MANK,QAAQ,KAMZ,CAAC,IAAS;AAAX,MALK,QAAQ,KAKZ,CAAC,IAAS;AAAX,MAJK,QAAQ,KAIZ,CAAC,IAAS;EACT,yBAAA;;AAMJ,YAAa,QAAQ,KACnB,KAAI,CAAC,IAAQ;AADf,YAAa,QAAQ,KAEnB,KAAI,CAAC,IAAQ;AACb,YAHW,QAAQ,KAGlB,CAAC,IAAQ,MAAO;AACjB,YAJW,QAAQ,KAIlB,CAAC,IAAQ,MAAO;EACf,yBAAA;;AAlBJ,MAAO,QAAQ,KAGb,KAAI,CAAC;AAFP,MAAO,QAAQ,KAEb,KAAI,CAAC;AADP,MAAO,QAAQ,KACb,KAAI,CAAC;AAHP,MAAO,QAAQ,KAIb,KAAI,CAAC;AAHP,MAAO,QAAQ,KAGb,KAAI,CAAC;AAFP,MAAO,QAAQ,KAEb,KAAI,CAAC;AACL,MALK,QAAQ,KAKZ,CAAC,OAAS;AAAX,MAJK,QAAQ,KAIZ,CAAC,OAAS;AAAX,MAHK,QAAQ,KAGZ,CAAC,OAAS;AACX,MANK,QAAQ,KAMZ,CAAC,OAAS;AAAX,MALK,QAAQ,KAKZ,CAAC,OAAS;AAAX,MAJK,QAAQ,KAIZ,CAAC,OAAS;EACT,yBAAA;;AAMJ,YAAa,QAAQ,KACnB,KAAI,CAAC,OAAQ;AADf,YAAa,QAAQ,KAEnB,KAAI,CAAC,OAAQ;AACb,YAHW,QAAQ,KAGlB,CAAC,OAAQ,MAAO;AACjB,YAJW,QAAQ,KAIlB,CAAC,OAAQ,MAAO;EACf,yBAAA;;AAlBJ,MAAO,QAAQ,KAGb,KAAI,CAAC;AAFP,MAAO,QAAQ,KAEb,KAAI,CAAC;AADP,MAAO,QAAQ,KACb,KAAI,CAAC;AAHP,MAAO,QAAQ,KAIb,KAAI,CAAC;AAHP,MAAO,QAAQ,KAGb,KAAI,CAAC;AAFP,MAAO,QAAQ,KAEb,KAAI,CAAC;AACL,MALK,QAAQ,KAKZ,CAAC,MAAS;AAAX,MAJK,QAAQ,KAIZ,CAAC,MAAS;AAAX,MAHK,QAAQ,KAGZ,CAAC,MAAS;AACX,MANK,QAAQ,KAMZ,CAAC,MAAS;AAAX,MALK,QAAQ,KAKZ,CAAC,MAAS;AAAX,MAJK,QAAQ,KAIZ,CAAC,MAAS;EACT,yBAAA;;AAMJ,YAAa,QAAQ,KACnB,KAAI,CAAC,MAAQ;AADf,YAAa,QAAQ,KAEnB,KAAI,CAAC,MAAQ;AACb,YAHW,QAAQ,KAGlB,CAAC,MAAQ,MAAO;AACjB,YAJW,QAAQ,KAIlB,CAAC,MAAQ,MAAO;EACf,yBAAA;;AOpON,QA/DmC;EACjC;IACE,WAAA;IACA,mBAAA;IACA,kBAAA;IACA,kBAAA;IACA,4CAAA;IACA,yBAAA;IACA,iCAAA;;EAPF,iBAUE;IACE,gBAAA;;EAXJ,iBAUE,SAIE,QAGE,KACE;EAlBR,iBAUE,SAKE,QAEE,KACE;EAlBR,iBAUE,SAME,QACE,KACE;EAlBR,iBAUE,SAIE,QAGE,KAEE;EAnBR,iBAUE,SAKE,QAEE,KAEE;EAnBR,iBAUE,SAME,QACE,KAEE;IACE,mBAAA;;EApBV,iBA2BE;IACE,SAAA;;EA5BJ,iBA2BE,kBAIE,QAGE,KACE,KAAI;EAnCZ,iBA2BE,kBAKE,QAEE,KACE,KAAI;EAnCZ,iBA2BE,kBAME,QACE,KACE,KAAI;EAnCZ,iBA2BE,kBAIE,QAGE,KAEE,KAAI;EApCZ,iBA2BE,kBAKE,QAEE,KAEE,KAAI;EApCZ,iBA2BE,kBAME,QACE,KAEE,KAAI;IACF,cAAA;;EArCV,iBA2BE,kBAIE,QAGE,KAKE,KAAI;EAvCZ,iBA2BE,kBAKE,QAEE,KAKE,KAAI;EAvCZ,iBA2BE,kBAME,QACE,KAKE,KAAI;EAvCZ,iBA2BE,kBAIE,QAGE,KAME,KAAI;EAxCZ,iBA2BE,kBAKE,QAEE,KAME,KAAI;EAxCZ,iBA2BE,kBAME,QACE,KAME,KAAI;IACF,eAAA;;EAzCV,iBA2BE,kBAsBE,QAEE,KAAI,WACF;EApDR,iBA2BE,kBAuBE,QACE,KAAI,WACF;EApDR,iBA2BE,kBAsBE,QAEE,KAAI,WAEF;EArDR,iBA2BE,kBAuBE,QACE,KAAI,WAEF;IACE,gBAAA;;;ACxNZ;EACE,UAAA;EACA,SAAA;EACA,SAAA;EAIA,YAAA;;AAGF;EACE,cAAA;EACA,WAAA;EACA,UAAA;EACA,mBAAA;EACA,eAAA;EACA,oBAAA;EACA,cAAA;EACA,SAAA;EACA,gCAAA;;AAGF;EACE,qBAAA;EACA,kBAAA;EACA,iBAAA;;AAWF,KAAK;ERsMH,8BAAA;EACG,2BAAA;EACK,sBAAA;;AQnMV,KAAK;AACL,KAAK;EACH,eAAA;EACA,kBAAA;;EACA,mBAAA;;AAIF,KAAK;EACH,cAAA;;AAIF,KAAK;EACH,cAAA;EACA,WAAA;;AAIF,MAAM;AACN,MAAM;EACJ,YAAA;;AAIF,KAAK,aAAa;AAClB,KAAK,cAAc;AACnB,KAAK,iBAAiB;ER7CpB,oBAAA;EAEA,0CAAA;EACA,oBAAA;;AQ+CF;EACE,cAAA;EACA,gBAAA;EACA,eAAA;EACA,uBAAA;EACA,cAAA;;AA0BF;EACE,cAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,uBAAA;EACA,cAAA;EACA,yBAAA;EACA,sBAAA;EACA,yBAAA;EACA,kBAAA;ERHA,wDAAA;EACQ,gDAAA;EAKR,8EAAA;EACQ,sEAAA;;AAmwBR,aAAC;EACC,qBAAA;EACA,UAAA;EA5wBF,sFAAA;EACQ,8EAAA;;AAlER,aAAC;EAA+B,cAAA;EACA,UAAA;;AAChC,aAAC;EAA+B,cAAA;;AAChC,aAAC;EAA+B,cAAA;;AQgFhC,aAAC;AACD,aAAC;AACD,QAAQ,UAAW;EACjB,mBAAA;EACA,yBAAA;EACA,UAAA;;AAIF,QAAQ;EACN,YAAA;;AAYJ,KAAK;EACH,wBAAA;;AASF,KAAK;EACH,iBAAA;;AASF;EACE,mBAAA;;AAQF;AACA;EACE,cAAA;EACA,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;;AANF,MAOE;AANF,SAME;EACE,eAAA;EACA,mBAAA;EACA,eAAA;;AAGJ,MAAO,MAAK;AACZ,aAAc,MAAK;AACnB,SAAU,MAAK;AACf,gBAAiB,MAAK;EACpB,WAAA;EACA,kBAAA;;AAEF,MAAO;AACP,SAAU;EACR,gBAAA;;AAIF;AACA;EACE,qBAAA;EACA,kBAAA;EACA,gBAAA;EACA,sBAAA;EACA,mBAAA;EACA,eAAA;;AAEF,aAAc;AACd,gBAAiB;EACf,aAAA;EACA,iBAAA;;AAYA,KANG,cAMF;AAAD,KALG,iBAKF;AAAD,MAAC;AAAD,aAAC;AAAD,SAAC;AAAD,gBAAC;AACD,QAAQ,UAAW,MAPhB;AAOH,QAAQ,UAAW,MANhB;AAMH,QAAQ,UAAW;AAAnB,QAAQ,UAAW;AAAnB,QAAQ,UAAW;AAAnB,QAAQ,UAAW;EACjB,mBAAA;;AAUJ;ERqpBE,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;;AAEA,MAAM;EACJ,YAAA;EACA,iBAAA;;AAGF,QAAQ;AACR,MAAM,UAAU;EACd,YAAA;;AQ9pBJ;ERipBE,YAAA;EACA,kBAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;;AAEA,MAAM;EACJ,YAAA;EACA,iBAAA;;AAGF,QAAQ;AACR,MAAM,UAAU;EACd,YAAA;;AQrpBJ;EAEE,kBAAA;;AAFF,aAKE;EACE,qBAAA;;AANJ,aAUE;EACE,kBAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;;AAKJ,YRsjBE;AQtjBF,YRujBE;AQvjBF,YRwjBE;AQxjBF,YRyjBE;AQzjBF,YR0jBE;AQ1jBF,YR2jBE;EACE,cAAA;;AQ5jBJ,YR+jBE;EACE,qBAAA;EAvuBF,wDAAA;EACQ,gDAAA;;AAwuBN,YAHF,cAGG;EACC,qBAAA;EA1uBJ,yEAAA;EACQ,iEAAA;;AQsKV,YRykBE;EACE,cAAA;EACA,qBAAA;EACA,yBAAA;;AQ5kBJ,YR+kBE;EACE,cAAA;;AQ7kBJ,YRmjBE;AQnjBF,YRojBE;AQpjBF,YRqjBE;AQrjBF,YRsjBE;AQtjBF,YRujBE;AQvjBF,YRwjBE;EACE,cAAA;;AQzjBJ,YR4jBE;EACE,qBAAA;EAvuBF,wDAAA;EACQ,gDAAA;;AAwuBN,YAHF,cAGG;EACC,qBAAA;EA1uBJ,yEAAA;EACQ,iEAAA;;AQyKV,YRskBE;EACE,cAAA;EACA,qBAAA;EACA,yBAAA;;AQzkBJ,YR4kBE;EACE,cAAA;;AQ1kBJ,URgjBE;AQhjBF,URijBE;AQjjBF,URkjBE;AQljBF,URmjBE;AQnjBF,URojBE;AQpjBF,URqjBE;EACE,cAAA;;AQtjBJ,URyjBE;EACE,qBAAA;EAvuBF,wDAAA;EACQ,gDAAA;;AAwuBN,UAHF,cAGG;EACC,qBAAA;EA1uBJ,yEAAA;EACQ,iEAAA;;AQ4KV,URmkBE;EACE,cAAA;EACA,qBAAA;EACA,yBAAA;;AQtkBJ,URykBE;EACE,cAAA;;AQhkBJ;EACE,gBAAA;;AASF;EACE,cAAA;EACA,eAAA;EACA,mBAAA;EACA,cAAA;;AAoEF,QAjDqC;EAiDrC,YA/CI;IACE,qBAAA;IACA,gBAAA;IACA,sBAAA;;EA4CN,YAxCI;IACE,qBAAA;IACA,WAAA;IACA,sBAAA;;EAqCN,YAlCI,aAAa;IACX,WAAA;;EAiCN,YA9BI;IACE,gBAAA;IACA,sBAAA;;EA4BN,YAtBI;EAsBJ,YArBI;IACE,qBAAA;IACA,aAAA;IACA,gBAAA;IACA,eAAA;IACA,sBAAA;;EAgBN,YAdI,OAAO,MAAK;EAchB,YAbI,UAAU,MAAK;IACb,WAAA;IACA,cAAA;;EAWN,YAJI,cAAc;IACZ,MAAA;;;AAWN,gBAGE;AAHF,gBAIE;AAJF,gBAKE;AALF,gBAME;AANF,gBAOE;EACE,aAAA;EACA,gBAAA;EACA,gBAAA;;AAVJ,gBAcE;AAdF,gBAeE;EACE,gBAAA;;AAhBJ,gBAoBE;ERyOA,kBAAA;EACA,mBAAA;;AQ9PF,gBAwBE;EACE,gBAAA;;AAUF,QANmC;EAMnC,gBALE;IACE,iBAAA;;;AA/BN,gBAuCE,cAAc;EACZ,MAAA;EACA,WAAA;;AC3aJ;EACE,qBAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;EACA,sBAAA;EACA,eAAA;EACA,sBAAA;EACA,6BAAA;EACA,mBAAA;ET0gBA,iBAAA;EACA,eAAA;EACA,uBAAA;EACA,kBAAA;EAnSA,yBAAA;EACG,sBAAA;EACC,qBAAA;EACI,iBAAA;;AStON,IAAC;AAAD,IAFD,OAEE;AAAD,IADD,OACE;ETQH,oBAAA;EAEA,0CAAA;EACA,oBAAA;;ASNA,IAAC;AACD,IAAC;EACC,cAAA;EACA,qBAAA;;AAGF,IAAC;AACD,IAAC;EACC,UAAA;EACA,sBAAA;ETmFF,wDAAA;EACQ,gDAAA;;AShFR,IAAC;AACD,IAAC;AACD,QAAQ,UAAW;EACjB,mBAAA;EACA,oBAAA;ET+OF,aAAA;EAGA,yBAAA;EAvKA,wBAAA;EACQ,gBAAA;;ASlEV;ET2bE,cAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;AACD,YAAC;AACD,YAAC;AACD,KAAM,iBAAgB;EACpB,cAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,YAAC;AACD,YAAC;AACD,KAAM,iBAAgB;EACpB,sBAAA;;AAKA,YAHD;AAGC,YAFD;AAEC,QADM,UAAW;AAEjB,YAJD,SAIE;AAAD,YAHD,UAGE;AAAD,QAFM,UAAW,aAEhB;AACD,YALD,SAKE;AAAD,YAJD,UAIE;AAAD,QAHM,UAAW,aAGhB;AACD,YAND,SAME;AAAD,YALD,UAKE;AAAD,QAJM,UAAW,aAIhB;AACD,YAPD,SAOE;AAAD,YAND,UAME;AAAD,QALM,UAAW,aAKhB;EACC,yBAAA;EACI,qBAAA;;AStdV,YT0dE;EACE,cAAA;EACA,yBAAA;;ASzdJ;ETwbE,cAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;AACD,YAAC;AACD,YAAC;AACD,KAAM,iBAAgB;EACpB,cAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,YAAC;AACD,YAAC;AACD,KAAM,iBAAgB;EACpB,sBAAA;;AAKA,YAHD;AAGC,YAFD;AAEC,QADM,UAAW;AAEjB,YAJD,SAIE;AAAD,YAHD,UAGE;AAAD,QAFM,UAAW,aAEhB;AACD,YALD,SAKE;AAAD,YAJD,UAIE;AAAD,QAHM,UAAW,aAGhB;AACD,YAND,SAME;AAAD,YALD,UAKE;AAAD,QAJM,UAAW,aAIhB;AACD,YAPD,SAOE;AAAD,YAND,UAME;AAAD,QALM,UAAW,aAKhB;EACC,yBAAA;EACI,qBAAA;;ASndV,YTudE;EACE,cAAA;EACA,yBAAA;;ASrdJ;ETobE,cAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;AACD,YAAC;AACD,YAAC;AACD,KAAM,iBAAgB;EACpB,cAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,YAAC;AACD,YAAC;AACD,KAAM,iBAAgB;EACpB,sBAAA;;AAKA,YAHD;AAGC,YAFD;AAEC,QADM,UAAW;AAEjB,YAJD,SAIE;AAAD,YAHD,UAGE;AAAD,QAFM,UAAW,aAEhB;AACD,YALD,SAKE;AAAD,YAJD,UAIE;AAAD,QAHM,UAAW,aAGhB;AACD,YAND,SAME;AAAD,YALD,UAKE;AAAD,QAJM,UAAW,aAIhB;AACD,YAPD,SAOE;AAAD,YAND,UAME;AAAD,QALM,UAAW,aAKhB;EACC,yBAAA;EACI,qBAAA;;AS/cV,YTmdE;EACE,cAAA;EACA,yBAAA;;ASjdJ;ETgbE,cAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,SAAC;AACD,SAAC;AACD,SAAC;AACD,SAAC;AACD,KAAM,iBAAgB;EACpB,cAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,SAAC;AACD,SAAC;AACD,KAAM,iBAAgB;EACpB,sBAAA;;AAKA,SAHD;AAGC,SAFD;AAEC,QADM,UAAW;AAEjB,SAJD,SAIE;AAAD,SAHD,UAGE;AAAD,QAFM,UAAW,UAEhB;AACD,SALD,SAKE;AAAD,SAJD,UAIE;AAAD,QAHM,UAAW,UAGhB;AACD,SAND,SAME;AAAD,SALD,UAKE;AAAD,QAJM,UAAW,UAIhB;AACD,SAPD,SAOE;AAAD,SAND,UAME;AAAD,QALM,UAAW,UAKhB;EACC,yBAAA;EACI,qBAAA;;AS3cV,ST+cE;EACE,cAAA;EACA,yBAAA;;AS7cJ;ET4aE,cAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;AACD,YAAC;AACD,YAAC;AACD,KAAM,iBAAgB;EACpB,cAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,YAAC;AACD,YAAC;AACD,KAAM,iBAAgB;EACpB,sBAAA;;AAKA,YAHD;AAGC,YAFD;AAEC,QADM,UAAW;AAEjB,YAJD,SAIE;AAAD,YAHD,UAGE;AAAD,QAFM,UAAW,aAEhB;AACD,YALD,SAKE;AAAD,YAJD,UAIE;AAAD,QAHM,UAAW,aAGhB;AACD,YAND,SAME;AAAD,YALD,UAKE;AAAD,QAJM,UAAW,aAIhB;AACD,YAPD,SAOE;AAAD,YAND,UAME;AAAD,QALM,UAAW,aAKhB;EACC,yBAAA;EACI,qBAAA;;ASvcV,YT2cE;EACE,cAAA;EACA,yBAAA;;ASzcJ;ETwaE,cAAA;EACA,yBAAA;EACA,qBAAA;;AAEA,WAAC;AACD,WAAC;AACD,WAAC;AACD,WAAC;AACD,KAAM,iBAAgB;EACpB,cAAA;EACA,yBAAA;EACI,qBAAA;;AAEN,WAAC;AACD,WAAC;AACD,KAAM,iBAAgB;EACpB,sBAAA;;AAKA,WAHD;AAGC,WAFD;AAEC,QADM,UAAW;AAEjB,WAJD,SAIE;AAAD,WAHD,UAGE;AAAD,QAFM,UAAW,YAEhB;AACD,WALD,SAKE;AAAD,WAJD,UAIE;AAAD,QAHM,UAAW,YAGhB;AACD,WAND,SAME;AAAD,WALD,UAKE;AAAD,QAJM,UAAW,YAIhB;AACD,WAPD,SAOE;AAAD,WAND,UAME;AAAD,QALM,UAAW,YAKhB;EACC,yBAAA;EACI,qBAAA;;ASncV,WTucE;EACE,cAAA;EACA,yBAAA;;AShcJ;EACE,cAAA;EACA,mBAAA;EACA,eAAA;EACA,gBAAA;;AAEA;AACA,SAAC;AACD,SAAC;AACD,QAAQ,UAAW;EACjB,6BAAA;ET2BF,wBAAA;EACQ,gBAAA;;ASzBR;AACA,SAAC;AACD,SAAC;AACD,SAAC;EACC,yBAAA;;AAEF,SAAC;AACD,SAAC;EACC,cAAA;EACA,0BAAA;EACA,6BAAA;;AAIA,SAFD,UAEE;AAAD,QADM,UAAW,UAChB;AACD,SAHD,UAGE;AAAD,QAFM,UAAW,UAEhB;EACC,cAAA;EACA,qBAAA;;AASN;ACvBA,aAAc;EVubZ,kBAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;;AS/ZF;AC5BA,aAAc;EVwbZ,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;;AS3ZF;ACjCA,aAAc;EVybZ,gBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;;ASnZF;EACE,cAAA;EACA,WAAA;EACA,eAAA;EACA,gBAAA;;AAIF,UAAW;EACT,eAAA;;AAOA,KAHG,eAGF;AAAD,KAFG,cAEF;AAAD,KADG,eACF;EACC,WAAA;;AEnJJ;EACE,UAAA;EXqHA,wCAAA;EACQ,gCAAA;;AWpHR,KAAC;EACC,UAAA;;AAIJ;EACE,aAAA;;AACA,SAAC;EACC,cAAA;;AAGJ;EACE,kBAAA;EACA,SAAA;EACA,gBAAA;EXqGA,qCAAA;EACQ,6BAAA;;AYtHV;EACE,aAAa,sBAAb;EACA,qDAAA;EACA,2TAAA;;AAOF;EACE,kBAAA;EACA,QAAA;EACA,qBAAA;EACA,aAAa,sBAAb;EACA,kBAAA;EACA,mBAAA;EACA,cAAA;EACA,mCAAA;EACA,kCAAA;;AAIkC,mBAAC;EAAU,SAAS,KAAT;;AACX,eAAC;EAAU,SAAS,KAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,aAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,aAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,cAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,cAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,cAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,wBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,yBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,wBAAC;EAAU,SAAS,OAAT;;AACX,wBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,wBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,wBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,wBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,2BAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,wBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,0BAAC;EAAU,SAAS,OAAT;;AACX,4BAAC;EAAU,SAAS,OAAT;;AACX,cAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,6BAAC;EAAU,SAAS,OAAT;;AACX,4BAAC;EAAU,SAAS,OAAT;;AACX,0BAAC;EAAU,SAAS,OAAT;;AACX,4BAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,cAAC;EAAU,SAAS,OAAT;;AACX,cAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,2BAAC;EAAU,SAAS,OAAT;;AACX,+BAAC;EAAU,SAAS,OAAT;;AACX,wBAAC;EAAU,SAAS,OAAT;;AACX,4BAAC;EAAU,SAAS,OAAT;;AACX,6BAAC;EAAU,SAAS,OAAT;;AACX,iCAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,wBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,eAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,wBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,kBAAC;EAAU,SAAS,OAAT;;AACX,iBAAC;EAAU,SAAS,OAAT;;AACX,qBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,gBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,mBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,sBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,oBAAC;EAAU,SAAS,OAAT;;AACX,yBAAC;EAAU,SAAS,OAAT;;AACX,4BAAC;EAAU,SAAS,OAAT;;AACX,yBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,uBAAC;EAAU,SAAS,OAAT;;AACX,yBAAC;EAAU,SAAS,OAAT;;AClO/C;EACE,qBAAA;EACA,QAAA;EACA,SAAA;EACA,gBAAA;EACA,sBAAA;EACA,qBAAA;EACA,mCAAA;EACA,kCAAA;;AAIF;EACE,kBAAA;;AAIF,gBAAgB;EACd,UAAA;;AAIF;EACE,kBAAA;EACA,SAAA;EACA,OAAA;EACA,aAAA;EACA,aAAA;EACA,WAAA;EACA,gBAAA;EACA,cAAA;EACA,eAAA;EACA,gBAAA;EACA,eAAA;EACA,yBAAA;EACA,yBAAA;EACA,qCAAA;EACA,kBAAA;Eb8EA,mDAAA;EACQ,2CAAA;Ea7ER,4BAAA;;AAKA,cAAC;EACC,QAAA;EACA,UAAA;;AAxBJ,cA4BE;EboVA,WAAA;EACA,aAAA;EACA,gBAAA;EACA,yBAAA;;AanXF,cAiCE,KAAK;EACH,cAAA;EACA,iBAAA;EACA,WAAA;EACA,mBAAA;EACA,uBAAA;EACA,cAAA;EACA,mBAAA;;AAMF,cADa,KAAK,IACjB;AACD,cAFa,KAAK,IAEjB;EACC,qBAAA;EACA,cAAA;EACA,yBAAA;;AAMF,cADa,UAAU;AAEvB,cAFa,UAAU,IAEtB;AACD,cAHa,UAAU,IAGtB;EACC,cAAA;EACA,qBAAA;EACA,UAAA;EACA,yBAAA;;AASF,cADa,YAAY;AAEzB,cAFa,YAAY,IAExB;AACD,cAHa,YAAY,IAGxB;EACC,cAAA;;AAKF,cADa,YAAY,IACxB;AACD,cAFa,YAAY,IAExB;EACC,qBAAA;EACA,6BAAA;EACA,sBAAA;EbkPF,mEAAA;EahPE,mBAAA;;AAKJ,KAEE;EACE,cAAA;;AAHJ,KAOE;EACE,UAAA;;AAQJ;EACE,UAAA;EACA,QAAA;;AAQF;EACE,OAAA;EACA,WAAA;;AAIF;EACE,cAAA;EACA,iBAAA;EACA,eAAA;EACA,uBAAA;EACA,cAAA;;AAIF;EACE,eAAA;EACA,OAAA;EACA,QAAA;EACA,SAAA;EACA,MAAA;EACA,YAAA;;AAIF,WAAY;EACV,QAAA;EACA,UAAA;;AAQF,OAGE;AAFF,oBAAqB,UAEnB;EACE,aAAA;EACA,wBAAA;EACA,SAAS,EAAT;;AANJ,OASE;AARF,oBAAqB,UAQnB;EACE,SAAA;EACA,YAAA;EACA,kBAAA;;AAsBJ,QAb2C;EACzC,aACE;IAnEF,UAAA;IACA,QAAA;;EAiEA,aAME;IA9DF,OAAA;IACA,WAAA;;;AH7IF;AACA;EACE,kBAAA;EACA,qBAAA;EACA,sBAAA;;AAJF,UAKE;AAJF,mBAIE;EACE,kBAAA;EACA,WAAA;;AAEA,UAJF,OAIG;AAAD,mBAJF,OAIG;AACD,UALF,OAKG;AAAD,mBALF,OAKG;AACD,UANF,OAMG;AAAD,mBANF,OAMG;AACD,UAPF,OAOG;AAAD,mBAPF,OAOG;EACC,UAAA;;AAEF,UAVF,OAUG;AAAD,mBAVF,OAUG;EAEC,aAAA;;AAMN,UACE,KAAK;AADP,UAEE,KAAK;AAFP,UAGE,WAAW;AAHb,UAIE,WAAW;EACT,iBAAA;;AAKJ;EACE,iBAAA;;AADF,YAIE;AAJF,YAKE;EACE,WAAA;;AANJ,YAQE;AARF,YASE;AATF,YAUE;EACE,gBAAA;;AAIJ,UAAW,OAAM,IAAI,cAAc,IAAI,aAAa,IAAI;EACtD,gBAAA;;AAIF,UAAW,OAAM;EACf,cAAA;;AACA,UAFS,OAAM,YAEd,IAAI,aAAa,IAAI;EV2CtB,6BAAA;EACG,0BAAA;;AUvCL,UAAW,OAAM,WAAW,IAAI;AAChC,UAAW,mBAAkB,IAAI;EV6C/B,4BAAA;EACG,yBAAA;;AUzCL,UAAW;EACT,WAAA;;AAEF,UAAW,aAAY,IAAI,cAAc,IAAI,aAAc;EACzD,gBAAA;;AAEF,UAAW,aAAY,YACrB,OAAM;AADR,UAAW,aAAY,YAErB;EVwBA,6BAAA;EACG,0BAAA;;AUrBL,UAAW,aAAY,WAAY,OAAM;EV4BvC,4BAAA;EACG,yBAAA;;AUxBL,UAAW,iBAAgB;AAC3B,UAAU,KAAM;EACd,UAAA;;AAiBF,UAAW,OAAO;EAChB,iBAAA;EACA,kBAAA;;AAEF,UAAW,UAAU;EACnB,kBAAA;EACA,mBAAA;;AAKF,UAAU,KAAM;EVGd,wDAAA;EACQ,gDAAA;;AUAR,UAJQ,KAAM,iBAIb;EVDD,wBAAA;EACQ,gBAAA;;AUOV,IAAK;EACH,cAAA;;AAGF,OAAQ;EACN,uBAAA;EACA,sBAAA;;AAGF,OAAQ,QAAQ;EACd,uBAAA;;AAOF,mBACE;AADF,mBAEE;AAFF,mBAGE,aAAa;EACX,cAAA;EACA,WAAA;EACA,WAAA;EACA,eAAA;;AAPJ,mBAWE,aAEE;EACE,WAAA;;AAdN,mBAkBE,OAAO;AAlBT,mBAmBE,OAAO;AAnBT,mBAoBE,aAAa;AApBf,mBAqBE,aAAa;EACX,gBAAA;EACA,cAAA;;AAKF,mBADkB,OACjB,IAAI,cAAc,IAAI;EACrB,gBAAA;;AAEF,mBAJkB,OAIjB,YAAY,IAAI;EACf,4BAAA;EVvEF,6BAAA;EACC,4BAAA;;AUyED,mBARkB,OAQjB,WAAW,IAAI;EACd,8BAAA;EVnFF,0BAAA;EACC,yBAAA;;AUsFH,mBAAoB,aAAY,IAAI,cAAc,IAAI,aAAc;EAClE,gBAAA;;AAEF,mBAAoB,aAAY,YAAY,IAAI,aAC9C,OAAM;AADR,mBAAoB,aAAY,YAAY,IAAI,aAE9C;EVpFA,6BAAA;EACC,4BAAA;;AUuFH,mBAAoB,aAAY,WAAW,IAAI,cAAe,OAAM;EVhGlE,0BAAA;EACC,yBAAA;;AUwGH;EACE,cAAA;EACA,WAAA;EACA,mBAAA;EACA,yBAAA;;AAJF,oBAKE;AALF,oBAME;EACE,WAAA;EACA,mBAAA;EACA,SAAA;;AATJ,oBAWE,aAAa;EACX,WAAA;;AAMJ,uBAAwB,OAAO,QAAO;AACtC,uBAAwB,OAAO,QAAO;EACpC,aAAA;;AI1NF;EACE,kBAAA;EACA,cAAA;EACA,yBAAA;;AAGA,YAAC;EACC,WAAA;EACA,eAAA;EACA,gBAAA;;AATJ,YAYE;EAGE,kBAAA;EACA,UAAA;EAKA,WAAA;EAEA,WAAA;EACA,gBAAA;;AASJ,eAAgB;AAChB,eAAgB;AAChB,eAAgB,mBAAmB;Edw2BjC,YAAA;EACA,kBAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;;AAEA,MAAM,ech3BQ;Adg3Bd,MAAM,ec/2BQ;Ad+2Bd,MAAM,ec92BQ,mBAAmB;Ed+2B/B,YAAA;EACA,iBAAA;;AAGF,QAAQ,ecr3BM;Adq3Bd,QAAQ,ecp3BM;Ado3Bd,QAAQ,ecn3BM,mBAAmB;Ado3BjC,MAAM,UAAU,ect3BF;Ads3Bd,MAAM,UAAU,ecr3BF;Adq3Bd,MAAM,UAAU,ecp3BF,mBAAmB;Edq3B/B,YAAA;;Acp3BJ,eAAgB;AAChB,eAAgB;AAChB,eAAgB,mBAAmB;Edq2BjC,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;;AAEA,MAAM,ec72BQ;Ad62Bd,MAAM,ec52BQ;Ad42Bd,MAAM,ec32BQ,mBAAmB;Ed42B/B,YAAA;EACA,iBAAA;;AAGF,QAAQ,ecl3BM;Adk3Bd,QAAQ,ecj3BM;Adi3Bd,QAAQ,ech3BM,mBAAmB;Adi3BjC,MAAM,UAAU,ecn3BF;Adm3Bd,MAAM,UAAU,ecl3BF;Adk3Bd,MAAM,UAAU,ecj3BF,mBAAmB;Edk3B/B,YAAA;;Ac72BJ;AACA;AACA,YAAa;EACX,mBAAA;;AAEA,kBAAC,IAAI,cAAc,IAAI;AAAvB,gBAAC,IAAI,cAAc,IAAI;AAAvB,YAHW,cAGV,IAAI,cAAc,IAAI;EACrB,gBAAA;;AAIJ;AACA;EACE,SAAA;EACA,mBAAA;EACA,sBAAA;;AAKF;EACE,iBAAA;EACA,eAAA;EACA,mBAAA;EACA,cAAA;EACA,cAAA;EACA,kBAAA;EACA,yBAAA;EACA,yBAAA;EACA,kBAAA;;AAGA,kBAAC;EACC,iBAAA;EACA,eAAA;EACA,kBAAA;;AAEF,kBAAC;EACC,kBAAA;EACA,eAAA;EACA,kBAAA;;AApBJ,kBAwBE,MAAK;AAxBP,kBAyBE,MAAK;EACH,aAAA;;AAKJ,YAAa,cAAa;AAC1B,kBAAkB;AAClB,gBAAgB,YAAa;AAC7B,gBAAgB,YAAa,aAAa;AAC1C,gBAAgB,YAAa;AAC7B,gBAAgB,WAAY,OAAM,IAAI,aAAa,IAAI;AACvD,gBAAgB,WAAY,aAAY,IAAI,aAAc;EdFxD,6BAAA;EACG,0BAAA;;AcIL,kBAAkB;EAChB,eAAA;;AAEF,YAAa,cAAa;AAC1B,kBAAkB;AAClB,gBAAgB,WAAY;AAC5B,gBAAgB,WAAY,aAAa;AACzC,gBAAgB,WAAY;AAC5B,gBAAgB,YAAa,OAAM,IAAI;AACvC,gBAAgB,YAAa,aAAY,IAAI,cAAe;EdN1D,4BAAA;EACG,yBAAA;;AcQL,kBAAkB;EAChB,cAAA;;AAKF;EACE,kBAAA;EAGA,YAAA;EACA,mBAAA;;AALF,gBASE;EACE,kBAAA;;AAVJ,gBASE,OAEE;EACE,iBAAA;;AAGF,gBANF,OAMG;AACD,gBAPF,OAOG;AACD,gBARF,OAQG;EACC,UAAA;;AAKJ,gBAAC,YACC;AADF,gBAAC,YAEC;EACE,kBAAA;;AAGJ,gBAAC,WACC;AADF,gBAAC,WAEC;EACE,iBAAA;;ACtJN;EACE,gBAAA;EACA,eAAA;EACA,gBAAA;;AAHF,IAME;EACE,kBAAA;EACA,cAAA;;AARJ,IAME,KAIE;EACE,kBAAA;EACA,cAAA;EACA,kBAAA;;AACA,IARJ,KAIE,IAIG;AACD,IATJ,KAIE,IAKG;EACC,qBAAA;EACA,yBAAA;;AAKJ,IAhBF,KAgBG,SAAU;EACT,cAAA;;AAEA,IAnBJ,KAgBG,SAAU,IAGR;AACD,IApBJ,KAgBG,SAAU,IAIR;EACC,cAAA;EACA,qBAAA;EACA,6BAAA;EACA,mBAAA;;AAOJ,IADF,MAAM;AAEJ,IAFF,MAAM,IAEH;AACD,IAHF,MAAM,IAGH;EACC,yBAAA;EACA,qBAAA;;AAzCN,IAkDE;EfkVA,WAAA;EACA,aAAA;EACA,gBAAA;EACA,yBAAA;;AevYF,IAyDE,KAAK,IAAI;EACP,eAAA;;AASJ;EACE,gCAAA;;AADF,SAEE;EACE,WAAA;EAEA,mBAAA;;AALJ,SAEE,KAME;EACE,iBAAA;EACA,uBAAA;EACA,6BAAA;EACA,0BAAA;;AACA,SAXJ,KAME,IAKG;EACC,qCAAA;;AAMF,SAlBJ,KAiBG,OAAQ;AAEP,SAnBJ,KAiBG,OAAQ,IAEN;AACD,SApBJ,KAiBG,OAAQ,IAGN;EACC,cAAA;EACA,yBAAA;EACA,yBAAA;EACA,gCAAA;EACA,eAAA;;AAKN,SAAC;EAqDD,WAAA;EA8BA,gBAAA;;AAnFA,SAAC,cAuDD;EACE,WAAA;;AAxDF,SAAC,cAuDD,KAEG;EACC,kBAAA;EACA,kBAAA;;AA3DJ,SAAC,cA+DD,YAAY;EACV,SAAA;EACA,UAAA;;AAYJ,QATqC;EASrC,SA7EG,cAqEC;IACE,mBAAA;IACA,SAAA;;EAMN,SA7EG,cAqEC,KAGE;IACE,gBAAA;;;AAzEN,SAAC,cAqFD,KAAK;EAEH,eAAA;EACA,kBAAA;;AAxFF,SAAC,cA2FD,UAAU;AA3FV,SAAC,cA4FD,UAAU,IAAG;AA5Fb,SAAC,cA6FD,UAAU,IAAG;EACX,yBAAA;;AAcJ,QAXqC;EAWrC,SA5GG,cAkGC,KAAK;IACH,gCAAA;IACA,0BAAA;;EAQN,SA5GG,cAsGC,UAAU;EAMd,SA5GG,cAuGC,UAAU,IAAG;EAKjB,SA5GG,cAwGC,UAAU,IAAG;IACX,4BAAA;;;AAhGN,UACE;EACE,WAAA;;AAFJ,UACE,KAIE;EACE,kBAAA;;AANN,UACE,KAOE;EACE,gBAAA;;AAKA,UAbJ,KAYG,OAAQ;AAEP,UAdJ,KAYG,OAAQ,IAEN;AACD,UAfJ,KAYG,OAAQ,IAGN;EACC,cAAA;EACA,yBAAA;;AAQR,YACE;EACE,WAAA;;AAFJ,YACE,KAEE;EACE,eAAA;EACA,cAAA;;AAYN;EACE,WAAA;;AADF,cAGE;EACE,WAAA;;AAJJ,cAGE,KAEG;EACC,kBAAA;EACA,kBAAA;;AAPN,cAWE,YAAY;EACV,SAAA;EACA,UAAA;;AAYJ,QATqC;EASrC,cARI;IACE,mBAAA;IACA,SAAA;;EAMN,cARI,KAGE;IACE,gBAAA;;;AASR;EACE,gBAAA;;AADF,mBAGE,KAAK;EAEH,eAAA;EACA,kBAAA;;AANJ,mBASE,UAAU;AATZ,mBAUE,UAAU,IAAG;AAVf,mBAWE,UAAU,IAAG;EACX,yBAAA;;AAcJ,QAXqC;EAWrC,mBAVI,KAAK;IACH,gCAAA;IACA,0BAAA;;EAQN,mBANI,UAAU;EAMd,mBALI,UAAU,IAAG;EAKjB,mBAJI,UAAU,IAAG;IACX,4BAAA;;;AAUN,YACE;EACE,aAAA;;AAFJ,YAIE;EACE,cAAA;;AASJ,SAAU;EAER,gBAAA;Ef3IA,0BAAA;EACC,yBAAA;;AgB1FH;EACE,kBAAA;EACA,gBAAA;EACA,mBAAA;EACA,6BAAA;;AAQF,QAH6C;EAG7C;IAFI,kBAAA;;;AAgBJ,QAH6C;EAG7C;IAFI,WAAA;;;AAeJ;EACE,iBAAA;EACA,mBAAA;EACA,mBAAA;EACA,kBAAA;EACA,iCAAA;EACA,kDAAA;EAEA,iCAAA;;AAEA,gBAAC;EACC,gBAAA;;AA4BJ,QAzB6C;EAyB7C;IAxBI,WAAA;IACA,aAAA;IACA,gBAAA;;EAEA,gBAAC;IACC,yBAAA;IACA,uBAAA;IACA,iBAAA;IACA,4BAAA;;EAGF,gBAAC;IACC,mBAAA;;EAKF,iBAAkB;EAClB,kBAAmB;EACnB,oBAAqB;IACnB,eAAA;IACA,gBAAA;;;AAUN,UAEE;AADF,gBACE;AAFF,UAGE;AAFF,gBAEE;EACE,mBAAA;EACA,kBAAA;;AAMF,QAJ6C;EAI7C,UATA;EASA,gBATA;EASA,UARA;EAQA,gBARA;IAKI,eAAA;IACA,cAAA;;;AAaN;EACE,aAAA;EACA,qBAAA;;AAKF,QAH6C;EAG7C;IAFI,gBAAA;;;AAKJ;AACA;EACE,eAAA;EACA,QAAA;EACA,OAAA;EACA,aAAA;;AAMF,QAH6C;EAG7C;EAAA;IAFI,gBAAA;;;AAGJ;EACE,MAAA;EACA,qBAAA;;AAEF;EACE,SAAA;EACA,gBAAA;EACA,qBAAA;;AAMF;EACE,WAAA;EACA,kBAAA;EACA,eAAA;EACA,iBAAA;EACA,YAAA;;AAEA,aAAC;AACD,aAAC;EACC,qBAAA;;AASJ,QAN6C;EACzC,OAAQ,aAAa;EACrB,OAAQ,mBAAmB;IACzB,kBAAA;;;AAWN;EACE,kBAAA;EACA,YAAA;EACA,kBAAA;EACA,iBAAA;EhBsaA,eAAA;EACA,kBAAA;EgBraA,6BAAA;EACA,sBAAA;EACA,6BAAA;EACA,kBAAA;;AAIA,cAAC;EACC,aAAA;;AAdJ,cAkBE;EACE,cAAA;EACA,WAAA;EACA,WAAA;EACA,kBAAA;;AAtBJ,cAwBE,UAAU;EACR,eAAA;;AAMJ,QAH6C;EAG7C;IAFI,aAAA;;;AAUJ;EACE,mBAAA;;AADF,WAGE,KAAK;EACH,iBAAA;EACA,oBAAA;EACA,iBAAA;;AA2BF,QAxB+C;EAwB/C,WAtBE,MAAM;IACJ,gBAAA;IACA,WAAA;IACA,WAAA;IACA,aAAA;IACA,6BAAA;IACA,SAAA;IACA,gBAAA;;EAeJ,WAtBE,MAAM,eAQJ,KAAK;EAcT,WAtBE,MAAM,eASJ;IACE,0BAAA;;EAYN,WAtBE,MAAM,eAYJ,KAAK;IACH,iBAAA;;EACA,WAdJ,MAAM,eAYJ,KAAK,IAEF;EACD,WAfJ,MAAM,eAYJ,KAAK,IAGF;IACC,sBAAA;;;AAuBV,QAhB6C;EAgB7C;IAfI,WAAA;IACA,SAAA;;EAcJ,WAZI;IACE,WAAA;;EAWN,WAZI,KAEE;IACE,iBAAA;IACA,oBAAA;;EAIJ,WAAC,aAAa;IACZ,mBAAA;;;AAkBN,QAN2C;EACzC;ICnQA,sBAAA;;EDoQA;ICvQA,uBAAA;;;ADgRF;EACE,kBAAA;EACA,mBAAA;EACA,kBAAA;EACA,iCAAA;EACA,oCAAA;EhB3KA,4FAAA;EACQ,oFAAA;EAkeR,eAAA;EACA,kBAAA;;AQ3NF,QAjDqC;EAiDrC,YA/CI;IACE,qBAAA;IACA,gBAAA;IACA,sBAAA;;EA4CN,YAxCI;IACE,qBAAA;IACA,WAAA;IACA,sBAAA;;EAqCN,YAlCI,aAAa;IACX,WAAA;;EAiCN,YA9BI;IACE,gBAAA;IACA,sBAAA;;EA4BN,YAtBI;EAsBJ,YArBI;IACE,qBAAA;IACA,aAAA;IACA,gBAAA;IACA,eAAA;IACA,sBAAA;;EAgBN,YAdI,OAAO,MAAK;EAchB,YAbI,UAAU,MAAK;IACb,WAAA;IACA,cAAA;;EAWN,YAJI,cAAc;IACZ,MAAA;;;AQhFJ,QAHiD;EAGjD,YAJA;IAEI,kBAAA;;;AAsBN,QAd6C;EAc7C;IAbI,WAAA;IACA,SAAA;IACA,cAAA;IACA,eAAA;IACA,cAAA;IACA,iBAAA;IhBlMF,wBAAA;IACQ,gBAAA;;EgBqMN,YAAC,aAAa;IACZ,mBAAA;;;AASN,WAAY,KAAK;EACf,aAAA;EhBvOA,0BAAA;EACC,yBAAA;;AgB0OH,oBAAqB,YAAY,KAAK;EhBnOpC,6BAAA;EACC,4BAAA;;AgB2OH;EhBqQE,eAAA;EACA,kBAAA;;AgBnQA,WAAC;EhBkQD,gBAAA;EACA,mBAAA;;AgBhQA,WAAC;EhB+PD,gBAAA;EACA,mBAAA;;AgBtPF;EhBqPE,gBAAA;EACA,mBAAA;;AgBzOF,QAV6C;EAU7C;IATI,WAAA;IACA,iBAAA;IACA,kBAAA;;EAGA,YAAC,aAAa;IACZ,eAAA;;;AASN;EACE,yBAAA;EACA,qBAAA;;AAFF,eAIE;EACE,cAAA;;AACA,eAFF,cAEG;AACD,eAHF,cAGG;EACC,cAAA;EACA,6BAAA;;AATN,eAaE;EACE,cAAA;;AAdJ,eAiBE,YACE,KAAK;EACH,cAAA;;AAEA,eAJJ,YACE,KAAK,IAGF;AACD,eALJ,YACE,KAAK,IAIF;EACC,cAAA;EACA,6BAAA;;AAIF,eAXJ,YAUE,UAAU;AAER,eAZJ,YAUE,UAAU,IAEP;AACD,eAbJ,YAUE,UAAU,IAGP;EACC,cAAA;EACA,yBAAA;;AAIF,eAnBJ,YAkBE,YAAY;AAEV,eApBJ,YAkBE,YAAY,IAET;AACD,eArBJ,YAkBE,YAAY,IAGT;EACC,cAAA;EACA,6BAAA;;AAxCR,eA6CE;EACE,qBAAA;;AACA,eAFF,eAEG;AACD,eAHF,eAGG;EACC,yBAAA;;AAjDN,eA6CE,eAME;EACE,yBAAA;;AApDN,eAwDE;AAxDF,eAyDE;EACE,qBAAA;;AAOE,eAHJ,YAEE,QAAQ;AAEN,eAJJ,YAEE,QAAQ,IAEL;AACD,eALJ,YAEE,QAAQ,IAGL;EACC,yBAAA;EACA,cAAA;;AAiCN,QA7BiD;EA6BjD,eAxCA,YAaI,MAAM,eACJ,KAAK;IACH,cAAA;;EACA,eAhBR,YAaI,MAAM,eACJ,KAAK,IAEF;EACD,eAjBR,YAaI,MAAM,eACJ,KAAK,IAGF;IACC,cAAA;IACA,6BAAA;;EAIF,eAvBR,YAaI,MAAM,eASJ,UAAU;EAER,eAxBR,YAaI,MAAM,eASJ,UAAU,IAEP;EACD,eAzBR,YAaI,MAAM,eASJ,UAAU,IAGP;IACC,cAAA;IACA,yBAAA;;EAIF,eA/BR,YAaI,MAAM,eAiBJ,YAAY;EAEV,eAhCR,YAaI,MAAM,eAiBJ,YAAY,IAET;EACD,eAjCR,YAaI,MAAM,eAiBJ,YAAY,IAGT;IACC,cAAA;IACA,6BAAA;;;AAjGZ,eA6GE;EACE,cAAA;;AACA,eAFF,aAEG;EACC,cAAA;;AAQN;EACE,yBAAA;EACA,qBAAA;;AAFF,eAIE;EACE,cAAA;;AACA,eAFF,cAEG;AACD,eAHF,cAGG;EACC,cAAA;EACA,6BAAA;;AATN,eAaE;EACE,cAAA;;AAdJ,eAiBE,YACE,KAAK;EACH,cAAA;;AAEA,eAJJ,YACE,KAAK,IAGF;AACD,eALJ,YACE,KAAK,IAIF;EACC,cAAA;EACA,6BAAA;;AAIF,eAXJ,YAUE,UAAU;AAER,eAZJ,YAUE,UAAU,IAEP;AACD,eAbJ,YAUE,UAAU,IAGP;EACC,cAAA;EACA,yBAAA;;AAIF,eAnBJ,YAkBE,YAAY;AAEV,eApBJ,YAkBE,YAAY,IAET;AACD,eArBJ,YAkBE,YAAY,IAGT;EACC,cAAA;EACA,6BAAA;;AAxCR,eA8CE;EACE,qBAAA;;AACA,eAFF,eAEG;AACD,eAHF,eAGG;EACC,yBAAA;;AAlDN,eA8CE,eAME;EACE,yBAAA;;AArDN,eAyDE;AAzDF,eA0DE;EACE,qBAAA;;AAME,eAFJ,YACE,QAAQ;AAEN,eAHJ,YACE,QAAQ,IAEL;AACD,eAJJ,YACE,QAAQ,IAGL;EACC,yBAAA;EACA,cAAA;;AAuCN,QAnCiD;EAmCjD,eA7CA,YAYI,MAAM,eACJ;IACE,qBAAA;;EA+BR,eA7CA,YAYI,MAAM,eAIJ;IACE,yBAAA;;EA4BR,eA7CA,YAYI,MAAM,eAOJ,KAAK;IACH,cAAA;;EACA,eArBR,YAYI,MAAM,eAOJ,KAAK,IAEF;EACD,eAtBR,YAYI,MAAM,eAOJ,KAAK,IAGF;IACC,cAAA;IACA,6BAAA;;EAIF,eA5BR,YAYI,MAAM,eAeJ,UAAU;EAER,eA7BR,YAYI,MAAM,eAeJ,UAAU,IAEP;EACD,eA9BR,YAYI,MAAM,eAeJ,UAAU,IAGP;IACC,cAAA;IACA,yBAAA;;EAIF,eApCR,YAYI,MAAM,eAuBJ,YAAY;EAEV,eArCR,YAYI,MAAM,eAuBJ,YAAY,IAET;EACD,eAtCR,YAYI,MAAM,eAuBJ,YAAY,IAGT;IACC,cAAA;IACA,6BAAA;;;AAvGZ,eA8GE;EACE,cAAA;;AACA,eAFF,aAEG;EACC,cAAA;;AE9lBN;EACE,iBAAA;EACA,mBAAA;EACA,gBAAA;EACA,yBAAA;EACA,kBAAA;;AALF,WAOE;EACE,qBAAA;;AARJ,WAOE,KAGE,KAAI;EACF,SAAS,QAAT;EACA,cAAA;EACA,cAAA;;AAbN,WAiBE;EACE,cAAA;;ACpBJ;EACE,qBAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;;AAJF,WAME;EACE,eAAA;;AAPJ,WAME,KAEE;AARJ,WAME,KAGE;EACE,kBAAA;EACA,WAAA;EACA,iBAAA;EACA,uBAAA;EACA,qBAAA;EACA,cAAA;EACA,yBAAA;EACA,yBAAA;EACA,iBAAA;;AAEF,WAdF,KAcG,YACC;AADF,WAdF,KAcG,YAEC;EACE,cAAA;EnBqFN,8BAAA;EACG,2BAAA;;AmBlFD,WArBF,KAqBG,WACC;AADF,WArBF,KAqBG,WAEC;EnBuEJ,+BAAA;EACG,4BAAA;;AmBhED,WAFF,KAAK,IAEF;AAAD,WADF,KAAK,OACF;AACD,WAHF,KAAK,IAGF;AAAD,WAFF,KAAK,OAEF;EACC,cAAA;EACA,yBAAA;EACA,qBAAA;;AAMF,WAFF,UAAU;AAER,WADF,UAAU;AAER,WAHF,UAAU,IAGP;AAAD,WAFF,UAAU,OAEP;AACD,WAJF,UAAU,IAIP;AAAD,WAHF,UAAU,OAGP;EACC,UAAA;EACA,cAAA;EACA,yBAAA;EACA,qBAAA;EACA,eAAA;;AAtDN,WA0DE,YACE;AA3DJ,WA0DE,YAEE,OAAM;AA5DV,WA0DE,YAGE,OAAM;AA7DV,WA0DE,YAIE;AA9DJ,WA0DE,YAKE,IAAG;AA/DP,WA0DE,YAME,IAAG;EACD,cAAA;EACA,yBAAA;EACA,qBAAA;EACA,mBAAA;;AASN,cnBodE,KACE;AmBrdJ,cnBodE,KAEE;EACE,kBAAA;EACA,eAAA;;AAEF,cANF,KAMG,YACC;AADF,cANF,KAMG,YAEC;EA7bJ,8BAAA;EACG,2BAAA;;AAgcD,cAZF,KAYG,WACC;AADF,cAZF,KAYG,WAEC;EA3cJ,+BAAA;EACG,4BAAA;;AmBnBL,cnB+cE,KACE;AmBhdJ,cnB+cE,KAEE;EACE,iBAAA;EACA,eAAA;;AAEF,cANF,KAMG,YACC;AADF,cANF,KAMG,YAEC;EA7bJ,8BAAA;EACG,2BAAA;;AAgcD,cAZF,KAYG,WACC;AADF,cAZF,KAYG,WAEC;EA3cJ,+BAAA;EACG,4BAAA;;AoBnGL;EACE,eAAA;EACA,cAAA;EACA,gBAAA;EACA,kBAAA;;AAJF,MAME;EACE,eAAA;;AAPJ,MAME,GAEE;AARJ,MAME,GAGE;EACE,qBAAA;EACA,iBAAA;EACA,yBAAA;EACA,yBAAA;EACA,mBAAA;;AAdN,MAME,GAWE,IAAG;AAjBP,MAME,GAYE,IAAG;EACD,qBAAA;EACA,yBAAA;;AApBN,MAwBE,MACE;AAzBJ,MAwBE,MAEE;EACE,YAAA;;AA3BN,MA+BE,UACE;AAhCJ,MA+BE,UAEE;EACE,WAAA;;AAlCN,MAsCE,UACE;AAvCJ,MAsCE,UAEE,IAAG;AAxCP,MAsCE,UAGE,IAAG;AAzCP,MAsCE,UAIE;EACE,cAAA;EACA,yBAAA;EACA,mBAAA;;AC9CN;EACE,eAAA;EACA,uBAAA;EACA,cAAA;EACA,iBAAA;EACA,cAAA;EACA,cAAA;EACA,kBAAA;EACA,mBAAA;EACA,wBAAA;EACA,oBAAA;;AAIE,MADD,MACE;AACD,MAFD,MAEE;EACC,cAAA;EACA,qBAAA;EACA,eAAA;;AAKJ,MAAC;EACC,aAAA;;AAIF,IAAK;EACH,kBAAA;EACA,SAAA;;AAOJ;ErBmhBE,yBAAA;;AAEE,cADD,MACE;AACD,cAFD,MAEE;EACC,yBAAA;;AqBnhBN;ErB+gBE,yBAAA;;AAEE,cADD,MACE;AACD,cAFD,MAEE;EACC,yBAAA;;AqB/gBN;ErB2gBE,yBAAA;;AAEE,cADD,MACE;AACD,cAFD,MAEE;EACC,yBAAA;;AqB3gBN;ErBugBE,yBAAA;;AAEE,WADD,MACE;AACD,WAFD,MAEE;EACC,yBAAA;;AqBvgBN;ErBmgBE,yBAAA;;AAEE,cADD,MACE;AACD,cAFD,MAEE;EACC,yBAAA;;AqBngBN;ErB+fE,yBAAA;;AAEE,aADD,MACE;AACD,aAFD,MAEE;EACC,yBAAA;;AsB1jBN;EACE,qBAAA;EACA,eAAA;EACA,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,cAAA;EACA,cAAA;EACA,wBAAA;EACA,mBAAA;EACA,kBAAA;EACA,yBAAA;EACA,mBAAA;;AAGA,MAAC;EACC,aAAA;;AAIF,IAAK;EACH,kBAAA;EACA,SAAA;;AAEF,OAAQ;EACN,MAAA;EACA,gBAAA;;AAMF,CADD,MACE;AACD,CAFD,MAEE;EACC,cAAA;EACA,qBAAA;EACA,eAAA;;AAKJ,CAAC,gBAAgB,OAAQ;AACzB,UAAW,UAAU,IAAI;EACvB,cAAA;EACA,yBAAA;;AAEF,UAAW,KAAK,IAAI;EAClB,gBAAA;;AChDF;EACE,aAAA;EACA,mBAAA;EACA,cAAA;EACA,yBAAA;;AAJF,UAME;AANF,UAOE;EACE,cAAA;;AARJ,UAUE;EACE,mBAAA;EACA,eAAA;EACA,gBAAA;;AAGF,UAAW;EACT,kBAAA;;AAjBJ,UAoBE;EACE,eAAA;;AAiBJ,mBAdgD;EAchD;IAbI,iBAAA;IACA,oBAAA;;EAEA,UAAW;IACT,kBAAA;IACA,mBAAA;;EAQN,UALI;EAKJ,UAJI;IACE,eAAA;;;ArBlCN;EACE,cAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,yBAAA;EACA,yBAAA;EACA,kBAAA;EFkHA,wCAAA;EACQ,gCAAA;;AE1HV,UAUE;AAVF,UAWE,EAAE;EAEA,iBAAA;EACA,kBAAA;;AAIF,CAAC,UAAC;AACF,CAAC,UAAC;AACF,CAAC,UAAC;EACA,qBAAA;;AArBJ,UAyBE;EACE,YAAA;EACA,cAAA;;AsBzBJ;EACE,aAAA;EACA,mBAAA;EACA,6BAAA;EACA,kBAAA;;AAJF,MAOE;EACE,aAAA;EAEA,cAAA;;AAVJ,MAaE;EACE,iBAAA;;AAdJ,MAkBE;AAlBF,MAmBE;EACE,gBAAA;;AApBJ,MAsBE,IAAI;EACF,eAAA;;AAQJ;EACC,mBAAA;;AADD,kBAIE;EACE,kBAAA;EACA,SAAA;EACA,YAAA;EACA,cAAA;;AAQJ;ExBmXE,yBAAA;EACA,qBAAA;EACA,cAAA;;AwBrXF,cxBuXE;EACE,yBAAA;;AwBxXJ,cxB0XE;EACE,cAAA;;AwBxXJ;ExBgXE,yBAAA;EACA,qBAAA;EACA,cAAA;;AwBlXF,WxBoXE;EACE,yBAAA;;AwBrXJ,WxBuXE;EACE,cAAA;;AwBrXJ;ExB6WE,yBAAA;EACA,qBAAA;EACA,cAAA;;AwB/WF,cxBiXE;EACE,yBAAA;;AwBlXJ,cxBoXE;EACE,cAAA;;AwBlXJ;ExB0WE,yBAAA;EACA,qBAAA;EACA,cAAA;;AwB5WF,axB8WE;EACE,yBAAA;;AwB/WJ,axBiXE;EACE,cAAA;;AyBzaJ;EACE;IAAQ,2BAAA;;EACR;IAAQ,wBAAA;;;AAIV;EACE;IAAQ,2BAAA;;EACR;IAAQ,wBAAA;;;AASV;EACE,gBAAA;EACA,YAAA;EACA,mBAAA;EACA,yBAAA;EACA,kBAAA;EzB0FA,sDAAA;EACQ,8CAAA;;AyBtFV;EACE,WAAA;EACA,SAAA;EACA,YAAA;EACA,eAAA;EACA,iBAAA;EACA,cAAA;EACA,kBAAA;EACA,yBAAA;EzB6EA,sDAAA;EACQ,8CAAA;EAKR,mCAAA;EACQ,2BAAA;;AyB9EV,iBAAkB;EzBqSd,kBAAkB,2LAAlB;EACA,kBAAkB,mLAAlB;EyBpSF,0BAAA;;AAIF,SAAS,OAAQ;EzBoJf,0DAAA;EACQ,kDAAA;;AyB5IV;EzBkiBE,yBAAA;;AACA,iBAAkB;EA7QhB,kBAAkB,2LAAlB;EACA,kBAAkB,mLAAlB;;AyBnRJ;EzB8hBE,yBAAA;;AACA,iBAAkB;EA7QhB,kBAAkB,2LAAlB;EACA,kBAAkB,mLAAlB;;AyB/QJ;EzB0hBE,yBAAA;;AACA,iBAAkB;EA7QhB,kBAAkB,2LAAlB;EACA,kBAAkB,mLAAlB;;AyB3QJ;EzBshBE,yBAAA;;AACA,iBAAkB;EA7QhB,kBAAkB,2LAAlB;EACA,kBAAkB,mLAAlB;;A0B/UJ;AACA;EACE,gBAAA;EACA,OAAA;;AAIF;AACA,MAAO;EACL,gBAAA;;AAEF,MAAM;EACJ,aAAA;;AAIF;EACE,cAAA;;AAIF;EACE,eAAA;;AAOF,MACE;EACE,kBAAA;;AAFJ,MAIE;EACE,iBAAA;;AASJ;EACE,eAAA;EACA,gBAAA;;AC7CF;EAEE,mBAAA;EACA,eAAA;;AAQF;EACE,kBAAA;EACA,cAAA;EACA,kBAAA;EAEA,mBAAA;EACA,yBAAA;EACA,yBAAA;;AAGA,gBAAC;E3BqED,4BAAA;EACC,2BAAA;;A2BnED,gBAAC;EACC,gBAAA;E3ByEF,+BAAA;EACC,8BAAA;;A2BxFH,gBAmBE;EACE,YAAA;;AApBJ,gBAsBE,SAAS;EACP,iBAAA;;AAUJ,CAAC;EACC,cAAA;;AADF,CAAC,gBAGC;EACE,cAAA;;AAIF,CARD,gBAQE;AACD,CATD,gBASE;EACC,qBAAA;EACA,yBAAA;;AAIF,CAfD,gBAeE;AACD,CAhBD,gBAgBE,OAAO;AACR,CAjBD,gBAiBE,OAAO;EACN,UAAA;EACA,cAAA;EACA,yBAAA;EACA,qBAAA;;AANF,CAfD,gBAeE,OASC;AARF,CAhBD,gBAgBE,OAAO,MAQN;AAPF,CAjBD,gBAiBE,OAAO,MAON;EACE,cAAA;;AAVJ,CAfD,gBAeE,OAYC;AAXF,CAhBD,gBAgBE,OAAO,MAWN;AAVF,CAjBD,gBAiBE,OAAO,MAUN;EACE,cAAA;;A3BoYJ,iBAAiB;EACf,cAAA;EACA,yBAAA;;AAEA,CAAC,iBAJc;EAKb,cAAA;;AADF,CAAC,iBAJc,OAOb;EAA2B,cAAA;;AAE3B,CALD,iBAJc,OASZ;AACD,CAND,iBAJc,OAUZ;EACC,cAAA;EACA,yBAAA;;AAEF,CAVD,iBAJc,OAcZ;AACD,CAXD,iBAJc,OAeZ,OAAO;AACR,CAZD,iBAJc,OAgBZ,OAAO;EACN,WAAA;EACA,yBAAA;EACA,qBAAA;;AAnBN,iBAAiB;EACf,cAAA;EACA,yBAAA;;AAEA,CAAC,iBAJc;EAKb,cAAA;;AADF,CAAC,iBAJc,IAOb;EAA2B,cAAA;;AAE3B,CALD,iBAJc,IASZ;AACD,CAND,iBAJc,IAUZ;EACC,cAAA;EACA,yBAAA;;AAEF,CAVD,iBAJc,IAcZ;AACD,CAXD,iBAJc,IAeZ,OAAO;AACR,CAZD,iBAJc,IAgBZ,OAAO;EACN,WAAA;EACA,yBAAA;EACA,qBAAA;;AAnBN,iBAAiB;EACf,cAAA;EACA,yBAAA;;AAEA,CAAC,iBAJc;EAKb,cAAA;;AADF,CAAC,iBAJc,OAOb;EAA2B,cAAA;;AAE3B,CALD,iBAJc,OASZ;AACD,CAND,iBAJc,OAUZ;EACC,cAAA;EACA,yBAAA;;AAEF,CAVD,iBAJc,OAcZ;AACD,CAXD,iBAJc,OAeZ,OAAO;AACR,CAZD,iBAJc,OAgBZ,OAAO;EACN,WAAA;EACA,yBAAA;EACA,qBAAA;;AAnBN,iBAAiB;EACf,cAAA;EACA,yBAAA;;AAEA,CAAC,iBAJc;EAKb,cAAA;;AADF,CAAC,iBAJc,MAOb;EAA2B,cAAA;;AAE3B,CALD,iBAJc,MASZ;AACD,CAND,iBAJc,MAUZ;EACC,cAAA;EACA,yBAAA;;AAEF,CAVD,iBAJc,MAcZ;AACD,CAXD,iBAJc,MAeZ,OAAO;AACR,CAZD,iBAJc,MAgBZ,OAAO;EACN,WAAA;EACA,yBAAA;EACA,qBAAA;;A2BlYR;EACE,aAAA;EACA,kBAAA;;AAEF;EACE,gBAAA;EACA,gBAAA;;ACtGF;EACE,mBAAA;EACA,yBAAA;EACA,6BAAA;EACA,kBAAA;E5B+GA,iDAAA;EACQ,yCAAA;;A4B3GV;EACE,aAAA;;AAKF;EACE,kBAAA;EACA,oCAAA;E5B4EA,4BAAA;EACC,2BAAA;;A4B/EH,cAKE,YAAY;EACV,cAAA;;AAKJ;EACE,aAAA;EACA,gBAAA;EACA,eAAA;EACA,cAAA;;AAJF,YAME;EACE,cAAA;;AAKJ;EACE,kBAAA;EACA,yBAAA;EACA,6BAAA;E5B4DA,+BAAA;EACC,8BAAA;;A4BnDH,MACE;EACE,gBAAA;;AAFJ,MACE,cAGE;EACE,mBAAA;EACA,gBAAA;;AAIF,MATF,cASG,YACC,iBAAgB;EACd,aAAA;E5B8BN,4BAAA;EACC,2BAAA;;A4B1BC,MAhBF,cAgBG,WACC,iBAAgB;EACd,gBAAA;E5B+BN,+BAAA;EACC,8BAAA;;A4BzBH,cAAe,cACb,iBAAgB;EACd,mBAAA;;AAUJ,MACE;AADF,MAEE,oBAAoB;EAClB,gBAAA;;AAHJ,MAME,SAAQ;AANV,MAOE,oBAAmB,YAAa,SAAQ;E5BHxC,4BAAA;EACC,2BAAA;;A4BLH,MAME,SAAQ,YAIN,QAAO,YAEL,KAAI,YACF,GAAE;AAbV,MAOE,oBAAmB,YAAa,SAAQ,YAGtC,QAAO,YAEL,KAAI,YACF,GAAE;AAbV,MAME,SAAQ,YAKN,QAAO,YACL,KAAI,YACF,GAAE;AAbV,MAOE,oBAAmB,YAAa,SAAQ,YAItC,QAAO,YACL,KAAI,YACF,GAAE;AAbV,MAME,SAAQ,YAIN,QAAO,YAEL,KAAI,YAEF,GAAE;AAdV,MAOE,oBAAmB,YAAa,SAAQ,YAGtC,QAAO,YAEL,KAAI,YAEF,GAAE;AAdV,MAME,SAAQ,YAKN,QAAO,YACL,KAAI,YAEF,GAAE;AAdV,MAOE,oBAAmB,YAAa,SAAQ,YAItC,QAAO,YACL,KAAI,YAEF,GAAE;EACA,2BAAA;;AAfV,MAME,SAAQ,YAIN,QAAO,YAEL,KAAI,YAKF,GAAE;AAjBV,MAOE,oBAAmB,YAAa,SAAQ,YAGtC,QAAO,YAEL,KAAI,YAKF,GAAE;AAjBV,MAME,SAAQ,YAKN,QAAO,YACL,KAAI,YAKF,GAAE;AAjBV,MAOE,oBAAmB,YAAa,SAAQ,YAItC,QAAO,YACL,KAAI,YAKF,GAAE;AAjBV,MAME,SAAQ,YAIN,QAAO,YAEL,KAAI,YAMF,GAAE;AAlBV,MAOE,oBAAmB,YAAa,SAAQ,YAGtC,QAAO,YAEL,KAAI,YAMF,GAAE;AAlBV,MAME,SAAQ,YAKN,QAAO,YACL,KAAI,YAMF,GAAE;AAlBV,MAOE,oBAAmB,YAAa,SAAQ,YAItC,QAAO,YACL,KAAI,YAMF,GAAE;EACA,4BAAA;;AAnBV,MAyBE,SAAQ;AAzBV,MA0BE,oBAAmB,WAAY,SAAQ;E5BdvC,+BAAA;EACC,8BAAA;;A4BbH,MAyBE,SAAQ,WAIN,QAAO,WAEL,KAAI,WACF,GAAE;AAhCV,MA0BE,oBAAmB,WAAY,SAAQ,WAGrC,QAAO,WAEL,KAAI,WACF,GAAE;AAhCV,MAyBE,SAAQ,WAKN,QAAO,WACL,KAAI,WACF,GAAE;AAhCV,MA0BE,oBAAmB,WAAY,SAAQ,WAIrC,QAAO,WACL,KAAI,WACF,GAAE;AAhCV,MAyBE,SAAQ,WAIN,QAAO,WAEL,KAAI,WAEF,GAAE;AAjCV,MA0BE,oBAAmB,WAAY,SAAQ,WAGrC,QAAO,WAEL,KAAI,WAEF,GAAE;AAjCV,MAyBE,SAAQ,WAKN,QAAO,WACL,KAAI,WAEF,GAAE;AAjCV,MA0BE,oBAAmB,WAAY,SAAQ,WAIrC,QAAO,WACL,KAAI,WAEF,GAAE;EACA,8BAAA;;AAlCV,MAyBE,SAAQ,WAIN,QAAO,WAEL,KAAI,WAKF,GAAE;AApCV,MA0BE,oBAAmB,WAAY,SAAQ,WAGrC,QAAO,WAEL,KAAI,WAKF,GAAE;AApCV,MAyBE,SAAQ,WAKN,QAAO,WACL,KAAI,WAKF,GAAE;AApCV,MA0BE,oBAAmB,WAAY,SAAQ,WAIrC,QAAO,WACL,KAAI,WAKF,GAAE;AApCV,MAyBE,SAAQ,WAIN,QAAO,WAEL,KAAI,WAMF,GAAE;AArCV,MA0BE,oBAAmB,WAAY,SAAQ,WAGrC,QAAO,WAEL,KAAI,WAMF,GAAE;AArCV,MAyBE,SAAQ,WAKN,QAAO,WACL,KAAI,WAMF,GAAE;AArCV,MA0BE,oBAAmB,WAAY,SAAQ,WAIrC,QAAO,WACL,KAAI,WAMF,GAAE;EACA,+BAAA;;AAtCV,MA2CE,cAAc;AA3ChB,MA4CE,cAAc;EACZ,6BAAA;;AA7CJ,MA+CE,SAAS,QAAO,YAAa,KAAI,YAAa;AA/ChD,MAgDE,SAAS,QAAO,YAAa,KAAI,YAAa;EAC5C,aAAA;;AAjDJ,MAmDE;AAnDF,MAoDE,oBAAoB;EAClB,SAAA;;AArDJ,MAmDE,kBAGE,QAGE,KACE,KAAI;AA1DZ,MAoDE,oBAAoB,kBAElB,QAGE,KACE,KAAI;AA1DZ,MAmDE,kBAIE,QAEE,KACE,KAAI;AA1DZ,MAoDE,oBAAoB,kBAGlB,QAEE,KACE,KAAI;AA1DZ,MAmDE,kBAKE,QACE,KACE,KAAI;AA1DZ,MAoDE,oBAAoB,kBAIlB,QACE,KACE,KAAI;AA1DZ,MAmDE,kBAGE,QAGE,KAEE,KAAI;AA3DZ,MAoDE,oBAAoB,kBAElB,QAGE,KAEE,KAAI;AA3DZ,MAmDE,kBAIE,QAEE,KAEE,KAAI;AA3DZ,MAoDE,oBAAoB,kBAGlB,QAEE,KAEE,KAAI;AA3DZ,MAmDE,kBAKE,QACE,KAEE,KAAI;AA3DZ,MAoDE,oBAAoB,kBAIlB,QACE,KAEE,KAAI;EACF,cAAA;;AA5DV,MAmDE,kBAGE,QAGE,KAKE,KAAI;AA9DZ,MAoDE,oBAAoB,kBAElB,QAGE,KAKE,KAAI;AA9DZ,MAmDE,kBAIE,QAEE,KAKE,KAAI;AA9DZ,MAoDE,oBAAoB,kBAGlB,QAEE,KAKE,KAAI;AA9DZ,MAmDE,kBAKE,QACE,KAKE,KAAI;AA9DZ,MAoDE,oBAAoB,kBAIlB,QACE,KAKE,KAAI;AA9DZ,MAmDE,kBAGE,QAGE,KAME,KAAI;AA/DZ,MAoDE,oBAAoB,kBAElB,QAGE,KAME,KAAI;AA/DZ,MAmDE,kBAIE,QAEE,KAME,KAAI;AA/DZ,MAoDE,oBAAoB,kBAGlB,QAEE,KAME,KAAI;AA/DZ,MAmDE,kBAKE,QACE,KAME,KAAI;AA/DZ,MAoDE,oBAAoB,kBAIlB,QACE,KAME,KAAI;EACF,eAAA;;AAhEV,MAmDE,kBAiBE,QAEE,KAAI,YACF;AAvER,MAoDE,oBAAoB,kBAgBlB,QAEE,KAAI,YACF;AAvER,MAmDE,kBAkBE,QACE,KAAI,YACF;AAvER,MAoDE,oBAAoB,kBAiBlB,QACE,KAAI,YACF;AAvER,MAmDE,kBAiBE,QAEE,KAAI,YAEF;AAxER,MAoDE,oBAAoB,kBAgBlB,QAEE,KAAI,YAEF;AAxER,MAmDE,kBAkBE,QACE,KAAI,YAEF;AAxER,MAoDE,oBAAoB,kBAiBlB,QACE,KAAI,YAEF;EACE,gBAAA;;AAzEV,MAmDE,kBA0BE,QAEE,KAAI,WACF;AAhFR,MAoDE,oBAAoB,kBAyBlB,QAEE,KAAI,WACF;AAhFR,MAmDE,kBA2BE,QACE,KAAI,WACF;AAhFR,MAoDE,oBAAoB,kBA0BlB,QACE,KAAI,WACF;AAhFR,MAmDE,kBA0BE,QAEE,KAAI,WAEF;AAjFR,MAoDE,oBAAoB,kBAyBlB,QAEE,KAAI,WAEF;AAjFR,MAmDE,kBA2BE,QACE,KAAI,WAEF;AAjFR,MAoDE,oBAAoB,kBA0BlB,QACE,KAAI,WAEF;EACE,gBAAA;;AAlFV,MAuFE;EACE,SAAA;EACA,gBAAA;;AAUJ;EACE,mBAAA;;AADF,YAIE;EACE,gBAAA;EACA,kBAAA;EACA,gBAAA;;AAPJ,YAIE,OAIE;EACE,eAAA;;AATN,YAaE;EACE,gBAAA;;AAdJ,YAaE,eAEE,kBAAkB;EAChB,6BAAA;;AAhBN,YAmBE;EACE,aAAA;;AApBJ,YAmBE,cAEE,kBAAkB;EAChB,gCAAA;;AAON;E5BsLE,qBAAA;;AAEA,cAAE;EACA,cAAA;EACA,yBAAA;EACA,qBAAA;;AAHF,cAAE,iBAKA,kBAAkB;EAChB,yBAAA;;AAGJ,cAAE,gBACA,kBAAkB;EAChB,4BAAA;;A4BhMN;E5BmLE,qBAAA;;AAEA,cAAE;EACA,cAAA;EACA,yBAAA;EACA,qBAAA;;AAHF,cAAE,iBAKA,kBAAkB;EAChB,yBAAA;;AAGJ,cAAE,gBACA,kBAAkB;EAChB,4BAAA;;A4B7LN;E5BgLE,qBAAA;;AAEA,cAAE;EACA,cAAA;EACA,yBAAA;EACA,qBAAA;;AAHF,cAAE,iBAKA,kBAAkB;EAChB,yBAAA;;AAGJ,cAAE,gBACA,kBAAkB;EAChB,4BAAA;;A4B1LN;E5B6KE,qBAAA;;AAEA,WAAE;EACA,cAAA;EACA,yBAAA;EACA,qBAAA;;AAHF,WAAE,iBAKA,kBAAkB;EAChB,yBAAA;;AAGJ,WAAE,gBACA,kBAAkB;EAChB,4BAAA;;A4BvLN;E5B0KE,qBAAA;;AAEA,cAAE;EACA,cAAA;EACA,yBAAA;EACA,qBAAA;;AAHF,cAAE,iBAKA,kBAAkB;EAChB,yBAAA;;AAGJ,cAAE,gBACA,kBAAkB;EAChB,4BAAA;;A4BpLN;E5BuKE,qBAAA;;AAEA,aAAE;EACA,cAAA;EACA,yBAAA;EACA,qBAAA;;AAHF,aAAE,iBAKA,kBAAkB;EAChB,yBAAA;;AAGJ,aAAE,gBACA,kBAAkB;EAChB,4BAAA;;A6B5ZN;EACE,gBAAA;EACA,aAAA;EACA,mBAAA;EACA,yBAAA;EACA,yBAAA;EACA,kBAAA;E7B6GA,uDAAA;EACQ,+CAAA;;A6BpHV,KAQE;EACE,kBAAA;EACA,iCAAA;;AAKJ;EACE,aAAA;EACA,kBAAA;;AAEF;EACE,YAAA;EACA,kBAAA;;ACtBF;EACE,YAAA;EACA,eAAA;EACA,iBAAA;EACA,cAAA;EACA,cAAA;EACA,4BAAA;E9BkRA,YAAA;EAGA,yBAAA;;A8BlRA,MAAC;AACD,MAAC;EACC,cAAA;EACA,qBAAA;EACA,eAAA;E9B2QF,YAAA;EAGA,yBAAA;;A8BvQA,MAAM;EACJ,UAAA;EACA,eAAA;EACA,uBAAA;EACA,SAAA;EACA,wBAAA;;ACpBJ;EACE,gBAAA;;AAIF;EACE,aAAA;EACA,cAAA;EACA,kBAAA;EACA,eAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;EACA,aAAA;EACA,iCAAA;EAIA,UAAA;;AAGA,MAAC,KAAM;E/BiIP,mBAAmB,kBAAnB;EACI,eAAe,kBAAf;EACI,WAAW,kBAAX;EApBR,mDAAA;EACG,6CAAA;EACE,yCAAA;EACG,mCAAA;;A+B9GR,MAAC,GAAI;E/B6HL,mBAAmB,eAAnB;EACI,eAAe,eAAf;EACI,WAAW,eAAX;;A+B3HV;EACE,kBAAA;EACA,WAAA;EACA,YAAA;;AAIF;EACE,kBAAA;EACA,yBAAA;EACA,yBAAA;EACA,oCAAA;EACA,kBAAA;E/BqEA,gDAAA;EACQ,wCAAA;E+BpER,4BAAA;EAEA,aAAA;;AAIF;EACE,eAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;EACA,aAAA;EACA,yBAAA;;AAEA,eAAC;E/BwND,UAAA;EAGA,wBAAA;;A+B1NA,eAAC;E/BuND,YAAA;EAGA,yBAAA;;A+BrNF;EACE,aAAA;EACA,gCAAA;EACA,yBAAA;;AAGF,aAAc;EACZ,gBAAA;;AAIF;EACE,SAAA;EACA,uBAAA;;AAKF;EACE,kBAAA;EACA,aAAA;;AAIF;EACE,gBAAA;EACA,uBAAA;EACA,iBAAA;EACA,6BAAA;;AAJF,aAQE,KAAK;EACH,gBAAA;EACA,gBAAA;;AAVJ,aAaE,WAAW,KAAK;EACd,iBAAA;;AAdJ,aAiBE,WAAW;EACT,cAAA;;AAmBJ,QAdmC;EAEjC;IACE,YAAA;IACA,iBAAA;;EAEF;I/BPA,iDAAA;IACQ,yCAAA;;E+BWR;IAAY,YAAA;;;AAMd,QAHmC;EACjC;IAAY,YAAA;;;ACnId;EACE,kBAAA;EACA,aAAA;EACA,cAAA;EACA,mBAAA;EACA,eAAA;EACA,gBAAA;EhCiRA,UAAA;EAGA,wBAAA;;AgCjRA,QAAC;EhC8QD,YAAA;EAGA,yBAAA;;AgChRA,QAAC;EAAU,gBAAA;EAAmB,cAAA;;AAC9B,QAAC;EAAU,gBAAA;EAAmB,cAAA;;AAC9B,QAAC;EAAU,eAAA;EAAmB,cAAA;;AAC9B,QAAC;EAAU,iBAAA;EAAmB,cAAA;;AAIhC;EACE,gBAAA;EACA,gBAAA;EACA,cAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;;AAIF;EACE,kBAAA;EACA,QAAA;EACA,SAAA;EACA,yBAAA;EACA,mBAAA;;AAGA,QAAC,IAAK;EACJ,SAAA;EACA,SAAA;EACA,iBAAA;EACA,uBAAA;EACA,yBAAA;;AAEF,QAAC,SAAU;EACT,SAAA;EACA,SAAA;EACA,uBAAA;EACA,yBAAA;;AAEF,QAAC,UAAW;EACV,SAAA;EACA,UAAA;EACA,uBAAA;EACA,yBAAA;;AAEF,QAAC,MAAO;EACN,QAAA;EACA,OAAA;EACA,gBAAA;EACA,2BAAA;EACA,2BAAA;;AAEF,QAAC,KAAM;EACL,QAAA;EACA,QAAA;EACA,gBAAA;EACA,2BAAA;EACA,0BAAA;;AAEF,QAAC,OAAQ;EACP,MAAA;EACA,SAAA;EACA,iBAAA;EACA,uBAAA;EACA,4BAAA;;AAEF,QAAC,YAAa;EACZ,MAAA;EACA,SAAA;EACA,uBAAA;EACA,4BAAA;;AAEF,QAAC,aAAc;EACb,MAAA;EACA,UAAA;EACA,uBAAA;EACA,4BAAA;;ACvFJ;EACE,kBAAA;EACA,MAAA;EACA,OAAA;EACA,aAAA;EACA,aAAA;EACA,gBAAA;EACA,YAAA;EACA,gBAAA;EACA,yBAAA;EACA,4BAAA;EACA,yBAAA;EACA,oCAAA;EACA,kBAAA;EjCuGA,iDAAA;EACQ,yCAAA;EiCpGR,mBAAA;;AAGA,QAAC;EAAW,iBAAA;;AACZ,QAAC;EAAW,iBAAA;;AACZ,QAAC;EAAW,gBAAA;;AACZ,QAAC;EAAW,kBAAA;;AAGd;EACE,SAAA;EACA,iBAAA;EACA,eAAA;EACA,mBAAA;EACA,iBAAA;EACA,yBAAA;EACA,gCAAA;EACA,0BAAA;;AAGF;EACE,iBAAA;;AAQA,QADO;AAEP,QAFO,SAEN;EACC,kBAAA;EACA,cAAA;EACA,QAAA;EACA,SAAA;EACA,yBAAA;EACA,mBAAA;;AAGJ,QAAS;EACP,kBAAA;;AAEF,QAAS,SAAQ;EACf,kBAAA;EACA,SAAS,EAAT;;AAIA,QAAC,IAAK;EACJ,SAAA;EACA,kBAAA;EACA,sBAAA;EACA,yBAAA;EACA,qCAAA;EACA,aAAA;;AACA,QAPD,IAAK,SAOH;EACC,SAAS,GAAT;EACA,WAAA;EACA,kBAAA;EACA,sBAAA;EACA,yBAAA;;AAGJ,QAAC,MAAO;EACN,QAAA;EACA,WAAA;EACA,iBAAA;EACA,oBAAA;EACA,2BAAA;EACA,uCAAA;;AACA,QAPD,MAAO,SAOL;EACC,SAAS,GAAT;EACA,SAAA;EACA,aAAA;EACA,oBAAA;EACA,2BAAA;;AAGJ,QAAC,OAAQ;EACP,SAAA;EACA,kBAAA;EACA,mBAAA;EACA,4BAAA;EACA,wCAAA;EACA,UAAA;;AACA,QAPD,OAAQ,SAON;EACC,SAAS,GAAT;EACA,QAAA;EACA,kBAAA;EACA,mBAAA;EACA,4BAAA;;AAIJ,QAAC,KAAM;EACL,QAAA;EACA,YAAA;EACA,iBAAA;EACA,qBAAA;EACA,0BAAA;EACA,sCAAA;;AACA,QAPD,KAAM,SAOJ;EACC,SAAS,GAAT;EACA,UAAA;EACA,qBAAA;EACA,0BAAA;EACA,aAAA;;A9B1HN;EACE,kBAAA;;AAGF;EACE,kBAAA;EACA,gBAAA;EACA,WAAA;;AAHF,eAKE;EACE,aAAA;EACA,kBAAA;EH8GF,yCAAA;EACQ,iCAAA;;AGtHV,eAKE,QAME;AAXJ,eAKE,QAOE,IAAI;EAEF,cAAA;;AAdN,eAkBE;AAlBF,eAmBE;AAnBF,eAoBE;EAAU,cAAA;;AApBZ,eAsBE;EACE,OAAA;;AAvBJ,eA0BE;AA1BF,eA2BE;EACE,kBAAA;EACA,MAAA;EACA,WAAA;;AA9BJ,eAiCE;EACE,UAAA;;AAlCJ,eAoCE;EACE,WAAA;;AArCJ,eAuCE,QAAO;AAvCT,eAwCE,QAAO;EACL,OAAA;;AAzCJ,eA4CE,UAAS;EACP,WAAA;;AA7CJ,eA+CE,UAAS;EACP,UAAA;;AAQJ;EACE,kBAAA;EACA,MAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EHsNA,YAAA;EAGA,yBAAA;EGvNA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,yCAAA;;AAKA,iBAAC;EH8NC,kBAAkB,8BAA8B,mCAAyC,uCAAzF;EACA,kBAAmB,4EAAnB;EACA,2BAAA;EACA,sHAAA;;AG9NF,iBAAC;EACC,UAAA;EACA,QAAA;EHyNA,kBAAkB,8BAA8B,sCAAyC,oCAAzF;EACA,kBAAmB,4EAAnB;EACA,2BAAA;EACA,sHAAA;;AGvNF,iBAAC;AACD,iBAAC;EACC,aAAA;EACA,cAAA;EACA,qBAAA;EH8LF,YAAA;EAGA,yBAAA;;AG9NF,iBAkCE;AAlCF,iBAmCE;AAnCF,iBAoCE;AApCF,iBAqCE;EACE,kBAAA;EACA,QAAA;EACA,UAAA;EACA,qBAAA;;AAzCJ,iBA2CE;AA3CF,iBA4CE;EACE,SAAA;;AA7CJ,iBA+CE;AA/CF,iBAgDE;EACE,UAAA;;AAjDJ,iBAmDE;AAnDF,iBAoDE;EACE,WAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;EACA,kBAAA;;AAIA,iBADF,WACG;EACC,SAAS,OAAT;;AAIF,iBADF,WACG;EACC,SAAS,OAAT;;AAUN;EACE,kBAAA;EACA,YAAA;EACA,SAAA;EACA,WAAA;EACA,UAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;;AATF,oBAWE;EACE,qBAAA;EACA,WAAA;EACA,YAAA;EACA,WAAA;EACA,mBAAA;EACA,yBAAA;EACA,mBAAA;EACA,eAAA;EAUA,yBAAA;EACA,kCAAA;;AA9BJ,oBAgCE;EACE,SAAA;EACA,WAAA;EACA,YAAA;EACA,yBAAA;;AAOJ;EACE,kBAAA;EACA,SAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,iBAAA;EACA,oBAAA;EACA,cAAA;EACA,kBAAA;EACA,yCAAA;;AACA,iBAAE;EACA,iBAAA;;AAkCJ,mBA5B8C;EAG5C,iBACE;EADF,iBAEE;EAFF,iBAGE;EAHF,iBAIE;IACE,WAAA;IACA,YAAA;IACA,iBAAA;IACA,kBAAA;IACA,eAAA;;EAKJ;IACE,SAAA;IACA,UAAA;IACA,oBAAA;;EAIF;IACE,YAAA;;;AHlNF,SAAC;AACD,SAAC;AMXH,UNUG;AMVH,UNWG;AMSH,gBNVG;AMUH,gBNTG;AMkBH,INnBG;AMmBH,INlBG;AQsXH,gBAoBE,YR3YC;AQuXH,gBAoBE,YR1YC;AUkBH,YVnBG;AUmBH,YVlBG;AU8HH,mBAWE,aV1IC;AU+HH,mBAWE,aVzIC;AeZH,IfWG;AeXH,IfYG;AgBVH,OhBSG;AgBTH,OhBUG;AgBUH,chBXG;AgBWH,chBVG;AgB6BH,gBhB9BG;AgB8BH,gBhB7BG;AoBfH,MpBcG;AoBdH,MpBeG;A4BLH,W5BIG;A4BJH,W5BKG;A+B+EH,a/BhFG;A+BgFH,a/B/EG;EACC,SAAS,GAAT;EACA,cAAA;;AAEF,SAAC;AMfH,UNeG;AMKH,gBNLG;AMcH,INdG;AQkXH,gBAoBE,YRtYC;AUcH,YVdG;AU0HH,mBAWE,aVrIC;AehBH,IfgBG;AgBdH,OhBcG;AgBMH,chBNG;AgByBH,gBhBzBG;AoBnBH,MpBmBG;A4BTH,W5BSG;A+B2EH,a/B3EG;EACC,WAAA;;AiBdJ;EjB6BE,cAAA;EACA,iBAAA;EACA,kBAAA;;AiB5BF;EACE,uBAAA;;AAEF;EACE,sBAAA;;AAQF;EACE,wBAAA;;AAEF;EACE,yBAAA;;AAEF;EACE,kBAAA;;AAEF;EjB8CE,WAAA;EACA,kBAAA;EACA,iBAAA;EACA,6BAAA;EACA,SAAA;;AiBzCF;EACE,wBAAA;EACA,6BAAA;;AAOF;EACE,eAAA;;AiBnCF;EACE,mBAAA;;AAKF;AACA;AACA;AACA;ElCylBE,wBAAA;;AkCjlBF,QAHqC;EAGrC;IlCykBE,yBAAA;;EACA,KAAK;IAAK,cAAA;;EACV,EAAE;IAAQ,kBAAA;;EACV,EAAE;EACF,EAAE;IAAQ,mBAAA;;;AkCxkBZ,QAHqC,uBAAgC;EAGrE;IlCokBE,yBAAA;;EACA,KAAK;IAAK,cAAA;;EACV,EAAE;IAAQ,kBAAA;;EACV,EAAE;EACF,EAAE;IAAQ,mBAAA;;;AkCnkBZ,QAHqC,uBAAgC;EAGrE;IlC+jBE,yBAAA;;EACA,KAAK;IAAK,cAAA;;EACV,EAAE;IAAQ,kBAAA;;EACV,EAAE;EACF,EAAE;IAAQ,mBAAA;;;AkC9jBZ,QAHqC;EAGrC;IlC0jBE,yBAAA;;EACA,KAAK;IAAK,cAAA;;EACV,EAAE;IAAQ,kBAAA;;EACV,EAAE;EACF,EAAE;IAAQ,mBAAA;;;AkCxjBZ,QAHqC;EAGrC;IlC4jBE,wBAAA;;;AkCvjBF,QAHqC,uBAAgC;EAGrE;IlCujBE,wBAAA;;;AkCljBF,QAHqC,uBAAgC;EAGrE;IlCkjBE,wBAAA;;;AkC7iBF,QAHqC;EAGrC;IlC6iBE,wBAAA;;;AkCtiBF;ElCsiBE,wBAAA;;AkChiBF;EAAA;IlCwhBE,yBAAA;;EACA,KAAK;IAAK,cAAA;;EACV,EAAE;IAAQ,kBAAA;;EACV,EAAE;EACF,EAAE;IAAQ,mBAAA;;;AkCthBZ;EAAA;IlC0hBE,wBAAA","sourcesContent":["/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS text size adjust after orientation change, without disabling\n// user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined in IE 8/9.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9.\n// Hide the `template` element in IE, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background: transparent;\n}\n\n//\n// Improve readability when focused and also mouse hovered in all browsers.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9, Safari 5, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari 5 and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari 5, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow displayed oddly in IE 9.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari 5.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8+, and Opera\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n// (include `-moz` to future-proof).\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box; // 2\n box-sizing: content-box;\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}","//\n// Basic print styles\n// --------------------------------------------------\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css\n\n@media print {\n\n * {\n text-shadow: none !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n background: transparent !important;\n box-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links for images, or javascript/internal links\n a[href^=\"javascript:\"]:after,\n a[href^=\"#\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245\n // Once fixed, we can just straight up remove this.\n select {\n background: #fff !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .table {\n td,\n th {\n background-color: #fff !important;\n }\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n}\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 62.5%;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: underline;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n","//\n// Mixins\n// --------------------------------------------------\n\n\n// Utilities\n// -------------------------\n\n// Clearfix\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n\n// WebKit-style focus\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n\n// Center-align a block level element\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n// Sizing shortcuts\n.size(@width; @height) {\n width: @width;\n height: @height;\n}\n.square(@size) {\n .size(@size; @size);\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n &::-moz-placeholder { color: @color; // Firefox\n opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Text overflow\n// Requires inline-block or block for proper styling\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n// CSS image replacement\n//\n// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. Note\n// that we cannot chain the mixins together in Less, so they are repeated.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (will be removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n\n\n\n// CSS3 PROPERTIES\n// --------------------------------------------------\n\n// Single side border-radius\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support the\n// standard `box-shadow` property.\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Transitions\n.transition(@transition) {\n -webkit-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n// Transformations\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n transform: rotate(@degrees);\n}\n.scale(@ratio; @ratio-y...) {\n -webkit-transform: scale(@ratio, @ratio-y);\n -ms-transform: scale(@ratio, @ratio-y); // IE9 only\n transform: scale(@ratio, @ratio-y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n transform: translate(@x, @y);\n}\n.skew(@x; @y) {\n -webkit-transform: skew(@x, @y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n transform: skew(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// User select\n// For selecting text on the page\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n\n// Resize anything\n.resizable(@direction) {\n resize: @direction; // Options: horizontal, vertical, both\n overflow: auto; // Safari fix\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Opacity\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n\n\n\n// GRADIENTS\n// --------------------------------------------------\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n\n// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n\n\n\n// Retina images\n//\n// Short retina mixin for setting background-image and -size\n\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// COMPONENT MIXINS\n// --------------------------------------------------\n\n// Horizontal dividers\n// -------------------------\n// Dividers (basically an hr) within dropdowns and nav lists\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n\n// Panels\n// -------------------------\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse .panel-body {\n border-top-color: @border;\n }\n }\n & > .panel-footer {\n + .panel-collapse .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n\n// Alerts\n// -------------------------\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n\n// Tables\n// -------------------------\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n\n// List Groups\n// -------------------------\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a& {\n color: @color;\n\n .list-group-item-heading { color: inherit; }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n\n// Button variants\n// -------------------------\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 8%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n// -------------------------\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n\n// Pagination\n// -------------------------\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n\n// Labels\n// -------------------------\n.label-variant(@color) {\n background-color: @color;\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n\n// Contextual backgrounds\n// -------------------------\n.bg-variant(@color) {\n background-color: @color;\n a&:hover {\n background-color: darken(@color, 10%);\n }\n}\n\n// Typography\n// -------------------------\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover {\n color: darken(@color, 10%);\n }\n}\n\n// Navbar vertical align\n// -------------------------\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n\n// Progress bars\n// -------------------------\n.progress-bar-variant(@color) {\n background-color: @color;\n .progress-striped & {\n #gradient > .striped();\n }\n}\n\n// Responsive utilities\n// -------------------------\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n\n\n// Grid System\n// -----------\n\n// Centered container element\n.container-fixed() {\n margin-right: auto;\n margin-left: auto;\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: (@gutter / -2);\n margin-right: (@gutter / -2);\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n @media (min-width: @screen-xs-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-xs-column-push(@columns) {\n @media (min-width: @screen-xs-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-xs-column-pull(@columns) {\n @media (min-width: @screen-xs-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) when (@index = 1) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) when (@index = 1) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n\n// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n border-color: @border-color;\n background-color: @background-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-focus-border` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. ``\n// element gets special love because it's special, and that's a fact!\n\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","//\n// Variables\n// --------------------------------------------------\n\n\n//== Colors\n//\n//## Gray and brand colors for use across Bootstrap.\n\n@gray-darker: lighten(#000, 13.5%); // #222\n@gray-dark: lighten(#000, 20%); // #333\n@gray: lighten(#000, 33.5%); // #555\n@gray-light: lighten(#000, 60%); // #999\n@gray-lighter: lighten(#000, 93.5%); // #eee\n\n@brand-primary: #428bca;\n@brand-success: #5cb85c;\n@brand-info: #5bc0de;\n@brand-warning: #f0ad4e;\n@brand-danger: #d9534f;\n\n\n//== Scaffolding\n//\n// ## Settings for some of the most global styles.\n\n//** Background color for ``.\n@body-bg: #fff;\n//** Global text color on ``.\n@text-color: @gray-dark;\n\n//** Global textual link color.\n@link-color: @brand-primary;\n//** Link hover color set via `darken()` function.\n@link-hover-color: darken(@link-color, 15%);\n\n\n//== Typography\n//\n//## Font, line-height, and color for body text, headings, and more.\n\n@font-family-sans-serif: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n@font-family-serif: Georgia, \"Times New Roman\", Times, serif;\n//** Default monospace fonts for ``, ``, and ``.\n@font-family-monospace: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n@font-family-base: @font-family-sans-serif;\n\n@font-size-base: 14px;\n@font-size-large: ceil((@font-size-base * 1.25)); // ~18px\n@font-size-small: ceil((@font-size-base * 0.85)); // ~12px\n\n@font-size-h1: floor((@font-size-base * 2.6)); // ~36px\n@font-size-h2: floor((@font-size-base * 2.15)); // ~30px\n@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px\n@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px\n@font-size-h5: @font-size-base;\n@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px\n\n//** Unit-less `line-height` for use in components like buttons.\n@line-height-base: 1.428571429; // 20/14\n//** Computed \"line-height\" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.\n@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px\n\n//** By default, this inherits from the ``.\n@headings-font-family: inherit;\n@headings-font-weight: 500;\n@headings-line-height: 1.1;\n@headings-color: inherit;\n\n\n//-- Iconography\n//\n//## Specify custom locations of the include Glyphicons icon font. Useful for those including Bootstrap via Bower.\n\n@icon-font-path: \"../fonts/\";\n@icon-font-name: \"glyphicons-halflings-regular\";\n@icon-font-svg-id: \"glyphicons_halflingsregular\";\n\n//== Components\n//\n//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).\n\n@padding-base-vertical: 6px;\n@padding-base-horizontal: 12px;\n\n@padding-large-vertical: 10px;\n@padding-large-horizontal: 16px;\n\n@padding-small-vertical: 5px;\n@padding-small-horizontal: 10px;\n\n@padding-xs-vertical: 1px;\n@padding-xs-horizontal: 5px;\n\n@line-height-large: 1.33;\n@line-height-small: 1.5;\n\n@border-radius-base: 4px;\n@border-radius-large: 6px;\n@border-radius-small: 3px;\n\n//** Global color for active items (e.g., navs or dropdowns).\n@component-active-color: #fff;\n//** Global background color for active items (e.g., navs or dropdowns).\n@component-active-bg: @brand-primary;\n\n//** Width of the `border` for generating carets that indicator dropdowns.\n@caret-width-base: 4px;\n//** Carets increase slightly in size for larger components.\n@caret-width-large: 5px;\n\n\n//== Tables\n//\n//## Customizes the `.table` component with basic values, each used across all table variations.\n\n//** Padding for ``s and ` `s.\n@table-cell-padding: 8px;\n//** Padding for cells in `.table-condensed`.\n@table-condensed-cell-padding: 5px;\n\n//** Default background color used for all tables.\n@table-bg: transparent;\n//** Background color used for `.table-striped`.\n@table-bg-accent: #f9f9f9;\n//** Background color used for `.table-hover`.\n@table-bg-hover: #f5f5f5;\n@table-bg-active: @table-bg-hover;\n\n//** Border color for table and cell borders.\n@table-border-color: #ddd;\n\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n@btn-font-weight: normal;\n\n@btn-default-color: #333;\n@btn-default-bg: #fff;\n@btn-default-border: #ccc;\n\n@btn-primary-color: #fff;\n@btn-primary-bg: @brand-primary;\n@btn-primary-border: darken(@btn-primary-bg, 5%);\n\n@btn-success-color: #fff;\n@btn-success-bg: @brand-success;\n@btn-success-border: darken(@btn-success-bg, 5%);\n\n@btn-info-color: #fff;\n@btn-info-bg: @brand-info;\n@btn-info-border: darken(@btn-info-bg, 5%);\n\n@btn-warning-color: #fff;\n@btn-warning-bg: @brand-warning;\n@btn-warning-border: darken(@btn-warning-bg, 5%);\n\n@btn-danger-color: #fff;\n@btn-danger-bg: @brand-danger;\n@btn-danger-border: darken(@btn-danger-bg, 5%);\n\n@btn-link-disabled-color: @gray-light;\n\n\n//== Forms\n//\n//##\n\n//** ` ` background color\n@input-bg: #fff;\n//** ` ` background color\n@input-bg-disabled: @gray-lighter;\n\n//** Text color for ` `s\n@input-color: @gray;\n//** ` ` border color\n@input-border: #ccc;\n//** ` ` border radius\n@input-border-radius: @border-radius-base;\n//** Border color for inputs on focus\n@input-border-focus: #66afe9;\n\n//** Placeholder text color\n@input-color-placeholder: @gray-light;\n\n//** Default `.form-control` height\n@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);\n//** Large `.form-control` height\n@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);\n//** Small `.form-control` height\n@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);\n\n@legend-color: @gray-dark;\n@legend-border-color: #e5e5e5;\n\n//** Background color for textual input addons\n@input-group-addon-bg: @gray-lighter;\n//** Border color for textual input addons\n@input-group-addon-border-color: @input-border;\n\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n\n//** Background for the dropdown menu.\n@dropdown-bg: #fff;\n//** Dropdown menu `border-color`.\n@dropdown-border: rgba(0,0,0,.15);\n//** Dropdown menu `border-color` **for IE8**.\n@dropdown-fallback-border: #ccc;\n//** Divider color for between dropdown items.\n@dropdown-divider-bg: #e5e5e5;\n\n//** Dropdown link text color.\n@dropdown-link-color: @gray-dark;\n//** Hover color for dropdown links.\n@dropdown-link-hover-color: darken(@gray-dark, 5%);\n//** Hover background for dropdown links.\n@dropdown-link-hover-bg: #f5f5f5;\n\n//** Active dropdown menu item text color.\n@dropdown-link-active-color: @component-active-color;\n//** Active dropdown menu item background color.\n@dropdown-link-active-bg: @component-active-bg;\n\n//** Disabled dropdown menu item background color.\n@dropdown-link-disabled-color: @gray-light;\n\n//** Text color for headers within dropdown menus.\n@dropdown-header-color: @gray-light;\n\n// Note: Deprecated @dropdown-caret-color as of v3.1.0\n@dropdown-caret-color: #000;\n\n\n//-- Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n//\n// Note: These variables are not generated into the Customizer.\n\n@zindex-navbar: 1000;\n@zindex-dropdown: 1000;\n@zindex-popover: 1010;\n@zindex-tooltip: 1030;\n@zindex-navbar-fixed: 1030;\n@zindex-modal-background: 1040;\n@zindex-modal: 1050;\n\n\n//== Media queries breakpoints\n//\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n// Extra small screen / phone\n// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1\n@screen-xs: 480px;\n@screen-xs-min: @screen-xs;\n@screen-phone: @screen-xs-min;\n\n// Small screen / tablet\n// Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1\n@screen-sm: 768px;\n@screen-sm-min: @screen-sm;\n@screen-tablet: @screen-sm-min;\n\n// Medium screen / desktop\n// Note: Deprecated @screen-md and @screen-desktop as of v3.0.1\n@screen-md: 992px;\n@screen-md-min: @screen-md;\n@screen-desktop: @screen-md-min;\n\n// Large screen / wide desktop\n// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1\n@screen-lg: 1200px;\n@screen-lg-min: @screen-lg;\n@screen-lg-desktop: @screen-lg-min;\n\n// So media queries don't overlap when required, provide a maximum\n@screen-xs-max: (@screen-sm-min - 1);\n@screen-sm-max: (@screen-md-min - 1);\n@screen-md-max: (@screen-lg-min - 1);\n\n\n//== Grid system\n//\n//## Define your custom responsive grid.\n\n//** Number of columns in the grid.\n@grid-columns: 12;\n//** Padding between columns. Gets divided in half for the left and right.\n@grid-gutter-width: 30px;\n// Navbar collapse\n//** Point at which the navbar becomes uncollapsed.\n@grid-float-breakpoint: @screen-sm-min;\n//** Point at which the navbar begins collapsing.\n@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);\n\n\n//== Container sizes\n//\n//## Define the maximum width of `.container` for different screen sizes.\n\n// Small screen / tablet\n@container-tablet: ((720px + @grid-gutter-width));\n//** For `@screen-sm-min` and up.\n@container-sm: @container-tablet;\n\n// Medium screen / desktop\n@container-desktop: ((940px + @grid-gutter-width));\n//** For `@screen-md-min` and up.\n@container-md: @container-desktop;\n\n// Large screen / wide desktop\n@container-large-desktop: ((1140px + @grid-gutter-width));\n//** For `@screen-lg-min` and up.\n@container-lg: @container-large-desktop;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n@navbar-height: 50px;\n@navbar-margin-bottom: @line-height-computed;\n@navbar-border-radius: @border-radius-base;\n@navbar-padding-horizontal: floor((@grid-gutter-width / 2));\n@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);\n@navbar-collapse-max-height: 340px;\n\n@navbar-default-color: #777;\n@navbar-default-bg: #f8f8f8;\n@navbar-default-border: darken(@navbar-default-bg, 6.5%);\n\n// Navbar links\n@navbar-default-link-color: #777;\n@navbar-default-link-hover-color: #333;\n@navbar-default-link-hover-bg: transparent;\n@navbar-default-link-active-color: #555;\n@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%);\n@navbar-default-link-disabled-color: #ccc;\n@navbar-default-link-disabled-bg: transparent;\n\n// Navbar brand label\n@navbar-default-brand-color: @navbar-default-link-color;\n@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%);\n@navbar-default-brand-hover-bg: transparent;\n\n// Navbar toggle\n@navbar-default-toggle-hover-bg: #ddd;\n@navbar-default-toggle-icon-bar-bg: #888;\n@navbar-default-toggle-border-color: #ddd;\n\n\n// Inverted navbar\n// Reset inverted navbar basics\n@navbar-inverse-color: @gray-light;\n@navbar-inverse-bg: #222;\n@navbar-inverse-border: darken(@navbar-inverse-bg, 10%);\n\n// Inverted navbar links\n@navbar-inverse-link-color: @gray-light;\n@navbar-inverse-link-hover-color: #fff;\n@navbar-inverse-link-hover-bg: transparent;\n@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color;\n@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%);\n@navbar-inverse-link-disabled-color: #444;\n@navbar-inverse-link-disabled-bg: transparent;\n\n// Inverted navbar brand label\n@navbar-inverse-brand-color: @navbar-inverse-link-color;\n@navbar-inverse-brand-hover-color: #fff;\n@navbar-inverse-brand-hover-bg: transparent;\n\n// Inverted navbar toggle\n@navbar-inverse-toggle-hover-bg: #333;\n@navbar-inverse-toggle-icon-bar-bg: #fff;\n@navbar-inverse-toggle-border-color: #333;\n\n\n//== Navs\n//\n//##\n\n//=== Shared nav styles\n@nav-link-padding: 10px 15px;\n@nav-link-hover-bg: @gray-lighter;\n\n@nav-disabled-link-color: @gray-light;\n@nav-disabled-link-hover-color: @gray-light;\n\n@nav-open-link-hover-color: #fff;\n\n//== Tabs\n@nav-tabs-border-color: #ddd;\n\n@nav-tabs-link-hover-border-color: @gray-lighter;\n\n@nav-tabs-active-link-hover-bg: @body-bg;\n@nav-tabs-active-link-hover-color: @gray;\n@nav-tabs-active-link-hover-border-color: #ddd;\n\n@nav-tabs-justified-link-border-color: #ddd;\n@nav-tabs-justified-active-link-border-color: @body-bg;\n\n//== Pills\n@nav-pills-border-radius: @border-radius-base;\n@nav-pills-active-link-hover-bg: @component-active-bg;\n@nav-pills-active-link-hover-color: @component-active-color;\n\n\n//== Pagination\n//\n//##\n\n@pagination-color: @link-color;\n@pagination-bg: #fff;\n@pagination-border: #ddd;\n\n@pagination-hover-color: @link-hover-color;\n@pagination-hover-bg: @gray-lighter;\n@pagination-hover-border: #ddd;\n\n@pagination-active-color: #fff;\n@pagination-active-bg: @brand-primary;\n@pagination-active-border: @brand-primary;\n\n@pagination-disabled-color: @gray-light;\n@pagination-disabled-bg: #fff;\n@pagination-disabled-border: #ddd;\n\n\n//== Pager\n//\n//##\n\n@pager-bg: @pagination-bg;\n@pager-border: @pagination-border;\n@pager-border-radius: 15px;\n\n@pager-hover-bg: @pagination-hover-bg;\n\n@pager-active-bg: @pagination-active-bg;\n@pager-active-color: @pagination-active-color;\n\n@pager-disabled-color: @pagination-disabled-color;\n\n\n//== Jumbotron\n//\n//##\n\n@jumbotron-padding: 30px;\n@jumbotron-color: inherit;\n@jumbotron-bg: @gray-lighter;\n@jumbotron-heading-color: inherit;\n@jumbotron-font-size: ceil((@font-size-base * 1.5));\n\n\n//== Form states and alerts\n//\n//## Define colors for form feedback states and, by default, alerts.\n\n@state-success-text: #3c763d;\n@state-success-bg: #dff0d8;\n@state-success-border: darken(spin(@state-success-bg, -10), 5%);\n\n@state-info-text: #31708f;\n@state-info-bg: #d9edf7;\n@state-info-border: darken(spin(@state-info-bg, -10), 7%);\n\n@state-warning-text: #8a6d3b;\n@state-warning-bg: #fcf8e3;\n@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);\n\n@state-danger-text: #a94442;\n@state-danger-bg: #f2dede;\n@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);\n\n\n//== Tooltips\n//\n//##\n\n//** Tooltip max width\n@tooltip-max-width: 200px;\n//** Tooltip text color\n@tooltip-color: #fff;\n//** Tooltip background color\n@tooltip-bg: #000;\n@tooltip-opacity: .9;\n\n//** Tooltip arrow width\n@tooltip-arrow-width: 5px;\n//** Tooltip arrow color\n@tooltip-arrow-color: @tooltip-bg;\n\n\n//== Popovers\n//\n//##\n\n//** Popover body background color\n@popover-bg: #fff;\n//** Popover maximum width\n@popover-max-width: 276px;\n//** Popover border color\n@popover-border-color: rgba(0,0,0,.2);\n//** Popover fallback border color\n@popover-fallback-border-color: #ccc;\n\n//** Popover title background color\n@popover-title-bg: darken(@popover-bg, 3%);\n\n//** Popover arrow width\n@popover-arrow-width: 10px;\n//** Popover arrow color\n@popover-arrow-color: #fff;\n\n//** Popover outer arrow width\n@popover-arrow-outer-width: (@popover-arrow-width + 1);\n//** Popover outer arrow color\n@popover-arrow-outer-color: fadein(@popover-border-color, 5%);\n//** Popover outer arrow fallback color\n@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%);\n\n\n//== Labels\n//\n//##\n\n//** Default label background color\n@label-default-bg: @gray-light;\n//** Primary label background color\n@label-primary-bg: @brand-primary;\n//** Success label background color\n@label-success-bg: @brand-success;\n//** Info label background color\n@label-info-bg: @brand-info;\n//** Warning label background color\n@label-warning-bg: @brand-warning;\n//** Danger label background color\n@label-danger-bg: @brand-danger;\n\n//** Default label text color\n@label-color: #fff;\n//** Default text color of a linked label\n@label-link-hover-color: #fff;\n\n\n//== Modals\n//\n//##\n\n//** Padding applied to the modal body\n@modal-inner-padding: 20px;\n\n//** Padding applied to the modal title\n@modal-title-padding: 15px;\n//** Modal title line-height\n@modal-title-line-height: @line-height-base;\n\n//** Background color of modal content area\n@modal-content-bg: #fff;\n//** Modal content border color\n@modal-content-border-color: rgba(0,0,0,.2);\n//** Modal content border color **for IE8**\n@modal-content-fallback-border-color: #999;\n\n//** Modal backdrop background color\n@modal-backdrop-bg: #000;\n//** Modal backdrop opacity\n@modal-backdrop-opacity: .5;\n//** Modal header border color\n@modal-header-border-color: #e5e5e5;\n//** Modal footer border color\n@modal-footer-border-color: @modal-header-border-color;\n\n@modal-lg: 900px;\n@modal-md: 600px;\n@modal-sm: 300px;\n\n\n//== Alerts\n//\n//## Define alert colors, border radius, and padding.\n\n@alert-padding: 15px;\n@alert-border-radius: @border-radius-base;\n@alert-link-font-weight: bold;\n\n@alert-success-bg: @state-success-bg;\n@alert-success-text: @state-success-text;\n@alert-success-border: @state-success-border;\n\n@alert-info-bg: @state-info-bg;\n@alert-info-text: @state-info-text;\n@alert-info-border: @state-info-border;\n\n@alert-warning-bg: @state-warning-bg;\n@alert-warning-text: @state-warning-text;\n@alert-warning-border: @state-warning-border;\n\n@alert-danger-bg: @state-danger-bg;\n@alert-danger-text: @state-danger-text;\n@alert-danger-border: @state-danger-border;\n\n\n//== Progress bars\n//\n//##\n\n//** Background color of the whole progress component\n@progress-bg: #f5f5f5;\n//** Progress bar text color\n@progress-bar-color: #fff;\n\n//** Default progress bar color\n@progress-bar-bg: @brand-primary;\n//** Success progress bar color\n@progress-bar-success-bg: @brand-success;\n//** Warning progress bar color\n@progress-bar-warning-bg: @brand-warning;\n//** Danger progress bar color\n@progress-bar-danger-bg: @brand-danger;\n//** Info progress bar color\n@progress-bar-info-bg: @brand-info;\n\n\n//== List group\n//\n//##\n\n//** Background color on `.list-group-item`\n@list-group-bg: #fff;\n//** `.list-group-item` border color\n@list-group-border: #ddd;\n//** List group border radius\n@list-group-border-radius: @border-radius-base;\n\n//** Background color of single list elements on hover\n@list-group-hover-bg: #f5f5f5;\n//** Text color of active list elements\n@list-group-active-color: @component-active-color;\n//** Background color of active list elements\n@list-group-active-bg: @component-active-bg;\n//** Border color of active list elements\n@list-group-active-border: @list-group-active-bg;\n@list-group-active-text-color: lighten(@list-group-active-bg, 40%);\n\n@list-group-link-color: #555;\n@list-group-link-heading-color: #333;\n\n\n//== Panels\n//\n//##\n\n@panel-bg: #fff;\n@panel-body-padding: 15px;\n@panel-border-radius: @border-radius-base;\n\n//** Border color for elements within panels\n@panel-inner-border: #ddd;\n@panel-footer-bg: #f5f5f5;\n\n@panel-default-text: @gray-dark;\n@panel-default-border: #ddd;\n@panel-default-heading-bg: #f5f5f5;\n\n@panel-primary-text: #fff;\n@panel-primary-border: @brand-primary;\n@panel-primary-heading-bg: @brand-primary;\n\n@panel-success-text: @state-success-text;\n@panel-success-border: @state-success-border;\n@panel-success-heading-bg: @state-success-bg;\n\n@panel-info-text: @state-info-text;\n@panel-info-border: @state-info-border;\n@panel-info-heading-bg: @state-info-bg;\n\n@panel-warning-text: @state-warning-text;\n@panel-warning-border: @state-warning-border;\n@panel-warning-heading-bg: @state-warning-bg;\n\n@panel-danger-text: @state-danger-text;\n@panel-danger-border: @state-danger-border;\n@panel-danger-heading-bg: @state-danger-bg;\n\n\n//== Thumbnails\n//\n//##\n\n//** Padding around the thumbnail image\n@thumbnail-padding: 4px;\n//** Thumbnail background color\n@thumbnail-bg: @body-bg;\n//** Thumbnail border color\n@thumbnail-border: #ddd;\n//** Thumbnail border radius\n@thumbnail-border-radius: @border-radius-base;\n\n//** Custom text color for thumbnail captions\n@thumbnail-caption-color: @text-color;\n//** Padding around the thumbnail caption\n@thumbnail-caption-padding: 9px;\n\n\n//== Wells\n//\n//##\n\n@well-bg: #f5f5f5;\n@well-border: darken(@well-bg, 7%);\n\n\n//== Badges\n//\n//##\n\n@badge-color: #fff;\n//** Linked badge text color on hover\n@badge-link-hover-color: #fff;\n@badge-bg: @gray-light;\n\n//** Badge text color in active nav link\n@badge-active-color: @link-color;\n//** Badge background color in active nav link\n@badge-active-bg: #fff;\n\n@badge-font-weight: bold;\n@badge-line-height: 1;\n@badge-border-radius: 10px;\n\n\n//== Breadcrumbs\n//\n//##\n\n@breadcrumb-padding-vertical: 8px;\n@breadcrumb-padding-horizontal: 15px;\n//** Breadcrumb background color\n@breadcrumb-bg: #f5f5f5;\n//** Breadcrumb text color\n@breadcrumb-color: #ccc;\n//** Text color of current page in the breadcrumb\n@breadcrumb-active-color: @gray-light;\n//** Textual separator for between breadcrumb elements\n@breadcrumb-separator: \"/\";\n\n\n//== Carousel\n//\n//##\n\n@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);\n\n@carousel-control-color: #fff;\n@carousel-control-width: 15%;\n@carousel-control-opacity: .5;\n@carousel-control-font-size: 20px;\n\n@carousel-indicator-active-bg: #fff;\n@carousel-indicator-border-color: #fff;\n\n@carousel-caption-color: #fff;\n\n\n//== Close\n//\n//##\n\n@close-font-weight: bold;\n@close-color: #000;\n@close-text-shadow: 0 1px 0 #fff;\n\n\n//== Code\n//\n//##\n\n@code-color: #c7254e;\n@code-bg: #f9f2f4;\n\n@kbd-color: #fff;\n@kbd-bg: #333;\n\n@pre-bg: #f5f5f5;\n@pre-color: @gray-dark;\n@pre-border-color: #ccc;\n@pre-scrollable-max-height: 340px;\n\n\n//== Type\n//\n//##\n\n//** Text muted color\n@text-muted: @gray-light;\n//** Abbreviations and acronyms border color\n@abbr-border-color: @gray-light;\n//** Headings small color\n@headings-small-color: @gray-light;\n//** Blockquote small color\n@blockquote-small-color: @gray-light;\n//** Blockquote font size\n@blockquote-font-size: (@font-size-base * 1.25);\n//** Blockquote border color\n@blockquote-border-color: @gray-lighter;\n//** Page header border color\n@page-header-border-color: @gray-lighter;\n\n\n//== Miscellaneous\n//\n//##\n\n//** Horizontal line color.\n@hr-border: @gray-lighter;\n\n//** Horizontal offset for forms and lists.\n@component-offset-horizontal: 180px;\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n display: block;\n padding: @thumbnail-padding;\n margin-bottom: @line-height-computed;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n > img,\n a > img {\n &:extend(.img-responsive);\n margin-left: auto;\n margin-right: auto;\n }\n\n // Add a hover state for linked versions only\n a&:hover,\n a&:focus,\n a&.active {\n border-color: @link-color;\n }\n\n // Image captions\n .caption {\n padding: @thumbnail-caption-padding;\n color: @thumbnail-caption-color;\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n }\n\n > .active,\n > .next,\n > .prev { display: block; }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: none;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n margin-top: -10px;\n margin-left: -10px;\n font-family: serif;\n }\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n font-size: 30px;\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 200;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: 14px base font * 85% = about 12px\nsmall,\n.small { font-size: 85%; }\n\n// Undo browser default styling\ncite { font-style: normal; }\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// --------------------------------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n@media (min-width: @grid-float-breakpoint) {\n .dl-horizontal {\n dt {\n float: left;\n width: (@component-offset-horizontal - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @component-offset-horizontal;\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n }\n}\n\n// MISC\n// ----\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Quotes\nblockquote:before,\nblockquote:after {\n content: \"\";\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n white-space: nowrap;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n max-width: 100%;\n background-color: @table-bg;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-child(odd) {\n > td,\n > th {\n background-color: @table-bg-accent;\n }\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n > td,\n > th {\n background-color: @table-bg-hover;\n }\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n@media (max-width: @screen-xs-max) {\n .table-responsive {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n overflow-x: scroll;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n -webkit-overflow-scrolling: touch;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: -webkit-min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; /* IE8-9 */\n line-height: normal;\n}\n\n// Set the height of file controls to match text inputs\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n cursor: not-allowed;\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS date input\n//\n// In Mobile Safari, date inputs require a pixel line-height that matches the\n// given height of the input.\n\ninput[type=\"date\"] {\n line-height: @input-height-base;\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: 15px;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n display: block;\n min-height: @line-height-computed; // clear the floating input if there is no label text\n margin-top: 10px;\n margin-bottom: 10px;\n padding-left: 20px;\n label {\n display: inline;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n float: left;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"],\n.radio,\n.radio-inline,\n.checkbox,\n.checkbox-inline {\n &[disabled],\n fieldset[disabled] & {\n cursor: not-allowed;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n\n.input-sm {\n .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n\n.input-lg {\n .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n // Enable absolute positioning\n position: relative;\n\n // Ensure icons don't overlap text\n .form-control {\n padding-right: (@input-height-base * 1.25);\n }\n\n // Feedback icon (requires .glyphicon classes)\n .form-control-feedback {\n position: absolute;\n top: (@line-height-computed + 5); // Height of the `label` and its margin\n right: 0;\n display: block;\n width: @input-height-base;\n height: @input-height-base;\n line-height: @input-height-base;\n text-align: center;\n }\n}\n\n// Feedback states\n.has-success {\n .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n margin-bottom: 0; // Remove default margin from `p`\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n display: block; // account for any element using help-block\n margin-top: 5px;\n margin-bottom: 10px;\n color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n // Kick in the inline\n @media (min-width: @screen-sm-min) {\n // Inline-block all the things for \"inline\"\n .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // In navbar-form, allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n // Input groups need that 100% width though\n .input-group > .form-control {\n width: 100%;\n }\n\n .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match (which also avoids\n // a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).\n .radio,\n .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n vertical-align: middle;\n }\n .radio input[type=\"radio\"],\n .checkbox input[type=\"checkbox\"] {\n float: none;\n margin-left: 0;\n }\n\n // Validation states\n //\n // Reposition the icon because it's now within a grid column and columns have\n // `position: relative;` on them. Also accounts for the grid gutter padding.\n .has-feedback .form-control-feedback {\n top: 0;\n }\n }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n // Consistent vertical alignment of labels, radios, and checkboxes\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n }\n // Account for padding we're adding to ensure the alignment and of help text\n // and other content below items\n .radio,\n .checkbox {\n min-height: (@line-height-computed + (@padding-base-vertical + 1));\n }\n\n // Make form groups behave like rows\n .form-group {\n .make-row();\n }\n\n .form-control-static {\n padding-top: (@padding-base-vertical + 1);\n }\n\n // Only right align form labels here when the columns stop stacking\n @media (min-width: @screen-sm-min) {\n .control-label {\n text-align: right;\n }\n }\n\n // Validation states\n //\n // Reposition the icon because it's now within a grid column and columns have\n // `position: relative;` on them. Also accounts for the grid gutter padding.\n .has-feedback .form-control-feedback {\n top: 0;\n right: (@grid-gutter-width / 2);\n }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: @btn-font-weight;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base);\n .user-select(none);\n\n &,\n &:active,\n &.active {\n &:focus {\n .tab-focus();\n }\n }\n\n &:hover,\n &:focus {\n color: @btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: not-allowed;\n pointer-events: none; // Future-proof disabling of clicks\n .opacity(.65);\n .box-shadow(none);\n }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n color: @link-color;\n font-weight: normal;\n cursor: pointer;\n border-radius: 0;\n\n &,\n &:active,\n &[disabled],\n fieldset[disabled] & {\n background-color: transparent;\n .box-shadow(none);\n }\n &,\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: underline;\n background-color: transparent;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @btn-link-disabled-color;\n text-decoration: none;\n }\n }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n // line-height: ensure even-numbered height of button next to large input\n .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n.btn-sm {\n // line-height: ensure proper height of button next to small input\n .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n.btn-xs {\n .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n display: block;\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; // match .btn alignment given font-size hack above\n > .btn {\n position: relative;\n float: left;\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active,\n &.active {\n z-index: 2;\n }\n &:focus {\n // Remove focus outline when dropdown JS adds it after closing the menu\n outline: none;\n }\n }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -1px;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n margin-left: -5px; // Offset the first child's margin\n &:extend(.clearfix all);\n\n .btn-group,\n .input-group {\n float: left;\n }\n > .btn,\n > .btn-group,\n > .input-group {\n margin-left: 5px;\n }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n margin-left: 0;\n &:not(:last-child):not(.dropdown-toggle) {\n .border-right-radius(0);\n }\n}\n// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-right-radius(0);\n }\n}\n.btn-group > .btn-group:last-child > .btn:first-child {\n .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n .box-shadow(none);\n }\n}\n\n\n// Reposition the caret\n.btn .caret {\n margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n border-width: @caret-width-large @caret-width-large 0;\n border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n > .btn,\n > .btn-group,\n > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n\n // Clear floats so dropdown menus can be properly placed\n > .btn-group {\n &:extend(.clearfix all);\n > .btn {\n float: none;\n }\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n}\n\n.btn-group-vertical > .btn {\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n &:first-child:not(:last-child) {\n border-top-right-radius: @border-radius-base;\n .border-bottom-radius(0);\n }\n &:last-child:not(:first-child) {\n border-bottom-left-radius: @border-radius-base;\n .border-top-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-bottom-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-top-radius(0);\n}\n\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n > .btn,\n > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n }\n > .btn-group .btn {\n width: 100%;\n }\n}\n\n\n// Checkbox and radio options\n[data-toggle=\"buttons\"] > .btn > input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn > input[type=\"checkbox\"] {\n display: none;\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552.\n\n.fade {\n opacity: 0;\n .transition(opacity .15s linear);\n &.in {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n &.in {\n display: block;\n }\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n .transition(height .35s ease);\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// Star \n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: ~\"url('@{icon-font-path}@{icon-font-name}.eot')\";\n src: ~\"url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype')\",\n ~\"url('@{icon-font-path}@{icon-font-name}.woff') format('woff')\",\n ~\"url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype')\",\n ~\"url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg')\";\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\2a\"; } }\n.glyphicon-plus { &:before { content: \"\\2b\"; } }\n.glyphicon-euro { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: @caret-width-base solid;\n border-right: @caret-width-base solid transparent;\n border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropdown {\n position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0; // override default ul\n list-style: none;\n font-size: @font-size-base;\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n background-clip: padding-box;\n\n // Aligns the dropdown menu to right\n //\n // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n &.pull-right {\n right: 0;\n left: auto;\n }\n\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg);\n }\n\n // Links within the dropdown menu\n > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: @line-height-base;\n color: @dropdown-link-color;\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n &:hover,\n &:focus {\n text-decoration: none;\n color: @dropdown-link-hover-color;\n background-color: @dropdown-link-hover-bg;\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-active-color;\n text-decoration: none;\n outline: 0;\n background-color: @dropdown-link-active-bg;\n }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-disabled-color;\n }\n}\n// Nuke hover/focus effects\n.dropdown-menu > .disabled > a {\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none; // Remove CSS gradient\n .reset-filter();\n cursor: not-allowed;\n }\n}\n\n// Open state for the dropdown\n.open {\n // Show the menu\n > .dropdown-menu {\n display: block;\n }\n\n // Remove the outline when :focus is triggered\n > a {\n outline: 0;\n }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n left: auto; // Reset the default from `.dropdown-menu`\n right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: @font-size-small;\n line-height: @line-height-base;\n color: @dropdown-header-color;\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n // Reverse the caret\n .caret {\n border-top: 0;\n border-bottom: @caret-width-base solid;\n content: \"\";\n }\n // Different positioning for bottom up menu\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 1px;\n }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-right {\n .dropdown-menu {\n .dropdown-menu-right();\n }\n // Necessary for overrides of the default right aligned menu.\n // Will remove come v4 in all likelihood.\n .dropdown-menu-left {\n .dropdown-menu-left();\n }\n }\n}\n\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n position: relative; // For dropdowns\n display: table;\n border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n // Undo padding and float of grid classes\n &[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n }\n\n .form-control {\n // Ensure that the input is always above the *appended* addon button for\n // proper border colors.\n position: relative;\n z-index: 2;\n\n // IE9 fubars the placeholder attribute in text inputs and the arrows on\n // select elements in input groups. To fix it, we float the input. Details:\n // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n float: left;\n\n width: 100%;\n margin-bottom: 0;\n }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn { .input-lg(); }\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn { .input-sm(); }\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n font-weight: normal;\n line-height: 1;\n color: @input-color;\n text-align: center;\n background-color: @input-group-addon-bg;\n border: 1px solid @input-group-addon-border-color;\n border-radius: @border-radius-base;\n\n // Sizing\n &.input-sm {\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n border-radius: @border-radius-small;\n }\n &.input-lg {\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n border-radius: @border-radius-large;\n }\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n .border-right-radius(0);\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n .border-left-radius(0);\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n position: relative;\n // Jankily prevent input button groups from wrapping with `white-space` and\n // `font-size` in combination with `inline-block` on buttons.\n font-size: 0;\n white-space: nowrap;\n\n // Negative margin for spacing, position for bringing hovered/focused/actived\n // element above the siblings.\n > .btn {\n position: relative;\n + .btn {\n margin-left: -1px;\n }\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n // Negative margin to only have a 1px border between the two\n &:first-child {\n > .btn,\n > .btn-group {\n margin-right: -1px;\n }\n }\n &:last-child {\n > .btn,\n > .btn-group {\n margin-left: -1px;\n }\n }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n list-style: none;\n &:extend(.clearfix all);\n\n > li {\n position: relative;\n display: block;\n\n > a {\n position: relative;\n display: block;\n padding: @nav-link-padding;\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @nav-link-hover-bg;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &.disabled > a {\n color: @nav-disabled-link-color;\n\n &:hover,\n &:focus {\n color: @nav-disabled-link-hover-color;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n }\n }\n }\n\n // Open dropdowns\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @nav-link-hover-bg;\n border-color: @link-color;\n }\n }\n\n // Nav dividers (deprecated with v3.0.1)\n //\n // This should have been removed in v3 with the dropping of `.nav-list`, but\n // we missed it. We don't currently support this anywhere, but in the interest\n // of maintaining backward compatibility in case you use it, it's deprecated.\n .nav-divider {\n .nav-divider();\n }\n\n // Prevent IE8 from misplacing imgs\n //\n // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n > li > a > img {\n max-width: none;\n }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n border-bottom: 1px solid @nav-tabs-border-color;\n > li {\n float: left;\n // Make the list-items overlay the bottom border\n margin-bottom: -1px;\n\n // Actual tabs (as links)\n > a {\n margin-right: 2px;\n line-height: @line-height-base;\n border: 1px solid transparent;\n border-radius: @border-radius-base @border-radius-base 0 0;\n &:hover {\n border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n }\n }\n\n // Active state, and its :hover to override normal :hover\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-tabs-active-link-hover-color;\n background-color: @nav-tabs-active-link-hover-bg;\n border: 1px solid @nav-tabs-active-link-hover-border-color;\n border-bottom-color: transparent;\n cursor: default;\n }\n }\n }\n // pulling this in mainly for less shorthand\n &.nav-justified {\n .nav-justified();\n .nav-tabs-justified();\n }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n > li {\n float: left;\n\n // Links rendered as pills\n > a {\n border-radius: @nav-pills-border-radius;\n }\n + li {\n margin-left: 2px;\n }\n\n // Active state\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-pills-active-link-hover-color;\n background-color: @nav-pills-active-link-hover-bg;\n }\n }\n }\n}\n\n\n// Stacked pills\n.nav-stacked {\n > li {\n float: none;\n + li {\n margin-top: 2px;\n margin-left: 0; // no need for this gap between nav items\n }\n }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n width: 100%;\n\n > li {\n float: none;\n > a {\n text-align: center;\n margin-bottom: 5px;\n }\n }\n\n > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n\n @media (min-width: @screen-sm-min) {\n > li {\n display: table-cell;\n width: 1%;\n > a {\n margin-bottom: 0;\n }\n }\n }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n border-bottom: 0;\n\n > li > a {\n // Override margin from .nav-tabs\n margin-right: 0;\n border-radius: @border-radius-base;\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border: 1px solid @nav-tabs-justified-link-border-color;\n }\n\n @media (min-width: @screen-sm-min) {\n > li > a {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: @nav-tabs-justified-active-link-border-color;\n }\n }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n // make dropdown border overlap tab border\n margin-top: -1px;\n // Remove the top rounded corners here since there is a hard edge above the menu\n .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n margin-bottom: @navbar-margin-bottom;\n border: 1px solid transparent;\n\n // Prevent floats from breaking the navbar\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: @navbar-border-radius;\n }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n max-height: @navbar-collapse-max-height;\n overflow-x: visible;\n padding-right: @navbar-padding-horizontal;\n padding-left: @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n &:extend(.clearfix all);\n -webkit-overflow-scrolling: touch;\n\n &.in {\n overflow-y: auto;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border-top: 0;\n box-shadow: none;\n\n &.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0; // Override default setting\n overflow: visible !important;\n }\n\n &.in {\n overflow-y: visible;\n }\n\n // Undo the collapse side padding for navbars with containers to ensure\n // alignment of right-aligned contents.\n .navbar-fixed-top &,\n .navbar-static-top &,\n .navbar-fixed-bottom & {\n padding-left: 0;\n padding-right: 0;\n }\n }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n > .navbar-header,\n > .navbar-collapse {\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n\n @media (min-width: @grid-float-breakpoint) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n z-index: @zindex-navbar;\n border-width: 0 0 1px;\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @zindex-navbar-fixed;\n\n // Undo the rounded corners\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0; // override .navbar defaults\n border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n float: left;\n padding: @navbar-padding-vertical @navbar-padding-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-computed;\n height: @navbar-height;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n .navbar > .container &,\n .navbar > .container-fluid & {\n margin-left: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: @navbar-padding-horizontal;\n padding: 9px 10px;\n .navbar-vertical-align(34px);\n background-color: transparent;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n border-radius: @border-radius-base;\n\n // We remove the `outline` here, but later compensate by attaching `:hover`\n // styles to `:focus`.\n &:focus {\n outline: none;\n }\n\n // Bars\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n display: none;\n }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: @line-height-computed;\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n > li > a,\n .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n > li > a {\n line-height: @line-height-computed;\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n }\n }\n\n // Uncollapse the nav\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin: 0;\n\n > li {\n float: left;\n > a {\n padding-top: @navbar-padding-vertical;\n padding-bottom: @navbar-padding-vertical;\n }\n }\n\n &.navbar-right:last-child {\n margin-right: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-left { .pull-left(); }\n .navbar-right { .pull-right(); }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n margin-left: -@navbar-padding-horizontal;\n margin-right: -@navbar-padding-horizontal;\n padding: 10px @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n\n // Mixin behavior for optimum display\n .form-inline();\n\n .form-group {\n @media (max-width: @grid-float-breakpoint-max) {\n margin-bottom: 5px;\n }\n }\n\n // Vertically center in expanded, horizontal navbar\n .navbar-vertical-align(@input-height-base);\n\n // Undo 100% width for pull classes\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n .box-shadow(none);\n\n // Outdent the form if last child to line up with content down the page\n &.navbar-right:last-child {\n margin-right: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n .navbar-vertical-align(@input-height-base);\n\n &.btn-sm {\n .navbar-vertical-align(@input-height-small);\n }\n &.btn-xs {\n .navbar-vertical-align(22);\n }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n .navbar-vertical-align(@line-height-computed);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin-left: @navbar-padding-horizontal;\n margin-right: @navbar-padding-horizontal;\n\n // Outdent the form if last child to line up with content down the page\n &.navbar-right:last-child {\n margin-right: 0;\n }\n }\n}\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n background-color: @navbar-default-bg;\n border-color: @navbar-default-border;\n\n .navbar-brand {\n color: @navbar-default-brand-color;\n &:hover,\n &:focus {\n color: @navbar-default-brand-hover-color;\n background-color: @navbar-default-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-default-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-default-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n\n .navbar-toggle {\n border-color: @navbar-default-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-default-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-default-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: @navbar-default-border;\n }\n\n // Dropdown menu items\n .navbar-nav {\n // Remove background color from open dropdown\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-default-link-active-bg;\n color: @navbar-default-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n > li > a {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n }\n }\n\n\n // Links in navbars\n //\n // Add a class to ensure links outside the navbar nav are colored correctly.\n\n .navbar-link {\n color: @navbar-default-link-color;\n &:hover {\n color: @navbar-default-link-hover-color;\n }\n }\n\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n background-color: @navbar-inverse-bg;\n border-color: @navbar-inverse-border;\n\n .navbar-brand {\n color: @navbar-inverse-brand-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-brand-hover-color;\n background-color: @navbar-inverse-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-inverse-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-inverse-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n\n // Darken the responsive nav toggle\n .navbar-toggle {\n border-color: @navbar-inverse-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-inverse-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-inverse-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: darken(@navbar-inverse-bg, 7%);\n }\n\n // Dropdowns\n .navbar-nav {\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-inverse-link-active-bg;\n color: @navbar-inverse-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display\n .open .dropdown-menu {\n > .dropdown-header {\n border-color: @navbar-inverse-border;\n }\n .divider {\n background-color: @navbar-inverse-border;\n }\n > li > a {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n }\n }\n\n .navbar-link {\n color: @navbar-inverse-link-color;\n &:hover {\n color: @navbar-inverse-link-hover-color;\n }\n }\n\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n .clearfix();\n}\n.center-block {\n .center-block();\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n display: none !important;\n visibility: hidden !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n margin-bottom: @line-height-computed;\n list-style: none;\n background-color: @breadcrumb-bg;\n border-radius: @border-radius-base;\n\n > li {\n display: inline-block;\n\n + li:before {\n content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n padding: 0 5px;\n color: @breadcrumb-color;\n }\n }\n\n > .active {\n color: @breadcrumb-active-color;\n }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: @line-height-computed 0;\n border-radius: @border-radius-base;\n\n > li {\n display: inline; // Remove list-style and block-level defaults\n > a,\n > span {\n position: relative;\n float: left; // Collapse white-space\n padding: @padding-base-vertical @padding-base-horizontal;\n line-height: @line-height-base;\n text-decoration: none;\n color: @pagination-color;\n background-color: @pagination-bg;\n border: 1px solid @pagination-border;\n margin-left: -1px;\n }\n &:first-child {\n > a,\n > span {\n margin-left: 0;\n .border-left-radius(@border-radius-base);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius-base);\n }\n }\n }\n\n > li > a,\n > li > span {\n &:hover,\n &:focus {\n color: @pagination-hover-color;\n background-color: @pagination-hover-bg;\n border-color: @pagination-hover-border;\n }\n }\n\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n z-index: 2;\n color: @pagination-active-color;\n background-color: @pagination-active-bg;\n border-color: @pagination-active-border;\n cursor: default;\n }\n }\n\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n color: @pagination-disabled-color;\n background-color: @pagination-disabled-bg;\n border-color: @pagination-disabled-border;\n cursor: not-allowed;\n }\n }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small);\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n padding-left: 0;\n margin: @line-height-computed 0;\n list-style: none;\n text-align: center;\n &:extend(.clearfix all);\n li {\n display: inline;\n > a,\n > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: @pager-bg;\n border: 1px solid @pager-border;\n border-radius: @pager-border-radius;\n }\n\n > a:hover,\n > a:focus {\n text-decoration: none;\n background-color: @pager-hover-bg;\n }\n }\n\n .next {\n > a,\n > span {\n float: right;\n }\n }\n\n .previous {\n > a,\n > span {\n float: left;\n }\n }\n\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > span {\n color: @pager-disabled-color;\n background-color: @pager-bg;\n cursor: not-allowed;\n }\n }\n\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: @label-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n\n // Add hover effects, but only for links\n &[href] {\n &:hover,\n &:focus {\n color: @label-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Empty labels collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for labels in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n .label-variant(@label-default-bg);\n}\n\n.label-primary {\n .label-variant(@label-primary-bg);\n}\n\n.label-success {\n .label-variant(@label-success-bg);\n}\n\n.label-info {\n .label-variant(@label-info-bg);\n}\n\n.label-warning {\n .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n .label-variant(@label-danger-bg);\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base classes\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: @font-size-small;\n font-weight: @badge-font-weight;\n color: @badge-color;\n line-height: @badge-line-height;\n vertical-align: baseline;\n white-space: nowrap;\n text-align: center;\n background-color: @badge-bg;\n border-radius: @badge-border-radius;\n\n // Empty badges collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for badges in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n .btn-xs & {\n top: 0;\n padding: 1px 5px;\n }\n}\n\n// Hover state, but only for links\na.badge {\n &:hover,\n &:focus {\n color: @badge-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n}\n\n// Account for counters in navs\na.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: @badge-active-color;\n background-color: @badge-active-bg;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n padding: @jumbotron-padding;\n margin-bottom: @jumbotron-padding;\n color: @jumbotron-color;\n background-color: @jumbotron-bg;\n\n h1,\n .h1 {\n color: @jumbotron-heading-color;\n }\n p {\n margin-bottom: (@jumbotron-padding / 2);\n font-size: @jumbotron-font-size;\n font-weight: 200;\n }\n\n .container & {\n border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n }\n\n .container {\n max-width: 100%;\n }\n\n @media screen and (min-width: @screen-sm-min) {\n padding-top: (@jumbotron-padding * 1.6);\n padding-bottom: (@jumbotron-padding * 1.6);\n\n .container & {\n padding-left: (@jumbotron-padding * 2);\n padding-right: (@jumbotron-padding * 2);\n }\n\n h1,\n .h1 {\n font-size: (@font-size-base * 4.5);\n }\n }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n padding: @alert-padding;\n margin-bottom: @line-height-computed;\n border: 1px solid transparent;\n border-radius: @alert-border-radius;\n\n // Headings for larger alerts\n h4 {\n margin-top: 0;\n // Specified for the h4 to prevent conflicts of changing @headings-color\n color: inherit;\n }\n // Provide class for links that match alerts\n .alert-link {\n font-weight: @alert-link-font-weight;\n }\n\n // Improve alignment and spacing of inner content\n > p,\n > ul {\n margin-bottom: 0;\n }\n > p + p {\n margin-top: 5px;\n }\n}\n\n// Dismissable alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable {\n padding-right: (@alert-padding + 20);\n\n // Adjust close link position\n .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n.alert-info {\n .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n.alert-warning {\n .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n.alert-danger {\n .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n overflow: hidden;\n height: @line-height-computed;\n margin-bottom: @line-height-computed;\n background-color: @progress-bg;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: @font-size-small;\n line-height: @line-height-computed;\n color: @progress-bar-color;\n text-align: center;\n background-color: @progress-bar-bg;\n .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n .transition(width .6s ease);\n}\n\n// Striped bars\n.progress-striped .progress-bar {\n #gradient > .striped();\n background-size: 40px 40px;\n}\n\n// Call animation for the active one\n.progress.active .progress-bar {\n .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Media objects\n// Source: http://stubbornella.org/content/?p=497\n// --------------------------------------------------\n\n\n// Common styles\n// -------------------------\n\n// Clear the floats\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n\n// Proper spacing between instances of .media\n.media,\n.media .media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n\n// For images and videos, set to block\n.media-object {\n display: block;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n margin: 0 0 5px;\n}\n\n\n// Media image alignment\n// -------------------------\n\n.media {\n > .pull-left {\n margin-right: 10px;\n }\n > .pull-right {\n margin-left: 10px;\n }\n}\n\n\n// Media list variation\n// -------------------------\n\n// Undo default ul/ol styles\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on
-
-
-
-
-
- A
A
')); \">
-
-
A
-
A
-
div
-
H1
-
H2
-
H3
-
-
<li>
-
-
MB
-
-
-
-
-
- $descripcion[0]
-
-
- $campos
-
-
-
-
-";
-
-}
-
-elseif(is_array($valores)) {
- $texto=str_replace('"',"'",$valores[text_contenedor]);
-$plantilla = htmlentities($texto);
-if($valores[nombre_plantilla] == "") {
- $respuesta->addAlert("No ha especificado un nombre para la plantilla");
- $respuesta->addAssign("input_nombre_plantilla","className","input-group has-error");
- return $respuesta;
- }
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='plantilla:$valores[nombre_plantilla]' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='plantilla:$valores[nombre_plantilla]', descripcion =\"$plantilla\", visible='1' ";
-$sql=mysql_query($consulta,$link);
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-$datos = contenido_mostrar("$formulario","$ultimo[1]",'',"$valores[nombre_plantilla]");
-$preview = " $valores[nombre_plantilla] $datos ";
- $div_contenido = "$preview
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- $respuesta->addAssign("titulo_modal","innerHTML","$resultado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- return $respuesta;
-
-}
-else{
-$resultado ="";
-}
-$resultado .= "";
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla");
-
-
-function parametrizacion_titulo($formulario,$div,$valores) {
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if($valores =="") {
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "$row[campo_nombre] [$row[id_campo]] ";
-}
-$resultado = "
-
- El campo titulo, se usa como indice del formulario en algunas visualizaciones como el timeline
- Campo de Título actual $campo_titulo_nombre[0] [$campo_titulo[0]]
-
-
- Cambiar campo título
-
-
- $listado
-
-
-
-";
-}
-}else {
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='titulo' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='titulo', descripcion ='$valores', visible='1' ";
-$sql=mysql_query($consulta,$link);
-if($sql){
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$resultado ="addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_titulo");
-
-
-function mostrar_modal($form,$control,$plantilla){
-$respuesta = new xajaxResponse('utf-8');
-if( $control == "") {
- $datos = formulario_areas($form,"");
-}else {
-$datos = contenido_mostrar("$form","$control",'',"$plantilla");
-}
-$div ="contenido_de_modal";
-
-$resultado = "
-
- $datos
-
-
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_modal");
-
-function portal_filtro_cadena($formulario,$id_campo,$control,$div,$plantilla){
-$cadena = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$formulario' AND id_campo ='$id_campo' ") ;
-$consulta ="SELECT * FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' AND contenido = '$cadena[0]'
- GROUP BY control ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-
- $datos = contenido_mostrar("$formulario","$row[control]",'',"$plantilla");
- if($plantilla == "") {
-$listado .= "
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-
- $listado
-
-";
-}
-
-if ($div ==""){$div="mostrar_contenido";}
-else {$div = "$div";}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("portal_filtro_cadena");
-
-
-
-function portal_filtro_campos($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $formulario_nombre[0] / $campo_nombre[0]
- {json}
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_filtro_campos_select($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $campo_nombre[0]
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_listado_campos($formulario){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_contenido_campos.orden";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[campo_nombre] ";
-}
-$resultado = "
-
-
- $formulario_nombre[0]
- {json}
- $listado
-
-
-";
-}
-return $resultado;
-}
-
-
-function portal_listado_formularios(){
-
-$consulta ="SELECT * FROM form_id WHERE publico = '1'";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[nombre] ";
-}
-$resultado = "
-
- Set de datos
-
- ";
-}
-return $resultado;
-}
-
-
-function insertar_linea($tabla,$key,$campo,$valor,$control,$orden,$div){
- $respuesta = new xajaxResponse('utf-8');
- $key = limpiar_caracteres($key);
- $valor = limpiar_caracteres($valor);
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
-if($tabla =="form_datos") {
-$consulta = "INSERT INTO form_datos ( orden, timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( '$orden',UNIX_TIMESTAMP(),'$_SESSION[id]','$_SESSION[id_empresa]','$key',$ip ,'$control', '$campo' , '$valor')
- ";
-
-}
-
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
-
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_linea");
-
-
-function select_combo($id,$tabla,$campo_valor,$campo_descripcion,$tipo){
-
-$id_empresa= $_SESSION['id_empresa'];
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$Campo_descripcion = ucwords($campo_descripcion);
-$Campo_valor = ucwords($campo_valor);
-$nombre=$tabla."_".$campo_valor;
-$div=$nombre."_hijo";
-$combo = $id."_".$tabla;
-if($tipo!=''){
-$respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE $campo_valor = '$tipo' AND id_empresa = '$id_empresa'";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado .= "
$Campo_descripcion
-
";
-$resultado .= " Seleccione $Campo_descripcion ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[$campo_valor] $row[$campo_descripcion] ";
- }
-$resultado .= " ";
- }
-
-
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;}
-ELSE{ /// si no especifica $tipo
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE id_empresa = '$id_empresa' GROUP BY $campo_valor ";
-$sql=mysql_query($consulta,$link);
-///$Documento=mysql_result($grupo,0,"documento_numero");
-$resultado = "
$Campo_valor
-
";
- $resultado .= " Seleccione $Campo_valor ";
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "$row[$campo_valor] ";
- }
- }
-$resultado .= "
";
- }/// FIN de $tipo no especifico
-
-return $resultado;
-}
-$xajax->registerFunction("select_combo");
-
-
-
-function crear_session ($form,$control) {
-
-$consulta = " SELECT distinct(id_campo),contenido FROM form_datos WHERE control = '$control' AND form_id = '$form' order by timestamp DESC ";
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!=0){
- $resultado ="
";
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $id_form = $row[form_id];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre = strtolower( str_replace(' ','_',$campo_nombre[0]));
- $_SESSION[$nombre] = $row[contenido];
- $resultado .= "$_SESSION[$nombre] ";
- }
- $resultado .= " ";
- }
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form){
- if($form != "") {$id_form = "$form";}
-/*$consulta = " SELECT distinct(form_id) FROM form_datos WHERE control = '$control' ";
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!=0){
- $session = crear_session ('16',$control);
- $resultado ="$session
";
- mysql_data_seek($sql, 0);
- //while( $row = mysql_fetch_array( $sql ) ) {
- $id_form = $row[form_id];*/
- $impresion = formulario_imprimir("$id_form","$control","");
- if($impresion !="") {
- $visitas= contar_visitas($control,'identificador') ;
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
- $resultado .= "$visitas
$nombre[0] $descripcion[0] $impresion
";
- // }
-$resultado = "
$resultado
";
- }else{
-$resultado ="
No hay resultados ";
- }
-
- // }
-return $resultado ;
-}
-
-function buscar_campo_nombre($form_id,$nombre) {
-
-$consulta ="SELECT form_campos.id FROM `form_campos` , form_contenido_campos WHERE `campo_nombre` = '$nombre' AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='$form_id' LIMIT 1";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- $id_campo=mysql_result($sql,0,"id");
-return $id_campo;
-}
-
-function conversorSegundosHoras($tiempo_en_segundos) {
- $horas = floor($tiempo_en_segundos / 3600);
- $minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
- $segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
-
- return $horas . ':' . $minutos . ":" . $segundos;
-}
-
-function mensajes($tipo,$campos_form,$datos,$control) {
- $campo_remitente = $campos_form['remitente'];
- $campo_destinatario = $campos_form['destinatario'];
- $campo_asunto = $campos_form['asunto'];
- $campo_mensaje = $campos_form['mensaje'];
- $form_id = $campos_form['formulario_id'];
- $form_usuarios = $campos_form['formulario_usuarios'];
- $campo_usuarios = $campos_form['campo_usuario'];
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='formulario') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
-
-//$campos = formulario_areas($form_id,'campos');
-$control_original = $control;
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
- $respuesta->addAssign("div_mensaje_$control_original","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo =='responder') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
- $remitente = buscar_campo_nombre("$form_id","Para");
- $destinatario = buscar_campo_nombre("$form_id","De");
- $mensaje = buscar_campo_nombre("$form_id","Mensaje");
- $asunto = buscar_campo_nombre("$form_id","Asunto");
-
- $asunto_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$asunto' AND control='$control'") ;
- $mensaje_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$mensaje' AND control='$control'") ;
- $remitente_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$remitente' AND control='$control'") ;
- $destinatario_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$destinatario' AND control='$control'") ;
-
-$formulario ="
-
-
-
-
-
-
-
-
- Asunto
-
-
-
- Mensaje
- $mensaje_value[0]
-
- ";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
-";
- $respuesta->addAssign("div_mensaje_$control","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo=="recuperar") {
-
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
-
- $consulta ="SELECT *, FROM_UNIXTIME(timestamp) as fecha , DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d') as dia, DATE_FORMAT(FROM_UNIXTIME(timestamp),'%H:%i') as hora FROM form_datos WHERE form_id ='$form_id' AND id_campo = '$campo_destinatario' AND contenido ='$_SESSION[usuario_milfs]' GROUP BY control, timestamp order by timestamp DESC ";
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-
- $mensajes = mysql_query($consulta,$link);
-// $destinatario ="$campo_destinatario"."[0]";
-// $para = buscador_campo("$campo_destinatario","$form_id","","$destinatario","","");
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
-
-
-
-$lista ="
-
-
-
-";
-while( $row = mysql_fetch_array( $mensajes ) ) {
- $asunto = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_asunto' AND control='$row[control]'") ;
- $mensaje = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_mensaje' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_remitente' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_usuarios",'contenido'," id_campo = '$campo_usuarios' AND control='$remitente[0]'") ;
- if($remitente[0] =='') {$remitente[0]="
Sistema";}
- $hoy=date('Y-m-d');
- $control = $row[control];
- if($hoy == $row[dia]){$momento = $row[hora];}else {$momento=$row[dia];}
-//function contenido_mostrar($id,$control,$div,$plantilla)
-//$contenido = contenido_mostrar("$form_id","$control","",'');
- $lista .="
-
- ";
-}
- // $respuesta->addAssign("div_mensaje","innerHTML",$lista);
- $lista .=" ";
- return $lista;
-
-}
-
-$resultado ="hola";
-
- $respuesta->addAssign("div_mensaje","innerHTML",$resultado);
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("mensajes");
-
-function revisar_campo_unico($id,$campo,$id_form,$valor) {
- $respuesta = new xajaxResponse('utf-8');
- $div= "div_$id";
- $existe = remplacetas('form_datos','form_id',"$id_form",'control'," BINARY contenido = '$valor' AND id_campo = '$campo'") ;
- if($existe[0] != "") {
- $texto ="El valor ya existe";
-$respuesta->addAssign("$div","className","text-danger");
-$respuesta->addAssign("input_$id","className","form-group has-error");
- }else{
- $texto ="";
-$respuesta->addAssign("$div","className","text-success");
-$respuesta->addAssign("input_$id","className","form-group has-success");
- }
-
- $respuesta->addAssign("$div","innerHTML",$texto);
- return $respuesta;
-}
-$xajax->registerFunction("revisar_campo_unico");
-
-
-
-function milfs_session($form_id,$campo_usuario,$campo_password,$tipo,$datos){
- $datos = mysql_seguridad($datos);
- $respuesta = new xajaxResponse('utf-8');
-
-if($tipo =="") {
-
-
-
-if($_SESSION[usuario_milfs]) {
- $formulario = "
SALIR";
-}else {
-$formulario ="
-$accion
-
-
-
-";
-
-
-}
-return $formulario;
-}
-elseif($tipo =='salir') {
- session_destroy();
- $respuesta->addScript("javascript:location.reload(true);");
-
-}
-elseif($tipo=='registrarse') {
- $modificable = remplacetas('form_id','id',$id,'modificable') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $formulario = "
Función no disponible, por favor comuníquese con el administrador
";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
- }
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-
-Registrarse
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-$boton
-
-
-";
-
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
- if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-
Usuario
-
-
-
Código de recuperación Deja este campo vacío si aun no tienes el código de recuperación
-
-
-";
-$boton ="
-
Solicitar clave
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-
-$boton
-
-
-
-";
- }else{
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- if($usuario[0] !="") {
- $password = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_password' ") ;
- if($datos[codigo] !="") {
- if( $datos[codigo] =="$password[0]" ){
- $control = remplacetas('form_datos','control',"$usuario[0]",'control'," id_campo = '$campo_password' ") ;
- $campos ="
-
-
-
-
-
-
-
- ";
-
- $formulario ="$campos";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
-
- }else {
- $respuesta->addAlert("El código no es correcto, por favor rectifíquelo o solicítelo nuevamente dejando el campo VACIO");
- return $respuesta;
- }
- }
- $campo_email = buscar_campo_tipo("$form_id","12");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $formulario="$usuario[0] $password[0] // $campo_email[0] $email[0]";
- $email_empresa = remplacetas('empresa','id','1','email','') ;
- $sigla = remplacetas('empresa','id','1','sigla','') ;
- $razon_social = remplacetas('empresa','id','1','razon_social','') ;
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] <$email_empresa[0]>\r\n";
- $headers .= "Reply-To: $email_empresa[0]\r\n";
- $headers .= "Return-path: $email_empresa[0]\r\n";
- $asunto= "[ $sigla[0] ] Código para recuperar contraseña ";
- $cuerpo ="
-
Hola $datos[usuario]
- El código para recuperar tu contraseña es:
-
$password[0]
- Regresa pronto :-)
-
- ";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="
Te hemos enviado un correo a $email[0] con el código de recuperación "; }
- else {$formulario ="
Error enviando correo ";}
-
- }else{
-
- $formulario="
No pudimos encontrar tu usuario $datos[usuario] . Por favor rectifícalo y prueba nuevamente ";
- }
-
-
- }
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='confirmar_recuperar') {
-
- if($datos[password] != $datos[confirmar_password]) {
- $respuesta->addAlert("Los valores no son iguales");
- return $respuesta;
-
- }
- $link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-
-
-
-
- $consulta="UPDATE form_datos SET contenido = MD5('$datos[password]')
- WHERE control ='$datos[control]'
- AND contenido ='$datos[codigo]'
- AND form_id ='$form_id'
- AND id_campo = '$campo_password' ";
-
- if (mysql_query($consulta,$link)){
-$resultado ="
Se cambió el password Por favor ingrese con sus nuevos datos
aquí ";
-$respuesta->addAssign("login_div","innerHTML",$resultado);
-return $respuesta;
- };
-
-
-
-}
-
-elseif ($tipo=='ingreso'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $password = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = MD5('$datos[password]') AND id_campo = '$campo_password'") ;
-
-if ( $usuario[0] != "" AND $usuario[0] === $password[0]) {
-$respuesta->addAssign("login_milfs","className"," has-success ");
-$resultado ="$usuario[0] // $password[0] ";
-$_SESSION[usuario_milfs] = $usuario[0];
-$_SESSION[nombre_usuario_milfs] = $datos['usuario'];
-$respuesta->addScript("javascript:location.reload(true);");
-}else {$resultado ="
Error Los datos no son correctos :( ";
-$respuesta->addAssign("login_milfs","className"," has-error ");
-}
-
-$respuesta->addAssign("resultado","innerHTML",$resultado);
-//$respuesta->addAlert("resultado");
-
-
-}
-elseif ($tipo=='nuevo'){
-
-$usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-
-$campos_consulta_obligatorio="
- SELECT id_campo, obligatorio
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
- AND obligatorio='1'
- ";
-
-
- $campos_obligados= mysql_query($campos_consulta_obligatorio,$link);
-
-while( $row = mysql_fetch_array( $campos_obligados ) ) {
-$campo_valor=$datos[$row[id_campo]][0];
-
-if($row[obligatorio]=='1'){
- $obligatorios .= "$row[id_campo]";
-if($campo_valor == '' && $row[obligatorio]=='1'){
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
-$error = "Revise campos obligatorios $campo_nombre[0]";
-
- }else {$error ="";}
-if($error !=''){
-$respuesta->addAlert($error);
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
- return $respuesta; }
- }
-
-
- }/// fin de registros obligatorios
-
-
-
- $campos_consulta="
- SELECT id_campo, obligatorio, id_empresa
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
-
- ";
- $campos= mysql_query($campos_consulta,$link);
-$ip = obtener_ip();
-$control = $datos['control'];
-while( $row = mysql_fetch_array( $campos ) ) {
-$campo_valor=$datos[$row['id_campo']][0];
-$campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
-/// Si el campo es password (18) se guarda su equivalente en md5
-if($campo_tipo[0] =="18") {
- $campo_valor = MD5("$campo_valor");
-}
-if($campo_tipo[0] =="19") {
-$existe = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$campo_valor' AND id_campo = '$row[id_campo]'") ;
-if($existe[0] !='') {
-$respuesta->addAlert("Revise los campos únicos !");
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
-
-
- return $respuesta;
-}else{
-//$respuesta->addAlert("$existe[2]"); return $respuesta;
-}
-}
-
- if ($campo_valor !=''){
-
-$insertar_consulta = "
- INSERT INTO `form_datos`
- SET
- id_campo = '$row[id_campo]',
- contenido = '$campo_valor',
- control ='$control',
- timestamp = UNIX_TIMESTAMP(),
- form_id = '$form_id',
- ip = '$ip',
- id_empresa = '$row[id_empresa]'
- ";
-
-
- }else{
-
-
- }
-
-if ($error ==''){
-$sql_consulta=mysql_query($insertar_consulta,$link);
-if($sql_consulta){
-$login = milfs_session("$form_id","$campo_usuario","$campo_password","","");
-$resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-
-
- }else{$resultado.= "
La consulta no se grabó
";}
-}else { }
-
- }
- $resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-$respuesta->addAssign("login_div","innerHTML",$resultado);
-return $respuesta;
-
-
-}
-
-else{}
-return $respuesta;
-
-}
-$xajax->registerFunction("milfs_session");
-
-
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='') {
-$resultado="
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form contenido like '%%$valor%%' group by control LIMIT 200 ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-$fila=1;
-$divider=3;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
- /* $contenido = htmlentities($row[contenido]);
- $p = stripos($contenido, $valor);
- $s1 = substr($contenido, 0, $p);
- $s2 = substr($contenido, $p, strlen($valor));
- $s3 = substr($contenido, ($p + strlen($valor)));
- $r = $s1."
$s2 ".$s3;
- */
- $datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
$datos
";
-
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor $encontrados ";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql_total=mysql_query($consulta_total,$link);
-$total = mysql_num_rows($sql_total);
-$sql=mysql_query($consulta,$link);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = $descripcion[0];
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion";
-
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysql_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
$buscador
-
-
-
- $contenido
-
- Mostrar mas resultados
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-
-function insertar_registro($tabla,$formulario,$div,$principal) {
- //$valores ="$formulario[0]";
- $formulario = limpiar_caracteres($formulario);
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
-
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- $ultimo_id = mysql_insert_id();
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $valores = limpiar_caracteres("$valores");
- $grupo = editar_campo("$tabla",$ultimo_id,"$principal","","","");
- $respuesta->addAssign($div,"innerHTML","
$formulario[$principal] ");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- //$respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_registro");
-
-
-
-function formulario_area_campos($perfil,$area) {
- $id_empresa= $_SESSION['id_empresa'];
- $campos= "";
-
-$consulta = "
- SELECT * FROM form_campos , form_contenido_campos
- WHERE form_contenido_campos.id_form = '$perfil'
- AND form_contenido_campos.id_campo = form_campos.id
- AND campo_area='$area'
- ORDER BY form_contenido_campos.orden";
-
- $link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-
-
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- if( $row[obligatorio] == '1'){$obligatorio="*";}else {$obligatorio='X';}
-
- if($row[campo_tipo] =="24") { $row[multiple] = "1";}
- if($row[multiple] ==='1' AND $tipo =='edit'){
- $campos .= formulario_campos_render_multiple($row[id_campo],$perfil,$control_edit);
- }else{
- $campos .= formulario_campos_render($row[id_campo],$perfil,$control_edit,'');
- }
- $muestra_form .= "$campos $obligatorio ";
- $solo_campos .= "$campos $obligatorio ";
-
- }
-
-
-}
-
-
-$resultado = "$muestra_form";
- return $campos;
-
-}
-
-function formulario_areas($perfil,$tipo){
- // $tipo ="embebido";
- if(func_get_arg(2)=='respuesta'){$control =func_get_arg(3);}else{
-$control = md5(rand(1,99999999).microtime());
-}
- $respuesta = new xajaxResponse('utf-8');
- $id_empresa= $_SESSION['id_empresa'];
- /*$consulta = "SELECT * FROM form_areas, form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
- AND form_areas.id = form_campos.campo_area AND form_areas.id_empresa = '$id_empresa'
- OR (form_contenido_campos.id_form = '$perfil' AND form_campos.campo_area ='0' )
- AND form_areas.estado = '1' GROUP BY form_areas.id ORDER BY form_areas.orden";
- */
- $consulta= "SELECT * FROM form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
-
- GROUP BY form_campos.campo_area
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- //$campo_titulo = remplacetas('parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
- $descripcion = remplacetas('form_id','id',$perfil,'descripcion','') ;
- $formulario_respuesta = remplacetas('form_id','id',$perfil,'formulario_respuesta','') ;
- $empresa = remplacetas('form_id','id',$perfil,'id_empresa','') ;
- $empresa = $empresa[0];
-
- $nombre= strtoupper($nombre[0]);
- $descripcion= $descripcion[0];
- $respuesta= $formulario_respuesta[0];
-
-
-//// encabezado form
-
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- //$descripcion=mysql_result($sql,0,"descripcion");
- //$nombre=mysql_result($sql,0,"nombre");
- //$empresa=mysql_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$empresa",'encabezado');
- $pie = empresa_datos("$empresa",'pie');
- $cabecera = "
-
-
-
-
-
-
-
$nombre$descripcion
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($perfil,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen_nombre = ucwords($campo_imagen_nombre);
-$campo_imagen = $campo_imagen[0];
-
-
-if ($campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$perfil","$campo_imagen"."[0]");
-if($tipo != "campos") {
- $imagen = "
-
- ";
-
- }else {$imagen =" ";}
- }
-
- $muestra_form = "
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
-
-////fin encabezado form
-
-
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row['campo_area']=="0"){$area_nombre ="";}
- else{
- $area_nombre = remplacetas('form_areas','id',$row['campo_area'],'nombre','') ;
- $area_nombre = $area_nombre[0];
- }
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- //$producto = remplacetas('farmacia_cum','id',$row[id_producto],'fabricante_importador') ;
- ///// para pasar el parametro de medicamentos al formulario no pos se adiciona ".func_get_arg(2)."
- $campos = formulario_area_campos($perfil,$row['campo_area']);
-$resultado_campos .= "$area_nombre
-$campos
- ";
- }
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos
-
- ";
-
-//// fin botonera form
-
- }
-
-//// cierre form
-
-$muestra_form .="
-
-
-
";
-if($tipo=='campos') {
-
- $resultado = "$resultado_campos $imagen ";
- return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-
-";
-return $resultado;
-
-/// fin cierre form
- // $resultado .= "$consulta";
-//$respuesta->addAssign($div,"style.display","block");
-//$respuesta->addAssign($div,"innerHTML",$resultado);
-//return $respuesta;
- //print $muestra_form;
-// return $muestra_form;
- }
-
- $xajax->registerFunction("formulario_areas");
-
-
-
-function tabla_areas($tabla,$value,$descripcion,$onchange,$where,$nombre,$div){
-
- if($div =="") {
- $div="div_campos";
- $resultado = "
-
Modificar areas
- ";
- return $resultado;
- }
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$campo3 = $campos[2];
-$campo4 = $campos[3];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-$id_empresa= $_SESSION['id_empresa'];
-if($where =='AGRUPADO'){$group="group by $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT * FROM $tabla WHERE 1 $w AND id_empresa='$_SESSION[id_empresa]' $group ORDER BY orden ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-
-$resultado="
-$name
-Id $campo1 $campo2 $campo3 $campo4
- " ;
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
-$editar_campo1= editar_campo("$tabla",$row['id'],"$campo1","","","");
-$editar_campo2= editar_campo("$tabla",$row['id'],"$campo2","","","");
-$editar_campo3= editar_campo("$tabla",$row['id'],"$campo3","","","");
-$editar_campo4= editar_campo("$tabla",$row['id'],"$campo4","","","");
-$eliminar = " ";
-$resultado .= "$row[$value] $editar_campo1 $editar_campo2 $editar_campo3 $editar_campo4 $eliminar ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-
-
-
-
-Agregar área
-
-
-
-
-
-
-
-
-
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("tabla_areas");
-
-
-
-
-function importar_coleccion($form){
-$div ="confirmar_importacion";
-//$archivos = listado_archivos("$form[path]");
-//$archivos = listar_archivos("$form[path]",'cantidad','',$form);
-
- $directorio = opendir("$form[path]"); //ruta actual
-$resultado = " ";
-while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
-{
- if (is_dir($archivo))//verificamos si es o no un directorio
- {
- // $resultado .= "[".$archivo . "]
"; //de ser un directorio lo envolvemos entre corchetes
- }
- else
- {$autor="";
- $ext = explode(".", $archivo);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {
- $cantidad_imagenes++ ;
-
- $exif = leer_exif("$form[path]/$archivo");
- //$name = $exif['exif']['FileName']." ".$form['38']['0']."*" ;
- $form['0']['0'] = "$archivo";
- $autor= $exif['exif']['Artist'];
- $creator = $form['40'][0];
- if($autor !="" ) { $remplazo = array('40' => array("$autor")); }else{ $remplazo; }
-
- }
- //$form = array_replace_recursive($form, $reemplazo);
- $resultado .= $archivo ." / $name ".$form['0'][0]."
";
- }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= "( $c : $V )
";
- if($V != '') {
- }
- }
-}
-}
-*/
-//$resultado="$archivos $campo";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("importar_coleccion");
-
-
-
-
-function listar_archivos( $path ,$opcion, $div,$datos){
- // Abrimos la carpeta que nos pasan como parámetro
-
- $resultado ="";
- //$link = Conectarse();
- $dir = opendir($path);
- $cantidad =0;
- $cantidad_imagenes =0;
-//$datos['61'] = array ( 0 => "otro valor");//"OTRO VALOR";
- if(is_file($path)) {$esarchivo="Escriba la ruta a un directorio en el servidor
"; }
- // Leo todos los ficheros de la carpeta
- //if($esarchivo =="") {
- // $elemento = readdir($dir);
- //}
- while ($elemento = readdir($dir) ){
-
- // Tratamos los elementos . y .. que tienen todas las carpetas
- if( $elemento != "." && $elemento != ".."){
- // Si es una carpeta
- if( is_dir($path.$elemento) ){
- // Muestro la carpeta
- // $resultado .= "
CARPETA: ". $elemento ."
";
- // Si es un fichero
- } else {
- $ext = explode(".", $elemento);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {$cantidad_imagenes++ ;
-
- $exif = leer_exif("$path/$elemento");
- $name = $exif['exif']['FileName'];
- $title= "$name ";
- $date= $exif['exif']['DateTimeOriginal'];
- $autor= $exif['exif']['Artist'];
- if(!isset($autor)) { $autor = $datos['40'][0]; }
- $licencia= $exif['exif']['Copyright'];
- if($licencia ==="") { }
- else{
-// $datos['61'][0]= " XX $licencia XXX";
- }
-
-
- //$datos['61'][0] = $licencia;
- if(isset($exif['exif']['UndefinedTag:0xC4A5'])) {
- $exif['exif']['UndefinedTag:0xC4A5']= base64_encode($exif['exif']['UndefinedTag:0xC4A5']);
- }
- if(isset($exif['exif']['MakerNote'])) {
- $exif['exif']['MakerNote']= base64_encode($exif['exif']['MakerNote']);
- }
- if ( $exif['lon'] =="" )
- {
- $geo = $datos['58'][0];
- $mundo ="";
- $datos['58'][0] = $datos['58'][0];
-
- }
- else {
- $geo = "$exif[lon] $exif[lat] 18" ;//$datos['58'][0];
- $mundo ="
";
- $datos['58'][0]= "$geo";
-
-
- }
-
- // $remplazos = array('40');
- // else { $mapa="";}
- //$json = json_encode($exif['exif'],JSON_PRETTY_PRINT);
- //if ( $exif['lon'] =="" ){$datos['58'][0] = $geo;}else {$datos['58'][0] = $datos['58'][0];}
- $resultado .= "
$geo $mundo / ".$datos['58'][0]." ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]." ";
-
- }
-
- $cantidad ++;
-
- $campo .= "";
-
-
- }
- }
-
- }
-
-
- if($div !="" ) {
- if($opcion == "cantidad") {
- $resultado = "
-
- $esarchivo $cantidad archivos, $cantidad_imagenes imágenes jpg, $mapa georeferenciadas
-
-
";
- }
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }else {
-
-
-
- return " $campo $resultado"; }
-}
-$xajax->registerFunction("listar_archivos");
-
-
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( "$file" );
- $resultado['exif'] = $exif;
- $resultado['file']= $file;
- $resultado['FileName']=$exif['FileName'];
-
-if($exif === false) {
-//return false;
-}
-
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado['lat'] = $gps_latitude;
- $resultado['lon'] = $gps_longitude;
-
- //$resultado = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
- }else{}
-
-}
-
-
- $resultado['DateTime'] = $exif['DateTimeOriginal'];
- $resultado['estado'] = "oK";
-
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-
-function relacion_render($form_id,$id_campo,$valor,$cantidad){
-
-
-
-
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-$link = "
Ver referencia ";
-}
-
- return " $valor_actual $link";
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_render");
-
-function buscador_base($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_base_$name";
-$onchange = " xajax_buscador_select_base('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select_base('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_base");
-
-
-function buscador_select_base($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_base_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $tabla = explode(':',$claves[0]) ;
- $tabla = $tabla[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion1 = explode(':',$claves[2]) ;
- $descripcion1 = $descripcion1[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $descripcion3 = explode(':',$claves[4]) ;
- $descripcion3 = $descripcion3[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT * FROM $tabla WHERE $descripcion1 like '$valor%%' GROUP BY $key limit 50 ";
-
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-//$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-//$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select_base");
-
-
-
-function buscador_campo($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_$name";
-$onchange = " xajax_buscador_select('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_campo");
-
-
-function imprimir_buscador_campo($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function imprimir_base($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $campo1 = remplacetas("$formulario","$key","$valor","$descripcion","");
- $campo2 = remplacetas("$formulario","$key","$valor","$descripcion2","");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function buscador_select($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and (id_campo ='$key' OR id_campo ='$descripcion' )AND contenido like '$valor%%' GROUP BY control limit 50 ";
-
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $campo_key[0] $campo_descripcion[0] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select");
-
-
-
-function relacion_select($id_campo,$form_id,$valor,$name,$control,$tipo){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit =="" ) {$limit = 20;}
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_select");
-
-function combo_select($id_campo,$form_id,$valor,$name,$control,$control_combo){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if($control_combo !="") {
- $div ="combo_$name";
-$and ="AND campo_valor LIKE '$control_combo:%%'";
-}else{
-$onchange ="xajax_combo_select('$id_campo','$valor','$valor','$name','$control',(this.value)) ";
-$div ="combo_$name";
-$name ="primario_$name";
-}
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' $and ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado=" $valor
-Seleccione
- " ;
- // $resultado = array_unique($entrada);
-while( $row = mysql_fetch_array( $sql ) ) {
- $campos = explode(':',$row[campo_valor]);
-
- IF($control_combo ==""){
- $campo_primario[]=$campos[0];
- $campo_primario = array_unique($campo_primario);
- }
- else {
- $campo_primario[] = "$campos[0] $campos[1]";
- }
- //$identificador = $identificador[0];
-//if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-//$resultado .= " $campos[0] ";
- }
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "$V ";
-}
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-if($control_combo =='') {
- return $resultado;
- }
-else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-$xajax->registerFunction("combo_select");
-
-
-function aplicacion_carrusel($nombre,$id,$plantilla){
- if($id =='') {
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- }
- if($nombre =='') {
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre = $nombre[0];
- }
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
- $descripcion = $descripcion[0];
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
- $campo_titulo = $campo_titulo[0];
- $consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
- $link=Conectarse();
- $sql=mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysql_data_seek($sql, 0);
-// $contenido = "
$nombre[0] ";
-// $contenido .= "
$descripcion[0] ";
-
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- if($orden === 0) {$activo = "active";}else{$activo="";}
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $campo = buscar_campo_tipo($id,"15");
- $id_campo = $campo[0];
- $imagen = remplacetas('form_datos','control',$row[control],'contenido',"id_campo = '$id_campo'") ;
- $items .= "
-
-
- $contenido_desplegado
-
-
";
- $indicador .= "
";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- //$contenido .= "$contenido_desplegado ";
- $orden = ($orden +1 );
- }
-$contenido .= "
-
-
-
$nombre[0] $descripcion[0]
-
-
-
- ";
- //$contenido = " $links
";
- }
-
-
-return $contenido;
-}
-
-
-function formulario_embebido($id){
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- $impresion = formulario_areas($id,"embebido");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
- ( $visitas )
-
$formulario_nombre[0]$formulario_descripcion[0]
- $impresion
-
-
-
-
-
-
-
";
- return $muestra_form ;
-}
-
-
-function formulario_embebido_campos($id,$opcion){
- $impresion = formulario_modal("$id",$form_respuesta,$control,"$opcion");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $muestra_form = "
-
-
$formulario_nombre[0]
-
$formulario_descripcion[0]
- $impresion
-
-
-
";
- return $muestra_form ;
-}
-
-function json($datos){
-if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND
-form_id.publico = '1' "; $w_publico = "WHERE form_id.publico = '1'
-"; }
-else { $publico = "AND form_id.id_empresa = '$_SESSION[id_empresa]'
-"; $w_publico = "WHERE form_id.id_empresa = '$_SESSION[id_empresa]' ";
-}
-$datos = mysql_seguridad($datos);
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-if($datos[id] !=''){
-if($datos[tipo] =='simple') {
-$campos ="control " ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-GROUP BY form_datos.control
-ORDER BY form_datos.timestamp DESC";
-
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysql_fetch_array( $sql ))
- {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $nuevos_datos = $datos;
- $nuevos_datos[identificador]="$row[control]";
- $nuevos_datos[tipo]="array";
- //$features[$row[control]] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- $features[] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-
-if($tipo == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-return $resultado;
-
-}
-else {
-$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo , contenido ,timestamp, control as identificador ,
-form_datos.orden" ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-ORDER BY form_datos.control ,form_datos.timestamp ";
-}
-
-}
-elseif($datos[identificador] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo ,contenido ,timestamp, control as identificador ,
-form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (control = '$datos[identificador]' )
-$publico
-";
-}
-elseif($datos[dato] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, nombre as formulario,
-campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp,
-control as identificador, form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_datos.id = '$datos[dato]' )
-$publico
-";
-}
-else {
-$consulta = "SELECT id as form_id, nombre as form_nombre, descripcion
-as form_descripcion , creacion , publico AS contenido_publico ,
-modificable AS formulario_publico
-FROM form_id $w_publico";
-}
-
-
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysql_fetch_array( $sql ))
- {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $features[] = "$nombre_campo[0] : $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-if($datos[tipo] == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-
-return $resultado;
-}
-
-
-
-
-function imprime_geojson($id,$id2,$plantilla){
- $id_form = mysql_seguridad($id);
- $id_form2 = mysql_seguridad($id2);
- $campo = buscar_campo_tipo($id_form,"14");
- $campo2 = buscar_campo_tipo($id_form2,"14");
- $id_campo = $campo[0];
- $id_campo2 = $campo2[0];
- if($id_form2 !=""){$w_id2 =" OR form_id = '$id_form2'"; $or_2 ="or id_campo = '$id_campo2'";}
-
-$link=Conectarse();
-
- $consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data
-FROM `form_datos`
-WHERE (form_id = '$id_form' $w_id2 )
-AND ( id_campo ='$id_campo' $or_2 )
-group by control
-ORDER BY orden desc";
-//return $consulta;
-
- mysql_query("SET NAMES 'UTF8'");
- $sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
- $id = 1;
- $features = array();
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $marcador = array();
- $propiedades = array();
- $identificador = explode(',',$row[data]);
- $identificador = $identificador[0];
- $campos = explode(" ",$identificador);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- $formulario = formulario_imprimir($row[id],$row[control],"$plantilla");
-
- $marcador["type"] = "Point";
- $marcador["coordinates"] = array($lat,$lon);
- $propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
- //$propiedades[description] ="HOLA MUNDO";
- $propiedades[description] ="
$formulario
";
- $propiedades[sounds] ="";
- $propiedades[url] ='';
- $propiedades[icon][iconSize] =[60,60];
- //$propiedades[icon][shadowSize] =[70,70];
- //$propiedades[icon][shadowUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
-
- //$propiedades[title] ='Hola mundo';
- if($propiedades[icon][iconUrl] =="") {
- $propiedades[icon][iconUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }
- $geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)."},";
- $features[] = $marcador;
-
- $id++;
- }
-
-}
-//-75.58295 6.25578 16
-
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
- \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
- \"type\": \"FeatureCollection\",
- \"features\": [$geometria ]}";
-return $geometria;
-}
-
-
-function aplicacion_presentacion($id,$div,$timeout){
- if($timeout < '1000') {$timeout =5000;};
- $respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT * FROM form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$control = mysql_result($sql,0,control);
-$impresion = formulario_imprimir("$id","$control","");
-
- }
-$siguiente = "
SIGUIENTE ";
-if($div ==''){
- $presentacion = "
$siguiente $impresion
";
- }else{
- //$respuesta->addAlert("$consulta");
- $respuesta->addScript("setTimeout(function(){xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout')},$timeout)");
- $respuesta->addAssign("$div","innerHTML","$siguiente $impresion");
- return $respuesta;
- }
-return " $presentacion";
-
-
-}
-$xajax->registerFunction("aplicacion_presentacion");
-
-function aplicaciones_listado($id_form,$tipo,$div){
-
-// if($id_empresa !=''){ $_empresa = " ";}
- //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";}
- if($id_form !="") {$w_form = " AND id = '$id_form'";}
- $w_publico =" publico ='1'";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE $w_publico $w_form ORDER BY orden asc ";
-mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado_li .= "
";
- }else {$resultado_li = "";}
-
-if($tipo =='li') { return $resultado_li.$resultado;}
-elseif($tipo =='nav') { return $resultado_nav;}
-elseif($tipo =='grid') {
-if($div !="") {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado_grid");
- return $respuesta;
- }else{
- return $resultado_grid;
- }
-}
-elseif($tipo =='banner') { return $resultado_banner;}
-elseif($tipo =='carrusel') { return $resultado_carrusel;}
-else {return $resultado;}
-}
-$xajax->registerFunction("aplicaciones_listado");
-
-
-function contenido_aplicacion($id,$plantilla){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
- $control = mysql_result($sql,0,"control");
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysql_data_seek($sql, 0);
-
- //$contenido = "
$nombre[0] ";
- $contenido = "
$descripcion[0] ";
-
- $orden = 0;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- //return "$row[form_id] $row[control] $plantilla";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado
";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- if($id[0] =="") {$aviso = "
No se ha definido una aplicación con el nombre $nombre ";
- return $aviso;}
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
-
- mysql_data_seek($sql, 0);
- $contenido = " ";
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado ";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-
-
-function contenido_parallax($id){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- $contenido = "";
- mysql_data_seek($sql, 0);
-
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
- //$orden = $orden+500;
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'','contenido');
-
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $nav_li .="
-
- ";
- $style .=" a[id= '$row[control]']:target ~ #main_$id article.article
- {
- -webkit-transform: translateY(-$orden"."px);
- transform: translateY( -$orden"."px );
- } ";
- $links .= "
";
- $contenido .= "
-
- $contenido_desplegado
-
- ";
- $orden = $orden +800;
- }
- $contenido = "
-
-
- $links
-
-
-
-
- ";
- }
-
-//return " $contenido";
- $respuesta->addAssign("$div","innerHTML","$contenido");
- return $respuesta;
-
-}
-$xajax->registerFunction("contenido_parallax");
-
-function contenido_timeline($id){
-$div = "contenedor";
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- //$contenido = "
-
- $subir_imagen
-
-
- ";
-
- $respuesta->addAssign($div,"innerHTML",$resultado);
-
-}
-
-return $respuesta;
-}
-$xajax->registerFunction("configuracion");
-
-
-function cambiar_imagen($imagen,$tabla,$id) {
- $respuesta = new xajaxResponse('utf-8');
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "UPDATE $tabla SET `imagen` = '".$imagen."' WHERE `id` = '$id';";
- $sql_consulta=mysql_query($consulta,$link);
- if($sql_consulta) {
-if($tabla =='empresa') {
- $respuesta->addAssign("banner","style.backgroundImage","url('images/secure/?file=600/$imagen')");
- $respuesta->addAssign("formUpload","innerHTML","");
-}
-
- //$respuesta->addAlert("$consulta");
-return $respuesta;
-}
-}
-$xajax->registerFunction("cambiar_imagen");
-
-
-
-
-function limpiar_caracteres($valor){
-$b=array("{","}","]","[",";","¡","!","¿","?","'",'"' );
-$c=array(" "," "," "," "," "," "," "," ","'"," ");
-$resultado=str_replace($b,$c,$valor);
-return $resultado ;
-}
-
-function actualizar_campo($tabla,$key,$campo,$valor,$accion,$div) {
- $valor = limpiar_caracteres($valor);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' $accion limit 1; ";
- $sql=mysql_query($edit,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $respuesta->addAssign($div,"innerHTML",$valor);
- }
- return $respuesta;
-}
-$xajax->registerFunction("actualizar_campo");
-
-
-function eliminar_campo($tabla,$key,$div) {
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $borrar = "DELETE FROM $tabla WHERE id = '$key' limit 1";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($borrar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $respuesta->addAssign($div,"innerHTML","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("eliminar_campo");
-
-
-function insertar_campo($tabla,$formulario,$div) {
- //$valores ="$formulario[0]";
- $nombre = $formulario['nombre'];
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-// $respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_campo");
-
-function insertar_campo_area($tabla,$formulario,$div) {
- //$valores ="$formulario[0]";
- $nombre = $formulario['nombre'];
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- $respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_campo_area");
-
-
-function editar_campo($tabla,$key,$campo,$valor,$accion,$div,$indice){
- if ( !isset ( $_SESSION['id'] ) ) { return;}
- if($indice =="") {$id = "id";}
- else {$id = "$indice";}
- ////NO SE PUEDE EDITAR EL CAMPO (id )
-
-//
-if(@$div=='') {$div = "div_$tabla".$campo;}
-else {$div = $div;}
- $respuesta = new xajaxResponse('utf-8');
- $valor = limpiar_caracteres($valor);
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $consulta = "SELECT $id , $campo AS valor FROM $tabla WHERE $id = '$key' LIMIT 1";
- $sql_consulta=mysql_query($consulta,$link);
- $Valor = mysql_result($sql_consulta,0,"valor");
-
-
-if(@$accion == 'cerrar') {
- $campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
-$respuesta->addAssign($div,"innerHTML",$campo);
-return $respuesta;
- }
-elseif($accion=="input") {
- $size= strlen($Valor);
- $placeholder = strtoupper(limpiar_caracteres($campo));
- $rrn = $div;
-if($size < 40) {
-
- $resultado = "
-
- ";
- }else {
- $resultado = "
-
- ";
- }
- }
-elseif($accion== "grabar"){
-
- $edit = "UPDATE $tabla SET $campo = '$valor' WHERE $id = '$key' limit 1; ";
- $sql=mysql_query($edit,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
- $campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
- $respuesta->addAssign($div,"innerHTML",$campo);
- return $respuesta;
-
-
- }
-
-else{
- if (mysql_num_rows($sql_consulta)!='0'){
- $valor=mysql_result($sql_consulta,0,"valor");
-
- /////// campos que no se muestran ///
-if($campo == 'id' OR $campo == 'id_usuario' OR $campo == 'id_grupo') {
-return ;
-}
-
- /////////// campos que se muestran para edicion //////////////
- $title = strtoupper(limpiar_caracteres($campo));
- $div= rand(123,999);
- if($valor =="") {$aviso="
$title ";}else{$aviso ="";}
-$campo ="
-
-
-
- ";
- }
- else {$campo = "";}
-
- return $campo;
-}
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
-}
-
-$xajax->registerFunction("editar_campo");
-
-
-function formulario_imprimir($id,$control,$tipo) {
-
-if(is_numeric($tipo)) { $limit = "limit $tipo "; $class= "alert alert-info";}
-//if($control != "") { $w_control = "AND control = '$control' ";}
- $id = mysql_seguridad($id);
- $control = mysql_seguridad($control);
- $publico = remplacetas('form_id','id',$id,'publico','') ;
- if($publico[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- return $resultado;
-
- }
-
- //if($id !='') {$w_id = "AND form_id = '$id'";}else {$w_id='';}
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos , form_datos
- WHERE form_contenido_campos.id_campo = form_datos.id_campo
- AND form_datos.control = '$control'
- AND form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
- $control = mysql_seguridad($control);
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysql_result($sql,0,"form_id");}
-
-
-
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
-
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
-
- while( $row = mysql_fetch_array( $sql ) ) {
- $multiple ="$row[multiple]";
- $campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $contenido_array = $contenido;
- // $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control");
- $md5_contenido = $contenido[4];
- $contenido_original = $contenido[3];
- $contenido = $contenido[3];
-
-
-
-
- if($campo_tipo =='15' AND $tipo==""){if($contenido !=""){
- $contenido = "
-
Mostrar
- "; }else{$contenido="";}}
- elseif($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- include("includes/datos.php");
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; }}
- if($error_token != 1) {
- $contenido = "
-
-
- "; }else{ $contenido ="
No se ha definido un token de mapbox
";}
- }
- }
- elseif($campo_tipo=='4'){ $contenido = "
$contenido ";}
- elseif($campo_tipo=='18'){ $contenido = "";}
- elseif($campo_tipo=='23'){
- $funcion = remplacetas("form_campos_valores","id_form_campo","$row[id_campo]","campo_valor","");
- eval("\$contenido = ".$funcion[0].";");
- $contenido .= "";
-
- }
- elseif($campo_tipo=='6'){
- $contenido = imprimir_buscador_campo($row['id_campo'],$contenido);
- }
- elseif($campo_tipo=='21'){
- $contenido = imprimir_base($row['id_campo'],$contenido);
- }
- elseif($campo_tipo=='10'){
- $valor_actual = relacion_render("$id","$row[id_campo]",$contenido,'5');
- $contenido = "$valor_actual";}
- elseif($campo_tipo=='5' AND $contenido !=""){
- if($tipo =="") {
- $contenido = trim($contenido); $contenido = "
-
-
-
- ";
- }else {
- $contenido =$contenido;
- }
- }
-
- else {
- $html ="$contenido";
- $contenido = nl2br($html);
- $contenido = Markdown($contenido);
- }
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre[$row[id_campo]] = $campo_nombre[0] ;
-////buscar campo imagen
-$campo_imagen = buscar_campo_tipo($id,"15");
-//$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-////
- if($row[id_campo] == $campo_imagen AND $tipo !="" ){ $contenido = strip_tags($contenido); }
- $campo[$row[id_campo]]=$contenido;
- $campo_400[$row[id_campo]] = substr($contenido,0, $length = 400)."... ";//$contenido;
- $campo_80[$row[id_campo]] = substr($contenido,0, $length = 80);//$contenido;
- $campo_55[$row[id_campo]] = substr($contenido,0, $length = 55);//$contenido;
- $campo_limpio[$row[id_campo]] = $contenido = strip_tags($contenido);
-
- $campo["md5_".$row[id_campo]]=$md5_contenido;
-
- if($row[id_campo] == $categoria_campo){
-
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- if($icono[0] =='') {
- //$icon = "http://$_SERVER[HTTP_HOST]/milfs/images/pin.png";
- $icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- //$array[icon][iconSize] =[50,50];
-
- }else{}
-
-if($contenido_original !="") {
- //// si el campo es tipo password (18) no se muestra
- if($campo_tipo !='18'){
- if($tipo == "metadatos"){
- $metadatos = " ".date('Y-m-d H:i:s',$contenido_array[1])." id $contenido_array[0] proceso $contenido_array[5] usuario $contenido_array[6] ip ".long2ip($contenido_array[7])." campo $row[id_campo] ";
- }else {$metadatos='';}
- $resultado .= "
-
-
- $campo_nombre[0] $metadatos
- $contenido
- ";
-}
-}
- }
-
- //$resultado .="
";
-//}else {$resultado ="
No se encontraron resultados "; return $resultado;}
-//if($id=="6" OR $id=="10") {
- if($tipo !="" AND (!is_numeric($tipo)) AND $tipo !="metadatos" ) {
-////Usa una plantilla apra cada id
-$plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
-$plantilla = $plantilla[0];
-if($plantilla =="") {
-///Usa una plantilla generica por nombre
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = ''") ;
-$plantilla = $plantilla[0];
-//$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = '$id' ") ;
-}
-if($plantilla !='') { $plantilla = html_entity_decode ( $plantilla );}
-/*else {
-$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"") ;
-$plantilla= $plantilla[0];
- }
- */
- }
-if($plantilla != ""){
-eval("\$plantilla = \"$plantilla \";");
- $full =" $plantilla ";
- }else {
- $full= "
$resultado
";
- }
-
- $resultado =" $full
- ";
- return $resultado;
-
-// }else {$resultado ="
No se encontraron resultados "; return $resultado;}
- }else {$resultado =""; return $resultado;}
-}
-
-function formulario_respuesta($id,$control) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $consulta = "SELECT * FROM form_id
- WHERE formulario_respuesta = '$id'
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado ="
-
Responder con:
-
";
- while( $row = mysql_fetch_array( $sql ) ) {
- $resultado .= "$row[nombre] ";
-
-}
- $resultado .="
";
-}else{$resultado ="";}
-return $resultado;
-}
-
-function subir_imagen($respuesta,$id){
-
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//this.form.taget= 'ventana'; this.form.action = 'destinoEspecial.html'; this.form.submit()"
-$javascript="$_SESSION[url]/includes/upload.php";
-$campo_mapa = buscar_campo_tipo($respuesta,"14");
-$campo_mapa = $campo_mapa[0];
-if ($id ==''){$id='imagen';}
-$size = ($_SESSION[upload_size]*1024*1024)." bytes";
-$resultado .="
-
-
-
-
-
-
-La imagen debe estar en formato .jpg y de tamaño máximo $_SESSION[upload_size] MB ( $size)
-
-";
-return $resultado;
-
-}
-
-function formulario_importador($accion) {
-
- if($accion =='') {
- $resultado="
Importador";
-
- return $resultado;
- }
- $respuesta = new xajaxResponse('utf-8');
- $formulariox =formulario_importar('','menu','');
- $resultado="$formulariox
";
- $respuesta->addAssign("contenido","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("formulario_importador");
-
-
-function subir_archivo($perfil){
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-$javascript="includes/upload_archivo.php";
-$resultado .="
-
-
-Archivo formulario $perfil:
-
-Máximo 1MB
-
- ";
-
-
-return $resultado;
-
-}
-
-
-function formularios_muestra_listado($formulario){
-
- if($formulario==''){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ";
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado .="
";
- $resultado .= "Seleccionar formulario a importar ";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= " $row[nombre] ";
- }
-
- $resultado .=" ";
- }else {$resultado = "";}
-
- return $resultado;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $subir = subir_archivo($formulario) ;
- $div="importador_select";
- $resultado .= "$subir";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-$respuesta->addAssign("importador_archivo","innerHTML","");
-
-
-
-return $respuesta;
-}
-}
-$xajax->registerFunction("formularios_muestra_listado");
-
-
-function formulario_importar($filename,$accion,$perfil){
- $respuesta = new xajaxResponse('utf-8');
- // $respuesta->addAlert("$filename,$accion,$perfil ");
- // return $respuesta;
-
- if($filename ===""){
-
-
- $formulario .= formularios_muestra_listado();
-
- $formulario .= "
-
";
-
-return $formulario;
- }
-
- $div = "importador_archivo";
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-
- $resultado .= "Importando formulario
$perfil_nombre ($perfil)
-
";
- $nombre = "tmp/$filename";
- if($accion == "grabar") {
-
- }
- if (($handle = fopen($nombre, 'r')) !== FALSE)
- {
-
-while (($datos = fgetcsv($handle,0,"|")) !== FALSE) {
- $numero = count($datos);
-if($fila >=1) {
-
- $resultado .= "";
- $numero_columna = 0;
- for ($c=0; $c < $numero; $c++) {
- $columna = $datos[$c];
-
-
-if($columna !=""){
-
- if($accion === "grabar"){
-$control=md5($perfil.$fila.time());
-$ip = obtener_ip();
- $graba_ip = " ip = INET_ATON('".$ip."') ";
-$consulta_campos = "INSERT INTO form_datos SET timestamp= '".time()."', id_usuario='$_SESSION[id]',id_empresa='$_SESSION[id_empresa]',form_id ='$perfil',
-$graba_ip ,
-control = '$control', $consulta id_campo = '$campo[$numero_columna]' , contenido = '$columna'";
- $verificar_campo = formulario_verificar_campo($perfil,$campo[$numero_columna]);
- if($verificar_campo == NULL){}else{
- $sql = mysql_query($consulta_campos,$link);
- if($sql) {
- $class='success';
- $sql_resultado = " ";
-
-
- }
- else {
- $class='danger';
- }
-
-
- }
-
- }
-
-
-}
- $resultado .= "$columna $sql_resultado ";
-
- $numero_columna ++;
- }
- $resultado .= " ";
- }
- else {
- $resultado .= "";
-
- $posicion = 0;
- for ($c=0; $c < $numero; $c++) {
- $titulo = $datos[$c] ;
- $verificar_campo = formulario_verificar_campo($perfil,$titulo);
- if($verificar_campo == NULL){$verificar_campo =" "; $class='danger';}
- else{$verificar_campo =" "; $class='success';}
- $campo[$posicion] = $datos[$c];
- $resultado .= "$verificar_campo $titulo ";
- $posicion ++;
-
- }
-
-
- $resultado .= " ";
- }
- $fila++;
- }
-
-
- $resultado .= "
$fila ";
- }
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}
-
-$xajax->registerFunction("formulario_importar");
-
-
-function formulario_verificar_campo($perfil,$id_campo){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM `form_contenido_campos` WHERE `id_form` = '$perfil' AND id_campo='$id_campo'";
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
-$existe = NULL;
-
- }else {
-
-$control=mysql_result($sql,0,"control");
-$obligatorio=mysql_result($sql,0,"obligatorio");
-$existe[]= $control;
-$existe[]= $obligatorio;
-$existe[]= $consulta;
-
-}
-
-return $existe;
- }
-
-function borrar_tmp($div) {
-if($div =='') {
- $div="borra_tmp";
-$resultado ="
Limpiar ";
-
-return $resultado ;
-}
-$dir = "tmp/";
-$ficheroseliminados= 0;
-$handle = opendir($dir);
-while ($file = readdir($handle)) {
- if (is_file($dir.$file)) {
- if ( unlink($dir.$file) ){
- $ficheroseliminados++;
- }
- }
-}
-$fecha = time ();
-$ahora = date ( "Y-m-d h:i:s" , $fecha );
-$resultado ="
$ahora
";
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("borrar_tmp");
-
-
-function formulario_imprimir_linea($id,$control,$tipo) {
- $id = mysql_seguridad($id);
- //if($id !='') {$w_id = "AND form_id = '$id'";}
- $control = mysql_seguridad($control);
-/* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC
- ";
- */
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
-
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
-
-
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysql_result($sql,0,"form_id");}
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
-
- $titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo = $titulo[0];
-
-$timestamp=mysql_result($sql,0,"timestamp");
-$fecha = date ( "Y-m-d h:i:s" , $timestamp);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
-// $resultado ="
";
- $imagen = formulario_valor_campo("$id","0","","$control");
- $imagen = $imagen[3];
- if($imagen[3] != null AND $tipo !='titulos') {
- $array[image]=$imagen;
- $imagen_icon="secure/?file=150/$imagen";
- $imagen= " ";
-
- }else {$imagen='';}
-$td .= "$imagen ";
-
- while( $row = mysql_fetch_array( $sql ) ) {
-
- $campo_tipo = remplacetas('form_campos','id',$row[id_campo],'campo_tipo');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control");
- $md5_contenido = $contenido[4];
- //md5(binary contenido) as md5_contenido,
- $contenido_original = $contenido;
- //$control = $contenido[0];
- $contenido = $contenido[3];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $campo_nombre[0] =" $campo_nombre[0]";
- if($tipo=="titulos") {
- $contenido = "$campo_nombre[0] ";
- }
- elseif($tipo=="titulos_csv"){
- $csv .= '"'.$campo_nombre[0].'";';
- }
- elseif($tipo=="linea_csv"){
- $csv .= '"'.$contenido.'";';
- }
- elseif($tipo=="array"){
-
- if($row[id_campo] == $titulo){$array[title]=$contenido;}
- if($row[id_campo] == $categoria_campo){
- $array[category]=$contenido;
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- //$icono[0] = $imagen_icon;
- if($icono[0] =='') {
- //$icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $array[icon][iconUrl] = "$icon";
- //$array[icon][iconSize] ="[50,50]";
- //$array[icon][shadowSize] =[70,70];
- //$array[icon][shadowUrl] = "http://$_SERVER[HTTP_HOST]/milfs/images/iconos/sha.png";
-
- }else{}
- $array[$row[id_campo]] = $contenido;
- }
- else{
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
- if($size > $limite) {
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' AND $tipo==""){if($contenido !=""){$contenido = " "; }else{$contenido="";}}
- if($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- require("includes/datos.php");
- $contenido = "
-
- ";
- } else { $contenido ='';}
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
- else {$contenido = Markdown("$contenido");}
-
- }
-
-
- if($tipo=="titulos") {
-$td .= " $contenido ";
-
- }else{
-
- $td .= " $contenido ";
- }
- }
-
-if($tipo=="titulos") { $identificador ="Identificador "; }else {$identificador ="$control ";}
- $resultado .="$td $identificador ";
-}
- if($tipo =='titulos_csv' or $tipo=='linea_csv') {
-
-return $csv;
- }
- if($tipo =="array") {
- //$array["title"]="hola mundos";
- return $array;
- }
- return $resultado;
-}
-
-
-// $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-function mostrar_coincidencias_plantilla($id_form,$filtro,$valor,$plantilla) {
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-$control=mysql_result($sql,0,"control");
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) )
- {
-$resultado .= contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- }
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias_plantilla");
-
-
-function mostrar_coincidencias($id_form,$filtro,$valor) {
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) )
- {
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $campos .= " $depliegue ";
-
- }
- $resultado = "
";
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias");
-
-
-function matriz_formulario($formulario,$div,$registros,$pagina,$formato){
- $respuesta = new xajaxResponse('utf-8');
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$md5_filtro = $formulario["campo_filtro"];
-//$formulario = mysql_seguridad($formulario);
-mysql_real_escape_string($formulario);
-$perfil = $formulario["form_id_id"];
-$filtro = $formulario["campo_filtro"];
-$control = md5(rand(1,99999999).microtime());
-
-$cantidad = formulario_contar($perfil);
-$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_filtro'";}
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{
- $resultado ="
Por favor seleccione un formulario";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-if($cantidad < 1) {
- $resultado ="
-
- El formulario \"$formulario_nombre[0]\" no tiene registros
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
-}
-
-$fecha_inicio = $formulario["inicio"];
-if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
-$fin = $formulario["fin"];
-$id_campo = $formulario["id_campo"];
-$busqueda = $formulario["busqueda"];
-
-if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";}
-if($id_campo ==''){
- $campo ='';
-
- }else{
- if($busqueda =='') {
- $resultado ="
Por favor escriba una palabra para buscar";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
- $campo ="AND id_campo = '$id_campo'";
-
- }
-
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';}
-
-
-
-$consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
- FROM form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_datos.id_empresa = '$_SESSION[id_empresa]'
- $busca
- $perfil
- $campo
- $w_filtro
- AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio')
- AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden";
-
-
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)==0){
- $resultado ="
No hay resultados para la consulta ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
-if (mysql_num_rows($sql)!=0){
- $total_registros = mysql_num_rows($sql);
- if($formato=='csv'){
- $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv";
- $boton_descarga ="
Descargar ";
- $archivo_reporte=fopen($nombre_archivo , "w");
- $encabezado =";;Periodo\n;;$inicio\n;;$fin \n ";
- fputs ($archivo_reporte,$encabezado);
- $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n";
- fputs ($archivo_reporte,$titulo);
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) )
- {
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv');
- $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv');
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $linea = $linea."\n";
- $lineas .= $linea;
- }
- $contenido ="$titulo \n $lineas";
- //rewind($archivo_reporte);
- fputs ($archivo_reporte,$contenido);
- $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga);
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
- }
- else{
- $respuesta ="
No hay resultados
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
-
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta.$limite;
- $sql=mysql_query($consulta_limite,$link);
- if (mysql_num_rows($sql)!='0'){
- $botones .= "
Limpiar ";
- if($formato!='csv'){
- $botones .= "
- Exportar
- ";
- }
- $paginacion ="";
- $paginacion .= $indice;
- $encabezado = "
-
-
-
$botones $paginacion $total_registros registros
-
-
";
-$fila=0;
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $menu ="
-
-
-
- ";
- $campos .= "
$menu $depliegue ";
- }
- $resultado .="
";
- }else{
- $resultado .="
No hay resultados para la consulta ";
- }
- //$resultado .="$consulta";
-$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado);
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-} $xajax->registerFunction("matriz_formulario");
-
-
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysql_query($consulta,$link);
-if (@mysql_num_rows($sql)!=0){
-$resultado[] = mysql_result($sql,0,$por);
-$resultado[] = mysql_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysql_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-function formulario_campos_select($perfil,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-
- $categoria = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," opcion = 'categoria'") ;
- $categoria = $categoria[0];
-$resultado = "
Campo
-
- Todos los campos ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-if($div =='') {
- if ($row[id_campo] == "$categoria"){
- $class="active";
- $filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
- }else { $class=""; $filtro ='';}
- $listado .="$row[id_campo] $row[campo_nombre] $filtro ";
- }
- }
-$resultado .= "
-
"; }
-else{$resultado = '';}
-
-if($div =='') {return $listado;}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("formulario_campos_select");
-
-
-function formulario_campos_filtro($perfil,$campo,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "
- Filtro
-
- Seleccione ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
";
- }
-else{$resultado = "
No se encontraron resultados
";}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_campos_filtro");
-
-
-//$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo","$id_campo");
-function formulario_consultar($div){
- if($div==''){
- $div = "contenido";
- $resultado = "
Consultas";
- return $resultado;
- }
- $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'",'');
- $fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $peticion = "
-
-
-
-
-
-
-
-
- Formulario
- $formulario
-
-
-
-
-
-
-
-
Consultar
-
-
-";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$peticion);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_consultar");
-
-
-function formulario_campos_procesar($form,$tipo_accion){
- //$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-$campo_nombre = $form["campo_nombre"];
-if($campo_nombre =='') {
-$respuesta->addAlert("El Nombre del campo no puede estar vacío");
-$respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
-return $respuesta;
-}
-
-//$campo_nombre = ucfirst(strtolower($campo_nombre));
-$campo_descripcion = $form["campo_descripcion"];
-$campo_tipo = $form["campo_tipo"];
-$campo_area = $form["campo_area"];
-$misma_area = $form["misma_area"];
-$campo_orden = $form["campo_orden"];
-$campo_identificador = $form["campo_identificador"];
-$activo = $form["activo"];
-$tipo = $form["tipo"];
-$editar = $form["editar"];
-$id_campo_editar = $form["id_campo_editar"];
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-if ($editar == 'editar' AND $tipo_accion =='editar'){
-mysql_query("
- UPDATE `form_campos`
- SET `campo_nombre` = '$campo_nombre',
- `campo_descripcion` = '$campo_descripcion',
- `orden` = '$campo_orden' ,
- `campo_area` = '$campo_area',
- `campo_tipo` = '$campo_tipo',
- `id_empresa` = '$_SESSION[id_empresa]',
- `activo` = '$activo'
- WHERE `form_campos`.`id` ='$id_campo_editar'
- LIMIT 1",$link);
-$w_campo = "id = '$id_campo_editar'";
-
- }else {
-$id_empresa = $_SESSION['id_empresa'];
-$id_especialista = $_SESSION['id'];
- $buscar_campo_nombre = remplacetas('form_campos','campo_nombre',$campo_nombre,'campo_nombre'," id_empresa = '$id_empresa' AND campo_area = '$campo_area' ") ;
- if($buscar_campo_nombre[0] == $campo_nombre) {
- $respuesta->addAlert("El Nombre del campo ( $campo_nombre ) ya existe en la misma área ");
- $respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
- return $respuesta;
- }
-if($campo_identificador == "") { $campo_identificador = md5($_SESSION[id_usuario]."-".microtime()); }
-$consulta = "
- INSERT INTO `form_campos`
- (`id_especialista`, `campo_nombre`,`campo_descripcion`,`campo_tipo`, `campo_area`, `orden`, `activo`, `identificador`, `id_empresa`)
- VALUES ('$id_especialista','$campo_nombre','$campo_descripcion','$campo_tipo','$campo_area','$campo_orden','1','$campo_identificador','$id_empresa')";
- $sql =mysql_query($consulta,$link);
- $ultimo_id = mysql_insert_id();
-$w_campo= "identificador = '$campo_identificador'";
-if($sql) {
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'div_campos')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar');
- $campos_formulario ="
-
-
- El campo se creó con éxito
- Crear un nuevo campo
- Modificar campo $listado_campos
- ";
- if($form['agregar_id_form'] !="") {
- $respuesta->AddScript("xajax_agregar_campos('grabar_campos','contenido','$ultimo_id','$form[agregar_id_form]') ");
- ///$respuesta->addAssign("$div","innerHTML",$resultado);
- //return $respuesta;
- }
- }else {$campos_formulario = "
Problemas al grabar el campo $consulta";}
- }
-
-if($id_campo_editar !='' AND $tipo_accion =='editar'){$id_form_campo = $id_campo_editar;}else {
-//$id_form_campo = mysql_insert_id($link);
-$id_form_campo = $ultimo_id;
-}
-//$respuesta->addAlert("( $campo_tipo / $id_form_campo / $ultimo_id / $form[opciones] ) $consulta");
-//$respuesta->addAssign("contenido","innerHTML","$consulta_campos_valores");
-//return $respuesta;
-if($campo_tipo == '23' ){
-$grabar_campos_valores = "(".$id_form_campo.",'".$form[opciones]."')";
-}
-/// separacion por comas
-else {
-$opciones=str_replace(', ',',',"$form[opciones]");
-$opciones = explode(",",$opciones);
-
-foreach($opciones as $c=>$v){
-
- //if($v !='') {$v = ucfirst(strtolower($v));
- if($v !='') {$v = $v;
-
-$grabar_campos_valores .= "( $id_form_campo ,'$v'),";
- }
-
- }
-$grabar_campos_valores =substr ("$grabar_campos_valores",0,-1);
-} /// fin de separacion por comas
-
-$borrar_campos_valores = "DELETE FROM `form_campos_valores` WHERE `id_form_campo` = '$id_form_campo'";
-$consulta_campos_valores = "INSERT INTO form_campos_valores (id_form_campo,campo_valor) VALUES ".$grabar_campos_valores."";
-
- $sql_borrar_campos_valores =mysql_query($borrar_campos_valores,$link);
- $sql_campos_valores =mysql_query($consulta_campos_valores,$link);
-
- $campos=mysql_query("
- SELECT id_form_campo, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, orden
- FROM `consulta_campos` , `tipo_campo`
- WHERE $w_campo
-
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- LIMIT 1",$link);
-
-
-$campos_formulario .= "
";
-while( $row = mysql_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "
".$row['orden']."";}
-else{
-$campos_formulario .= "
".$row['orden']." ";
- } }
-
-$respuesta->addAssign("formulario_campos_$misma_area","innerHTML",$campos_formulario);
-return $respuesta;
-}$xajax->registerFunction("formulario_campos_procesar");
-
-function formulario_opciones_select($tipo,$id_campo){
- $respuesta = new xajaxResponse('utf-8');
- $div = 'opciones_select';
-if($id_campo !=''){
-$consulta= "SELECT * FROM form_campos_valores WHERE id_form_campo = '$id_campo'";
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-while( $row = mysql_fetch_array( $sql ) ) {
- $valores .= "$row[campo_valor],";
- }
- $valores = substr($valores,0,-1);
- }
- }
-if($tipo =='8'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='9'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='16'){
- if($valores =='') {$valores = "1,10";}
-$resultado = "
$valores ";
- }
-elseif($tipo =='17'){
- $resultado ="
";
-}
-else{
-$resultado = "
$valores ";
-}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_opciones_select");
-
-
-
-function crear_campos_formulario($form,$id_form){
-$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-if($form['div'] !="") { $div = $form['div'];}else{$div="div_campos";}
-
-$especialista = $form["id_especialista"];
-$id_campo_editar = $form["id_campo_editar"];
-$resultado = "
-
-$id_campo_editar";
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$capa = "crear_campos_consulta_$area";
-$formulario ="manejo_campos_$area";
-
-if ($id_campo_editar > 0){
-$sql=mysql_query("SELECT * FROM form_campos WHERE id = '$id_campo_editar' AND activo ='1'",$link);
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .="";
-$campo_descripcion =$row['campo_descripcion'];
-$campo_nombre =$row['campo_nombre'];
-$orden =$row['orden'];
-$especialista =$row['id_especialista'];
-
-$formulario ="manejo_campos_$id_campo_editar";
-$editar="
-
-
-
";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
- }
-
-$Tipo_campo ="
Tipo:
-
";
-$tipos=mysql_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ",$link);
-while( $row = mysql_fetch_array( $tipos ) ) {
-
-if($row['id_tipo_campo'] == $Campo_tipo_definido){
-$Tipo_campo .= " > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-
-
-
- Incluir este campo en el formulario actual
-
-
- ";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION[id_usuario]."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area');
-$resultado .= "
-
-
";
-$resultado = "
-
-
- Crear un nuevo campo
- $resultado
-
-";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("crear_campos_formulario");
-
-function formulario_crear_campo($area,$campo,$div){
-$respuesta = new xajaxResponse('utf-8');
- if($div==''){
- $div = "contenido";
- $cerrar = "
[X] ";
-$resultado = "
Campos ";
-
- return $resultado;
- }
- //$div="div_campos";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta_campos ="SELECT id, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, form_campos.activo, form_campos.campo_tipo
- FROM `form_campos` , `form_tipo_campo`
- WHERE id_empresa = '$_SESSION[id_empresa]' AND id = $campo
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- ORDER BY orden ASC";
- $campos=mysql_query($consulta_campos,$link);
-if($campo ==''){
-
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'$div')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar');
-$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-$tabla_campos = campos_tabla('id_especialista','');
-$campos_formulario = "
-
-
-
-
-
-
-
-
-
-
-
-
-
$tabla_campos
-";
-}else{
-$campos_formulario .= "
";
-while( $row = mysql_fetch_array( $campos ) ) {
-// if($row[campo_tipo] =='8'){
- $respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-// }
- $Tipo_campo ="
Tipo:
-
";
-$tipos=mysql_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ",$link);
-while( $row_tipo = mysql_fetch_array( $tipos ) ) {
-
-if($row_tipo['id_tipo_campo'] == $row[campo_tipo] ){
-$Tipo_campo .= " > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-if($row[activo] =='1'){$activo = "
Activo: el campo puede ser usado en formularios ";}
-else{$activo = "
Inactivo: El campo NO se usará ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-
-
-
-
-
-
-
";
-
- }
- }///fin de edicion
-
-
-
-$respuesta->addAssign($div,"innerHTML",$campos_formulario);
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_crear_campo");
-
-function agregar_campos($tipo,$div,$id,$formulario){
-$respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-if($tipo==''){
- $div="contenido";
-$resultado = " Editar ";
-print $resultado;
-return;
- }
- if($tipo=='consultar_listado'){
- $consulta="SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ASC";
- $sql =mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado .="Formulario: ";
-$resultado .= "Selecciona ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "$row[nombre] ";
- }
-$resultado .=" $cerrar";
- }else {
-$resultado = " No hay formularios para editar
";
- }
- }
-
-if ($tipo=='consultar_campos'){
- $consulta="
- SELECT form_contenido_campos.id_campo, form_contenido_campos.id,
- campo_nombre, obligatorio,control,multiple,form_contenido_campos.orden
- FROM form_contenido_campos, form_campos
- WHERE form_campos.id_empresa = '$_SESSION[id_empresa]' AND form_contenido_campos.id_form = $id
- AND form_contenido_campos.id_campo = form_campos.id
- ORDER BY form_contenido_campos.orden";
- $sql =mysql_query($consulta,$link);
- $consulta_nombre="SELECT * FROM form_id WHERE id ='$id'";
- $sql_nombre =mysql_query($consulta_nombre,$link);
- $nombre =mysql_result($sql_nombre,0,"nombre");
- //if (mysql_num_rows($sql)!='0'){
-$resultado ="$cerrar$nombre
- ";
-$resultado .= "
-
- Campo
-
-
- Obligatorio
-
-
- Orden
-
-
- Multiple
-
-
- Borrar
-
-
-
";
-
-while( $row = mysql_fetch_array( $sql ) ) {
- /* $multiple = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = '$row[id]' AND descripcion REGEXP '^multiple:' ") ;
- $multiple = explode(":",$multiple[0]);
- $multiple = $multiple[1];*/
-
- //$multiple = $multiple[0];
-$resultado .= "
-
- $row[id_campo] $row[campo_nombre]
-
-
-
-
-
-
-
";
- }
-
-$consulta_campos_todos ="SELECT form_campos.id, form_campos.campo_nombre, form_campos.campo_descripcion FROM form_campos WHERE form_campos.id_empresa = '$_SESSION[id_empresa]'
- ORDER BY campo_nombre ";
-$sql_consulta_campo =mysql_query($consulta_campos_todos,$link);
-
-$crear_nuevo ="
-
-
-
-
-
-
-";
- while( $row = mysql_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "$row[campo_nombre] [$row[id]] ";
- }
-$resultado .="
-
-
-
-$crear_nuevo ";
-
- }/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
- if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado=" Seleccione un campo";}
-else {
-$id_form=func_get_arg(3);
-$consulta = "SELECT id_campo FROM form_contenido_campos WHERE id_empresa = '$_SESSION[id_empresa]' AND id_campo= '$id' AND id_form= $id_form";
-$sql_consulta =mysql_query($consulta,$link);
-$id_empresa= $_SESSION['id_empresa'];
-if(mysql_num_rows($sql_consulta) =='0') {
-$microtime = microtime();
-$consulta_grabar=" INSERT INTO form_contenido_campos (
-`id_campo` ,
-`id_empresa` ,
-`id_form` ,
-`obligatorio`,
-`control`
-)
-VALUES (
-'$id', '$id_empresa', '$id_form', '0', md5('$microtime' + rand())
-)";
-$sql_consulta_grabar =mysql_query($consulta_grabar,$link);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_form')");
-return $respuesta;
- }else{
-$div='atencion';$resultado=" El campo ya pertenece a esta consulta ";
- }
- }
-
- }///fin de grabar_campos
-
-if($tipo=='eliminar'){
-$confirmar=func_get_arg(3);
-
-
-if($id==''){
-$id_c=func_get_arg(4);
-$capa_original=func_get_arg(5);
-$resultado = "
- Seguro que desea eliminar el campo de esta consulta?
- [SI]
- [NO]
-
- ";}
- else{
- if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "
-
- ";
- }else{
-$consulta="DELETE FROM `form_contenido_campos` WHERE `control` = '$confirmar' LIMIT 1";
-$sql_consulta_eliminar = mysql_query($consulta,$link);
-$div=func_get_arg(5);
-$id_consulta=func_get_arg(4);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_consulta')");
-
- }
- }
-
- }/// fin de eliminar
-if($tipo == 'obligatorio'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `obligatorio` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-if($tipo == 'orden'){ /// orden
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `orden` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a =" $id
- ";
-
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-
-if($tipo == 'prellenado'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `consulta_tipo_campos` SET `prellenado` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de oprellenado
-$respuesta->addAssign($div,"style.display","block");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("agregar_campos");
-
-function formulario_nuevo($formulario,$div){
- $formulario = mysql_seguridad($formulario);
- $respuesta = new xajaxResponse('utf-8');
- $id=mysql_real_escape_string($id);
- $id_empresa= $_SESSION['id'];
- if($div==''){
- $div = "contenido";
-
-$resultado .= " Formulario ";
-
- return $resultado;
- }
-if($formulario ==''){
- $formulario_nombre = "nuevo_formulario";
- $formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-
-Crear un formulario
-
- Nombre para el formulario
-
-
-
- Descripción
-
-
-
- Formulario anidado con:
- $formulario_respuesta
-
-
- Grupo:
-
-
-
-
- Privado
-
- Público
-
-
-
-
-
- Grabar
-
-
- ";
-
- }else{
-$control = md5(rand(1,99999999).microtime());
-
-$nombre = $formulario['nombre']; // aa
-$descripcion = $formulario['descripcion']; // dxddc
-$publico = $formulario['publico']; // dxddc
-$grupo = $formulario['grupo'];
-
-if($publico =='') {$publico ='0';}
-$propietario= $_SESSION['id'];
-$formulario_respuesta = $formulario['formulario_respuesta']; // dxddc
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-VALUES ('$nombre', '$descripcion', '1', '1', '$publico', '$propietario','$formulario_respuesta','$_SESSION[id_empresa]');";
-$sql=mysql_query($consulta,$link);
-$ultimo_id = mysql_insert_id();
- if($grupo !="") {
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo'";
- $sql_grupo=mysql_query($consulta_grupo,$link);
- }
-
-$respuesta->addscript("xajax_formulario_listado('','contenido'); ");
-}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_nuevo");
-
-
-function formulario_listado($filtro_grupo,$div){
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-
- $id_empresa= $_SESSION['id_empresa'];
- if($div==''){
- $div = "contenido";
-$resultado = " Formularios ";
-
- return $resultado;;
- }
-$control = md5(rand(1,99999999).microtime());
-$respuesta = new xajaxResponse('utf-8');
-$_SESSION['grupo_formularios'] = $filtro_grupo;
-
-$link=Conectarse();
- $id=mysql_real_escape_string('$id');
-mysql_query("SET NAMES 'utf8'");
-if($filtro_grupo =="") {
-$consulta = "SELECT * FROM form_id WHERE id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
- }
-else {
-$consulta = "
-SELECT * FROM form_id, form_grupo
-WHERE form_grupo.id = form_id.id
-AND form_grupo.grupo = '$filtro_grupo'
-AND form_id.id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
-}
-$sql=mysql_query($consulta,$link);
-if($filtro_grupo !="") {
- $leyenda_filtro_grupo ="Grupo $filtro_grupo ";
-
- }else{ $leyenda_filtro_grupo ="Formularios "; unset($_SESSION['grupo_formularios']);}
-$resultado_link = " Formularios ";
-$respuesta->addAssign("link_formulario","innerHTML",$resultado_link);
-
-
-$divider = 1;
-$columnas = intval(12/$divider);
- $listado_grupos = select_empresa('form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","AGRUPADO",'','',"$id_empresa");
- $listado_grupos ="
-
- Seleccione un grupo de formularios
- $listado_grupos
-
-
- ";
-
- $nuevo_formulario = "
- ";
- $resultado = "
-
- $nuevo_formulario
-
-
- $listado_grupos
-
- $leyenda_filtro_grupo
-
- ";
-
-if (mysql_num_rows($sql)!='0' ){
- $i =0;
-
- while( $row = mysql_fetch_array( $sql ) ) {
- $id= $row['id'];
- $C = $id;
-
- $cantidad = formulario_contar($row['id']);
- if($cantidad >0) {$cantidad ="Llenado: $cantidad veces ";}else{$cantidad = "";}
- $propietario = remplacetas('usuarios','id',$row['propietario'],'email',"") ;
- $estado = remplacetas('form_id','id',$id,'publico',"") ;
- $nombre_formulario = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion_formulario = remplacetas('form_id','id',$id,'descripcion',"") ;
- $estado = "
-
- Contenido privado
-
- Público
-
- ";
- $modificable = remplacetas('form_id','id',$id,'modificable',"") ;
- $modificable = "
-
- Formulario privado
-
- Público
-
- ";
-
-
- $primer = formulario_uso("$id",'','primer') ;
- if($primer[0] !='') {$primer = " Primer registro: ".date ( "Y-m-d h:i:s" , $primer[0])." ";}else{$primer='';}
- $ultimo = formulario_uso("$id",'','ultimo') ;
- $ultimo_control = $ultimo[1];
- if($ultimo[0] !='') {$ultimo = "Último registro: ".date ( "Y-m-d h:i:s" , $ultimo[0])." ";}else{$ultimo='';}
-
- $nombre = editar_campo("form_id",$row['id'],"nombre","","","");
- $orden = editar_campo("form_id",$row['id'],"orden","","","");
- $descripcion = editar_campo("form_id",$row['id'],"descripcion","","","");
- $geo = buscar_campo_tipo($id,"14");
- $email_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($geo[0] !='') { $mapa= " Mapa ";}else {$mapa='';}
-
- if($i % $divider==0) {
-
-$item .= "
-
-
-
- ";
- }
- $i++;
- $grupo_actual = remplacetas('form_grupo','id',$row['id'],'grupo',"") ;
- if(is_null($grupo_actual[3])) {
- $valores_grupo[id]=$row[id];
- $valores_grupo[grupo]="";
- $grupo = "
-
- ";
- // $grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }else
- {
- $grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }
-
-$item .= "
-
-
-
-
-
-
-
- Creación: $row[creacion] / $propietario[0]
- $cantidad
- $ultimo
- $primer
- $mapa
-
-
-
-
-
$row[id]
-
-
-
-
-
-
-
-
-
-
-
-
Agregar o quitar campos
-
-
-
-
-
-
-
- Nombre: $nombre
- Descripción: $descripcion
- Orden: $orden Grupo: $grupo
-
-
-
-
-
-
-
- $estado
-
-
- $modificable
-
-
-
-
-
- ";
-
-
- if($i%$divider==0) {
- $item .= "
";
- }
-
- }
-
-
- //$resultado .="";
- }
-
-
-else{ $resultado .= "
Aún no se han diseñado formularios ";}
-
- $resultado_formulario ="
-
- $item
-
";
- $resultado = "$resultado $resultado_formulario ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_listado");
-
-function formulario_eliminar($id,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre_form = $nombre[0];
- if($tipo =='') {
-$resultado =" ";
-}elseif($tipo=='cancelar') {
- $resultado =" Eliminar ";
-}elseif($tipo =='eliminar'){
-$consulta = "DELETE FROM form_id WHERE form_id.id = '$id' ";
-$link=Conectarse();
- $sql=mysql_query($consulta,$link);
- if($sql) {
- $respuesta->addAlert("Se eliminó el formulario \" $nombre_form \" ");
- $respuesta->addAssign("panel_$id","innerHTML","");
- return $respuesta;
-
- }
-}
-else {}
-$respuesta->addAssign("eliminar_$id","innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_eliminar");
-
-
-function campo_multiple($id_campo,$id_form,$control,$item){
-//if ( !isset ( $_SESSION['id'] ) ) { return;}
-
- if($item==''){$item=1;}
- $id= $item;
-$render = formulario_campos_render($id_campo,$id_form,$control,$item+1);
- $ingredientes = "
-
- $render
-
-
-
-
- ";
- $boton= "
- Agregar campo
-
";
-$div = "id_campo_$id_campo"."_".$id;
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$ingredientes);
-$respuesta->addAssign("boton_".$id_campo."","innerHTML","$boton ");
-return $respuesta;
-
-}
-$xajax->registerFunction("campo_multiple");
-
-
-function formulario_campos_render($id_campo,$id_form,$control,$item,$id_dato){
-
-
-$consulta ="
- SELECT *
- FROM form_contenido_campos,form_campos, form_tipo_campo
- WHERE form_contenido_campos.id_form = '$id_form'
- AND form_contenido_campos.id_campo = '$id_campo'
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = form_campos.campo_tipo ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0'){
- if($id_dato !='') {
- $value = remplacetas('form_datos','id',$id_dato,'contenido'," control = '$control'") ;
- $multiple='0';
- }
- else {
- $value = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$control'") ;
- $multiple=mysql_result($sql,0,"multiple");
- }
- if($item=='') {$item ="0";}else {$item=$item;}
-
- if($value[0] !='') {$value= "$value[0]";}ELSE{$value='';}
- $campo_nombre=mysql_result($sql,0,"campo_nombre");
- $campo_descripcion=mysql_result($sql,0,"campo_descripcion");
- $campo_tipo_accion=mysql_result($sql,0,"tipo_campo_accion");
- $campo_obligatorio=mysql_result($sql,0,"obligatorio");
- if($campo_obligatorio =='1') {$obligatorio ="danger";}else{$obligatorio ="default";}
-
- if($campo_tipo_accion == 'text'){$render = " ";}
- elseif($campo_tipo_accion == 'date'){$render = " ";}
- elseif($campo_tipo_accion == 'rango'){
- $rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = $rango;}
- elseif($campo_tipo_accion == 'mapa'){
- $campos = explode(" ",$value);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- if($lat =="") {
- $localizacion = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- //$render= $localizacion[0];
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
-
- }
- $render .= "
-
-
-
-
-
- ";
- $cols='12';
- }
-elseif($campo_tipo_accion == 'email'){$render = "
-
- Escriba un email válido
";}
- elseif($campo_tipo_accion == 'envio'){$render = "
-
- Se enviará un email
";}
- elseif($campo_tipo_accion == 'textarea'){
- $render = " $value ";
- $cols='12';
- }
- //$subir_imagen = subir_imagen('');
- elseif($campo_tipo_accion == 'imagen'){
- $style ="display:hidden";
- // $gps = leer_exif($file);
- $render= " "; //subir_imagen('',$id_campo[$item]);
- $cols='12'; }
-
- elseif($campo_tipo_accion == 'html'){
- $render = "
-
- $value ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'limit'){
- $limite = limite("".$id_campo."[".$item."]",'','limite');
- $rows = ceil($limite / 50 )+1;
- $render = "$limite /
-
-
- $value
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'select'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select "; $cols='12'; }
- elseif($campo_tipo_accion == 'radio'){
- $select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_campos'){
-
- $campos_valores = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $mensaje = remplacetas('form_campos','id',$id_campo,'campo_descripcion',"") ;
- $campos = explode(":",$campos_valores[0]);
- $titulos = explode(";",$campos[0]);
- $campos_incluidos = explode(";",$campos[1]);
- for($i=0;$i$campos_incluidos[$i] ";
- //$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "
- $mensaje[0]
- $listado_titulos
- $listado_campos
-
";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_linea'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = " ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'checkbox'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = checkbox_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";}
- elseif($campo_tipo_accion == 'combo'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = combo_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'relacion'){
- $select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'buscador'){
- $select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'base'){
- $select = buscador_base($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";}
- elseif($campo_tipo_accion == 'vinculado'){
- $vinculado = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $select = formulario_areas($vinculado[0],'campos');
- $render = "
- $select
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'number'){
- $render = "
-
- (solo números)
";}
-
- elseif($campo_tipo_accion == 'password'){
- $render = "
-
- ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'unico'){
- $render ="
-
";
- }
- else{$render = " ";}
- if($multiple =='1'){
-
-
- $campo_multiple = "
-
- ";
-}
- if($item == 0) { $label = " $campo_nombre ";}
- else {$label = "$campo_nombre $campo_obligatorio ";}
- ///// CAMPOS QUE NO SE MOSTRARAN
- if($campo_tipo_accion == 'imagen'){
- $label="";
- }
- if($cols =="") {$cols = "6";}
- $input = "
-
-$campo_multiple
- ";
-
-
-if($campo_tipo_accion != "oculto") {
- $input= $input;
- }else { $input ="";}
-
- }
- return $input;
-}
-
-
-function validar_email($email) {
-
-if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
- return 1;
-}else{
- return 0;
-}
-}
-
-function formulario_valor_campo_ORIGINAL($perfil,$id_campo,$valor,$id_control){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$valor=mysql_real_escape_string($valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-$consulta = "SELECT * FROM `form_datos` WHERE `form_id` = '$perfil' AND id_campo='$id_campo' $valor AND `control` = '$id_control' ORDER BY timestamp DESC limit 1";
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysql_result($sql,0,"control");
-$timestamp=mysql_result($sql,0,"timestamp");
-mysql_data_seek($sql, 0);
-if($cant === 1) {
- $contenido=mysql_result($sql,0,"contenido");
- }else {
-while( $row = mysql_fetch_array( $sql ) ) {
- $contenido .= "$row[contenido] ";
- }
- }
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = $contenido;
-}
-return $existe;
- }
-
-
-
-function formulario_valor_campo($perfil,$id_campo,$valor,$id_control,$orden){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-$campo_multiple = remplacetas("form_contenido_campos","id_campo",$id_campo,"multiple"," id_form ='$perfil'");
-$tipo_campo = remplacetas("form_campos","id","$id_campo","campo_tipo","");
-$campo_multiple = $campo_multiple[0];
-if($tipo_campo[0] =="24") {$campo_multiple = "1";}
-/// SI EL CAMPO ES MULTIPLE O CHECK BOX MUESTRA LAS MULTIPLES ENTRADAS
-if($campo_multiple !="1" ){ $limite =" asc limit 1 ";}else {$limite =" asc ";}
-if(@$orden !=""){ $campo_orden =" AND orden ='$orden' ";}else {$campo_orden ="";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$valor=mysql_real_escape_string($valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-/*
-$consulta = "SELECT * FROM `form_datos`
-WHERE `form_id` = '$perfil'
-AND id_campo='$id_campo' $valor
-AND `control` = '$id_control' $campo_orden
-GROUP BY orden
-ORDER BY timestamp $limite ";
-*/
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$perfil'
- AND id_campo ='$id_campo' $valor
- AND control ='$id_control' $campo_orden
- group by orden
- ORDER BY orden $limite";
-
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysql_result($sql,0,"control");
-$timestamp=mysql_result($sql,0,"timestamp");
-$orden=mysql_result($sql,0,"orden");
-$id_usuario=mysql_result($sql,0,"id_usuario");
-$ip=mysql_result($sql,0,"ip");
-mysql_data_seek($sql, 0);
-if($cant === 1) {
- //$contenido=mysql_result($sql,0,"contenido");
- $identificador=mysql_result($sql,0,"identificador");
- $identificador = explode(',',$identificador);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $md5_contenido = $contenido_campo[3];
- //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
- //$md5_contenido = $md5_contenido[0];
- $contenido = "$contenido_campo[0] ";
- }else {
-while( $row = mysql_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_campo[0] ";
- }
- }
-// $contenido .="$consulta";
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = "$contenido";
-$existe[] = $md5_contenido;
-$existe[] = $orden;
-$existe[] = $id_usuario;
-$existe[] = $ip;
-}
-return $existe;
- }
-
-function formulario_grabar($formulario) {
- $respuesta = new xajaxResponse('utf-8');
- //$formulario = mysql_seguridad($formulario);
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
- $consulta_grabada ='0';
- $control = $formulario[control]; //
- $form_id = $formulario[form_id]; //
- $tipo = $formulario[tipo]; //
- if($formulario[imagen] !=''){$formulario[0][0] = $formulario[imagen];}
-
- $consulta_form = "SELECT * FROM form_contenido_campos,form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$form_id' ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-// $sql=mysql_query($consulta_form,$link);
-
-// if (mysql_num_rows($sql)!='0'){
-// mysql_data_seek($sql, 0);
-// while( $row = mysql_fetch_array( $sql ) ) {
-
-
-//////
- if(isset ( $_SESSION[id_empresa])){$id_empresa = $_SESSION[id_empresa]; }else{
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- }
-foreach($formulario as $c=>$v){
-
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if($V != '') {
-
-
-
-$datos .= "$$c = \$formulario['$c'][$C]; // $V /$campo_tipo[0]
";
- if($campo_tipo[0] =='12' OR $campo_tipo[0] =='13') {
- $validar = validar_email($V);
- if($validar == '0') {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }else {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- }
- }
- if($campo_tipo[0] =='3' ) {
- $validar = is_numeric($V);
- if(is_numeric($V) ) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
- }else{
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] solo acepta valores numéricos");
- return $respuesta;
- }
- }
-
- if($campo_tipo[0]=='17') {
- $limite = limite("$c",'','limite');
- $size= strlen($V);
- $restante = ($limite - $size);
- if( $restante < 0) {
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] no debe tener mas de $limite caractéres, sobran $restante");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
- }
-
-
-
- }
-else{ //busca campos vacios
-
-$campo_obligatorio = remplacetas("form_contenido_campos","id_campo",$c,"obligatorio","id_form = '$formulario[form_id]'");
-if($campo_obligatorio[0] =='1'){
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] es obligatorio");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
-
-}
-
-$md5 = md5($V);
-$igual = formulario_valor_campo("$form_id","$c","$md5","$formulario[control]","$C");
-$existe = formulario_valor_campo("$form_id","$c","","$formulario[control]","$C");
-//$valor_anterior .= $existe[3]."| ";
-if(!is_null($existe) AND $tipo =='edit' AND $V =='') {
- $consulta_vacio ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysql_query($consulta_vacio,$link);
- if($sql) {
- $consulta_grabada ='1';
- }
-}
-if(is_null($igual) ){$repetido = 0;}else{
-$repetido = 1;
-}
-
-//$debug .= " (c= $c md5 = $md5 , igual = $igual, repetid =$repetido ) ";
-//$respuesta->addAssign("respuesta_$control","innerHTML","$valor_anterior");
-//return $respuesta;
-//$respuesta->addAlert("$debug");
-//return $respuesta;
-
-if(($V !='' ) && (is_numeric($c)) AND $repetido !=1 ) {
-
- $V = mysql_real_escape_string($V);
- $consulta ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '$V', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysql_query($consulta,$link);
- $debug .= "$consulta = $sql ,";
- if($sql) {
- $consulta_grabada ='1';
- }
- }
-
- } ///fin del array
-
- }///fin del array primario
- else {
- if($v !='') {$datos .= "$$c = \$formulario['$c']; // $v
";}
- }
- }
-
-
-
-
-// }
-// }
-
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX" )
-{
- $exito ="
-
- $formulario[mensaje]
-
- ";
- $mail = '1';
- }
- elseif($tipo == "solocampos" ){
-
-
- $exito ="
-
- $formulario[mensaje]
-
- ";
-
- $mail='0';
- }
- else{
- $campo_envio = buscar_campo_tipo($formulario[form_id],"13");
- if($campo_envio[0] != "") {
-$envio = email_contenido("$formulario[form_id]","$formulario[control]","$campo_envio[0]",'');
- }
-
-if($tipo = "embebido") {
-$otro_formulario ="
-
- Llenar otro formulario
-
-";
-}else {
- $otro_formulario = "
-
- Llenar otro formulario
-
-
- ";
-}
-$impresion = formulario_imprimir("","$formulario[control]","preview");
-//$impresion = mostrar_identificador($formulario['control']);
- $exito ="
-
- $impresion
-
-
- Gracias por llenar el formulario $formulario[form_nombre]
-
-
- $otro_formulario
-
-
- $envio
-
-
-
";
-
-// $mail ='1';
- }
-
-//if($mail =='1') {
-
- //$propietario = remplacetas('form_id','id',$formulario[form_id],'propietario',"") ;
- //$propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $email_envio = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($email_envio[0] !="") {
- $impresion = formulario_imprimir("","$formulario[control]","preview");
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$formulario[form_id],"nombre","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0]" . "\r\n";
-
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en http://$_SERVER[HTTP_HOST]/milfs?id=$formulario[form_id]&c=$formulario[control]
-Saludos de MILFS
-";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $exito .=""; }else {$exito .="error enviando correo";}
- //$exito .= "$email[0] $headers ";
- }
- /// }
- $respuesta->addAssign("div_$control","innerHTML","$exito ");
- return $respuesta;
- }
-//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
-return $respuesta;
-}
-$xajax->registerFunction("formulario_grabar");
-
-function mysql_seguridad($inp) {
- if(is_array($inp))
- return array_map(__METHOD__, $inp);
-
- if(!empty($inp) && is_string($inp)) {
- return str_replace(array('\\', "\0", "'", '"', "\x1a"), array('\\\\', '\\0', "\\*", "\\*", '\\Z'), $inp);
- }
-
- return $inp;
-}
-
-function formulario_campos_render_multiple($id_campo,$id_form,$control,$item) {
-
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$id_form'
- AND id_campo ='$id_campo'
- AND control ='$control'
- group by orden ORDER BY orden asc";
- $link=Conectarse();
- //$resultado .= "$consulta";
- mysql_query("SET NAMES 'utf8'");
- $sql =mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0' ){
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- //$identificador = $row[identificador];
- $resultado .= $identificador;
- $resultado .= formulario_campos_render($row[id_campo],$id_form,$control,$row[orden],$identificador);
- $item = $item + 1;
- }
- }
- $resultado .= formulario_campos_render($id_campo,$id_form,'',$item,'');
-
- return $resultado;
-}
-
-
-
-function formulario_modal($id,$form_respuesta,$control,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $formulario_respuesta = formulario_respuesta("$id","$control");
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"",'') ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = "$formulario_respuesta";
- $pie .= empresa_datos("$id_empresa",'pie');
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $cabecera ="".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
-
- $nuevo_formulario = "Llenar otro formulario ";
-if($control !='' AND $tipo =='' ) {
- $impresion = formulario_imprimir("$id","$control","");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $muestra_form = "$impresion
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $modificable = remplacetas('form_id','id',$id,'modificable') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
-
-$consulta = "
- SELECT * FROM form_id, form_contenido_campos
- WHERE form_id.id = form_contenido_campos.id_form
- AND form_id.id = '$id' ORDER BY form_contenido_campos.orden ASC
- ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- $descripcion=mysql_result($sql,0,"descripcion");
- $nombre=mysql_result($sql,0,"nombre");
- $id_empresa=mysql_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = empresa_datos("$id_empresa",'pie');
- $cabecera = "
-
-
-
-
-
-
-
$nombre $descripcion
-
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($id,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-
-
-if ($campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$id","$campo_imagen"."[0]");
- }
- $muestra_form = "
-
-
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas("form_campos","id","$row[id_campo]","campo_tipo","");
- //if($tipo_campo[0] =="24") { $row[multiple] = "1";}
- if($row[multiple] ==='1' AND $tipo =='edit'){
- $campos = formulario_campos_render_multiple($row[id_campo],$id,$control_edit);
- }else{
- $campos = formulario_campos_render($row[id_campo],$id,$control_edit,'');
- }
- $muestra_form .= "$campos ";
- $solo_campos .= "$campos ";
- }
- $muestra_form .="
-
- ";
- }
-
-$muestra_form .="
-
-
-
";
- $muestra_form = "$muestra_form
";
-if($tipo=='campos') {
- return $solo_campos;
-}
-if($tipo=='embebido') {
- return $muestra_form;
-}
-
-$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
-$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
-$respuesta->addAssign("pie_modal","innerHTML","$pie");
-$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-//$respuesta->addscript("$('textarea').markdown({autofocus:false,savable:false})");
-//$respuesta->addscript("$(document).ready(function () { $(\"#24[0]\").cleditor(); })");
-//$(document).ready(function () { $("#input").cleditor(); });
-
-
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_modal");
-
-
-
-function limpia_div($capa){
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($capa,"style.padding","0px");
-$respuesta->addClear($capa,"innerHTML");
-
-return $respuesta;
-}$xajax->registerFunction("limpia_div");
-
-
-function select_key($tabla,$key,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-$id_empresa= $_SESSION['id_empresa'];
-if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$key;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-$resultado="
-Seleccione
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-$id_empresa= $_SESSION['id_empresa'];
-if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_empresa($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor,$id_empresa){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-$id_empresa= $_SESSION['id_empresa'];
-if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE id_empresa = '$id_empresa' $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-
-function select_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado="
-Seleccione
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= " $row[campo_valor] ";
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-
-
-function radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-$valor = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-$nombre_linea = mysql_result($sql,0,"campo_nombre");
-$descripcion_linea = mysql_result($sql,0,"campo_descripcion");
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor[0]"){$selected="checked";}else{$selected ="";}
-$lineas .= " $row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-
-function radio_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-$nombre_linea = mysql_result($sql,0,"campo_nombre");
-$descripcion_linea = mysql_result($sql,0,"campo_descripcion");
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$lineas .= "$row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-function radio_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado="
-
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$resultado .= " $row[campo_valor]
";
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function checkbox_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
- $name = explode("[",$name);
- $name = $name[0];
- $fila="0";
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' and contenido ='$row[campo_valor]' ");
-
- $nombre= "$name"."[".$fila."]";
-//if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-if($value[0] ==="$row[campo_valor]"){$selected="checked";}else{$selected ="";}
-$resultado .= "
-
-
- $row[campo_valor] $selected
-
-
";
- $fila++;
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function rango($tabla,$campo,$key,$valor,$selected,$nombre,$onchange){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT min($campo) as min , max($campo) as max FROM $tabla WHERE $key ='$valor' ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- $min=mysql_result($sql,0,"min");
- $max=mysql_result($sql,0,"max");
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-$resultado="
- $min
-
- $max $selected
-
" ;
-
-
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function limite($id_campo,$contenido,$tipo){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT campo_valor FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- $limite=mysql_result($sql,0,"campo_valor");
-
- }else{}
- if($tipo =='limite') { return $limite;}
-$respuesta = new xajaxResponse('utf-8');
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("limite");
-
-function confirma_campo($valor_1,$valor_2,$campo,$campo_confirmacion){
- $respuesta = new xajaxResponse('utf-8');
- $pos = strpos($campo,"email");
-
-if($pos == "") { //// si no es un email
- }
- else {//// si es un email se revisa
- $email = validar_email("$valor_1");
- if($email === 0 ) {
- $respuesta->addAssign("$campo","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("El email no es valido ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- return $respuesta;
- }
- else{
- }
- }
-
-
-
- if($valor_1 != $valor_2){$resultado = "Los valores NO son iguales";
- $respuesta->addAlert("$resultado");
- /// $respuesta->addAssign("$campo","style.color","red");
-
-
- $respuesta->addAssign("$campo","value","$pos");
- $respuesta->addAssign("$campo_confirmacion","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- // document.getElementById('mobileno').focus();
-
-
- }else{
- //$respuesta->addAssign("$campo_confirmacion","style.color","green");
-
- $respuesta->addAssign("$campo","className"," form-control ");
- $respuesta->addAssign("$campo_confirmacion","className"," form-control ");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-success ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-success ");
- }
- return $respuesta;
-}
-$xajax->registerFunction("confirma_campo");
-
-
-function validar_campo($valor,$campo,$tabla,$div,$id){
-$valor = mysql_seguridad($valor);
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta="SELECT $campo FROM $tabla WHERE $campo = '$valor' LIMIT 1";
-$sql =mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0' ){
-$verificacion = "atencion"; $existe='';
-
-$respuesta->addAssign($campo,"value","");
-///$respuesta->addAlert("El valor $valor $existe existe");
-$resultado = "Grrr $valor $existe existe ";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else {$verificacion ="check"; $existe='NO';}
-$resultado = "Ok, buen $campo ! ";
-$respuesta->addAssign("$id","style.backgroundColor","#CBE7CB");
-//$resultado .= "$valor,$campo,$tabla,$div";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-
-return $respuesta;
-}
-$xajax->registerFunction("validar_campo");
-
-
-function comprobar_email($email,$tipo,$campo){
-$email = mysql_seguridad($email);
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='tercero') {$id_campo='tercero_email';}
-
-
-else{$id_campo = 'email';}
-
-if($campo !=''){
-$id_campo="$campo";
-}
-
-
-if ($email == "" AND $tipo==''){
- $respuesta->addAlert("El campo email es obligatorio ");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- return $respuesta;
- }
-
- $mail_correcto = 0;
- //compruebo unas cosas primeras
- if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
- if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
- //miro si tiene caracter .
- if (substr_count($email,".")>= 1){
- //obtengo la terminacion del dominio
- $term_dom = substr(strrchr ($email, '.'),1);
- //compruebo que la terminación del dominio sea correcta
- if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
- //compruebo que lo de antes del dominio sea correcto
- $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
- $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
- if ($caracter_ult != "@" && $caracter_ult != "."){
- $mail_correcto = 1;
- }
- }
- }
- }
- }
- if ($mail_correcto AND $tipo=='' )
- {
-$consulta= "SELECT email FROM usuarios WHERE email = '$email' LIMIT 1 ";
- $link=Conectarse();
-$sql=mysql_query($consulta,$link);
-$revisa=mysql_result($sql,0,"email");
-if ($revisa != ''){
-
- $respuesta->addAlert("$email: ya está registrado ");
- $respuesta->addAssign("email","style.color","red");
- $respuesta->addAssign("email","value","");
- return $respuesta;
- }
- $respuesta->addAssign("email","style.color","green");}
- elseif ($mail_correcto AND $tipo==='revisar' ) {
- $revisar = remplacetas("usuarios","email",$email,"email","");
- if($revisar[0] != '') {
-
- $respuesta->addAssign("$campo","style.color","white");
- $respuesta->addAssign("$id_campo","style.backgroundColor","green");
- }else{
- $respuesta->addAlert("$email: No existe en el sistema)");
- $respuesta->addAssign("$campo","value","");
- }
- return $respuesta;
- }
-
- elseif ($mail_correcto AND $tipo==='tercero' ) {
- $documento = remplacetas("terceros","email",$email,"documento","");
- if($documento[1] =='') { /// si el tercero NO existe
-
- }else { /// si el tercero existe en el sistema
-
- $tipo_persona = remplacetas("terceros","id",$documento[1],"tipo_persona","");
-
- if($tipo_persona[0] =='1') {
- $razon_social = remplacetas("terceros","id",$documento[1],"razon_social","");
- $resultado .= " $razon_social[0]] Nit: $documento[0]";
- } else {
- $primer_nombre = remplacetas("terceros","id",$documento[1],"p_nombre","");
- $segundo_nombre = remplacetas("terceros","id",$documento[1],"s_nombre","");
- $primer_apellido = remplacetas("terceros","id",$documento[1],"p_apellido","");
- $segundo_apellido = remplacetas("terceros","id",$documento[1],"s_apellido","");
- $resultado .=" \r $primer_nombre[0] $segundo_nombre[0] $primer_apellido[0] $segundo_apellido[0] \r Documento: $documento[0]";
- }
-
- $respuesta->addAlert("$email: $resultado");
- $respuesta->addAssign("tercero_documento","value","$documento[0]");
- $respuesta->addAssign("tercero_primer_nombre","value","$primer_nombre[0]");
- $respuesta->addAssign("tercero_segundo_nombre","value","$segundo_nombre[0]");
- $respuesta->addAssign("tercero_primer_apellido","value","$primer_apellido[0]");
- $respuesta->addAssign("tercero_segundo_apellido","value","$segundo_apellido[0]");
- $respuesta->addAssign("tercero_razon_social","value","$razon_social[0]");
- $respuesta->addAssign("tercero_id","value","$documento[1]");
-
- }
-
- }
- else
- {$respuesta->addAlert("$email: no es un correo válido");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("comprobar_email");
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-
-function milfs(){
- $crear_campos = formulario_crear_campo('','','');
- $listado = formulario_listado('','');
- //$consultas = formulario_consultar('','');
- $importador = formulario_importador('');
- $limpiar_cache = borrar_tmp('');
- $configuracion= configuracion('');
-
- $login = login_boton('');
- $menu =
-"
-
-
-
- $crear_campos
-
- $listado
-
- $importador
- $limpiar_cache
- Presentación
- $configuracion
-
-
-
-
-
";
-
- return $menu;
-}
-function url_existe($url)
-{
- $handle = @fopen($url, "r");
- if ($handle == false)
- return NULL;
- fclose($handle);
- return $url;
-}
-function es_imagen($url)
- {
- $imageSizeArray = getimagesize($url);
- $imageTypeArray = $imageSizeArray[2];
- return (bool)(in_array($imageTypeArray , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG )));
- }
-function parametrizacion($array) {
- //return $array;
- $link=Conectarse();
- mysql_real_escape_string($array);
- $accion = $array[accion];
- $tabla = $array[tabla];
- $campo = $array[campo];
- $opcion = $array[opcion];
- $descripcion= $array[descripcion];
- $visible= $array[visible];
- $id= $array[id];
-
- if($accion =='grabar'){
- $consulta= "INSERT INTO form_parametrizacion set tabla='$tabla', campo ='$campo',opcion ='$opcion' , descripcion ='$descripcion' ,visible='$visible'";
- }
- // return $consulta;
- $sql=mysql_query($consulta,$link);
- if($sql){return "Campo grabado"; }else{return "";}
-
-}
-
-?>
\ No newline at end of file
diff --git a/milfs/funciones/conex.php b/milfs/funciones/conex.php
deleted file mode 100644
index 9790660..0000000
--- a/milfs/funciones/conex.php
+++ /dev/null
@@ -1,66 +0,0 @@
-
\ No newline at end of file
diff --git a/milfs/funciones/convert.php b/milfs/funciones/convert.php
deleted file mode 100644
index 1587e02..0000000
--- a/milfs/funciones/convert.php
+++ /dev/null
@@ -1,193 +0,0 @@
-${1}',$html);
- // emphasized
- $html = preg_replace('/\'\'([^\'\n]+)\'\'?/','${1} ',$html);
- //interwiki links
- $html = preg_replace_callback('/\[\[([^\|\n\]:]+)[\|]([^\]]+)\]\]/','helper_interwikilinks',$html);
- // without text
- $html = preg_replace_callback('/\[\[([^\|\n\]:]+)\]\]/','helper_interwikilinks',$html);
- //
- //$html = preg_replace('/{{([^}]+)+}}/','Interwiki: ${1}+${2}+${3}',$html);
- $html = preg_replace('/{{([^\|\n\}]+)([\|]?([^\}]+))+\}\}/','Interwiki: ${1} » ${3}',$html);
- // Template
- //$html = preg_replace('/{{([^}]*)}}/',' ',$html);
- // categories
- //$html = preg_replace('/\[\[([^\|\n\]]+)([\|]([^\]]+))?\]\]/','',$html);
- $html = preg_replace('/\[\[([^\|\n\]]{2})([\:]([^\]]+))?\]\]/','Translation: ${1} » ${3}',$html);
- $html = preg_replace('/\[\[([^\|\n\]]+)([\:]([^\]]+))?\]\]/','Category: ${1} - ${2}',$html);
- // image
- $html = preg_replace('/\[\[([^\|\n\]]+)([\|]([^\]]+))+\]\]/','Image: ${0}+${1}+${2}+${3}',$html);
-
- //links
- //$html = preg_replace('/\[([^\[\]\|\n\': ]+)\]/','${1} ',$html);
- $html = preg_replace_callback('/\[([^\[\]\|\n\': ]+)\]/','helper_externlinks',$html);
- // with text
- //$html = preg_replace('/\[([^\[\]\|\n\' ]+)[\| ]([^\]\']+)\]/','${2} ',$html);
- $html = preg_replace_callback('/\[([^\[\]\|\n\' ]+)[\| ]([^\]\']+)\]/','helper_externlinks',$html);
-
- // allowed tags
- $html = preg_replace('/<(\/?)(small|sup|sub|u)>/','<${1}${2}>',$html);
-
- $html = preg_replace('/\n*<br *\/?>\n*/',"\n",$html);
- $html = preg_replace('/<(\/?)(math|pre|code|nowiki)>/','<${1}pre>',$html);
- $html = preg_replace('/<!--/','',$html);
-
- // headings
- for($i=7;$i>0;$i--){
- $html = preg_replace(
- '/\n+[=]{'.$i.'}([^=]+)[=]{'.$i.'}\n*/',
- '${1} ',
- $html
- );
- }
-
- //lists
- $html = preg_replace(
- '/(\n[ ]*[^#* ][^\n]*)\n(([ ]*[*]([^\n]*)\n)+)/',
- '${1}'."\n",
- $html
- );
- $html = preg_replace(
- '/(\n[ ]*[^#* ][^\n]*)\n(([ ]*[#]([^\n]*)\n)+)/',
- '${1}'."\n".'${2}'.' '."\n",
- $html
- );
- $html = preg_replace('/\n[ ]*[\*#]+([^\n]*)/','${1} ',$html);
-
- $html = preg_replace('/----/',' ',$html);
-
- //$html = nl2br($html);
- // line breaks
- $html = preg_replace('/[\n\r]{4}/'," ",$html);
- $html = preg_replace('/[\n\r]{2}/'," ",$html);
-
- $html = preg_replace('/[>] [<]/',"><",$html);
-
- return $html;
-}
-function helper_externlinks($matches){
- $target = $matches[1];
- $text = empty($matches[2])?$matches[1]:$matches[2];
- return ''.$text.' ';
-}
-function helper_interwikilinks($matches){
- $target = $matches[1];
- $text = empty($matches[2])?$matches[1]:$matches[2];
- $class=" class=\"dunno\" ";
- /*static $links_checked_interwiki = 0;
- if(!$_GET["nocache"] && ++$links_checked_interwiki<10){
- $data = cachedFunc("getPos",$target);
- if($data["pos"]) $class = " class=\"exists\" "; $class = " class=\"notexists\" ";
- }*/
- return ''.$text.' ';
-}
-function convertTables($text){
- $lines = explode("\n",$text);
- $innertable = 0;
- $innertabledata = array();
- foreach($lines as $line){
- //echo "".++$i.": ".htmlspecialchars($line)." ";
- $line = str_replace("position:relative","",$line);
- $line = str_replace("position:absolute","",$line);
- if(substr($line,0,2) == '{|'){
- // inner table
- //echo "beginning inner table #$innertable
";
- $innertable++;
- }
- $innertabledata[$innertable] .= $line . "\n";
- if($innertable){
- // we're inside
- if(substr($line,0,2) == '|}'){
- $innertableconverted = convertTable($innertabledata[$innertable]);
- $innertabledata[$innertable] = "";
- $innertable--;
- $innertabledata[$innertable] .= $innertableconverted."\n";
- }
- }
- }
- return $innertabledata[0];
-}
-
-function convertTable($intext){
- $text = $intext;
- $lines = explode("\n",$text);
- $intable = false;
-
- //var_dump($lines);
- foreach($lines as $line){
- $line = trim($line);
- if(substr($line,0,1) == '{'){
- //begin of the table
- $stuff = explode('| ',substr($line,1),2);
- $tableopen = true;
- $table = "\n";
- } else if(substr($line,0,1) == '|'){
- // table related
- $line = substr($line,1);
- if(substr($line,0,5) == '-----'){
- // row break
- if($thopen)
- $table .="\n";
- if($tdopen)
- $table .="\n";
- if($rowopen)
- $table .="\t\n";
- $table .= "\t\n";
- $rowopen = true;
- $tdopen = false;
- $thopen = false;
- }else if(substr($line,0,1) == '}'){
- // table end
- break;
- }else{
- // td
- $stuff = explode('| ',$line,2);
- if($tdopen)
- $table .="\n";
- if(count($stuff)==1)
- $table .= "\t\t".simpleText($stuff[0]);
- else
- $table .= "\t\t ".
- simpleText($stuff[1]);
- $tdopen = true;
- }
- } else if(substr($line,0,1) == '!'){
- // th
- $stuff = explode('| ',substr($line,1),2);
- if($thopen)
- $table .="\n";
- if(count($stuff)==1)
- $table .= "\t\t ".simpleText($stuff[0]);
- else
- $table .= "\t\t ".
- simpleText($stuff[1]);
- $thopen = true;
- }else{
- // plain text
- $table .= simpleText($line) ."\n";
- }
- //echo "".++$i.": ".htmlspecialchars($line)." ";
- //echo "Table so far:
".htmlspecialchars($table)." ";
- }
- if($thopen)
- $table .=" \n";
- if($tdopen)
- $table .="\n";
- if($rowopen)
- $table .="\t \n";
- if($tableopen)
- $table .="
\n";
- //echo " ";
- //echo "Table at the end:
".htmlspecialchars($table)." ";
- //echo $table;
- return $table;
-}
diff --git a/milfs/funciones/experimentales.php b/milfs/funciones/experimentales.php
deleted file mode 100644
index c7af436..0000000
--- a/milfs/funciones/experimentales.php
+++ /dev/null
@@ -1,258 +0,0 @@
-$nombre[0]
- $descripcion[0]
-
- $formulario
-
-
-
-
-
-
-
-
-
-
- ";
- return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
- $sujeto = $form[84][0];
- $accion = $form[85][0];
- $verbo = $form[86][0];
- $tiempo = $form[87][0];
- $ht = $form[88][0];
- $mensaje = $form[83][0];
- $arroba = $form[82][0];
- if( $accion =="" or $verbo =="" or $tiempo =="" or $ht =="" or $arroba =="" ) {
- $error ="
Hay campos vacíos
";
- $respuesta->addAssign("tuitealo_error","innerHTML","$error");
- return $respuesta;
-
- }
- $arroba = remplacetas('form_datos','control',"$arroba",'contenido',"id_campo = '77'") ;
- $arroba = $arroba[0];
- $url_propia = urlencode("http://patos.redpatodos.co");
-
- $texto="$sujeto $accion $verbo $tiempo $ht $mensaje cc $arroba ";
- $texto = ucfirst($texto);
- $texto_url=urlencode($texto);
- $largo = strlen($texto.$url_propia);
- if($largo > 140) { $alert ="danger"; $mensaje =" El texto es demasiado largo y se recortará";
- $texto = substr($texto, 0, 140)."..."; }
- else{$alert='success'; $mensaje="";}
-
-
-
- $url ="https://twitter.com/share?url=$url_propia&text=$texto_url";
-
- $previsualizar ="
-
-
-
-
- Previsualizar
- Tuitéalo
-
- ";
-
-if( $tipo =="previsualizar") {
-
- $respuesta->addAssign("tuitealo_div","innerHTML","$previsualizar");
- //$respuesta->addAlert("$texto $url");
-
-
-
- }else{
- ///$respuesta->addAssign("tuitealo_div","innerHTML","$url");
- $respuesta->addScript("window.location.href ='$url';");
- }
-
- return $respuesta;
-}
-$xajax->registerFunction("tuitealo");
-
-
-/*
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='') {
-$resultado="
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form contenido like '%%$valor%%' group by control LIMIT 200 ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=1;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
-
- $datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
$datos
";
-
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor $encontrados ";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-*/
-/*
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-//mysqli_real_escape_string($link,$consulta);
-$sql_total=mysqli_query($consulta_total,$link);
-$total = mysqli_num_rows($sql_total);
-$sql=mysqli_query($consulta,$link);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = " $descripcion[0]";
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion $buscador
";
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-if($cols =="12") { $cols_grid ="";}else { $cols_grid ="col-md-$cols";}
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
-
-
-
- $contenido
-
-
-
- Mostrar mas resultados
-
-
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-*/
-?>
\ No newline at end of file
diff --git a/milfs/funciones/funciones.chupacabras.php b/milfs/funciones/funciones.chupacabras.php
deleted file mode 100644
index 43728bf..0000000
--- a/milfs/funciones/funciones.chupacabras.php
+++ /dev/null
@@ -1,9027 +0,0 @@
-
- Respuestas:
- ";
- while( $row = mysqli_fetch_array( $sql ) ) {
- $respuesta = mostrar_identificador("$identificador","$row[form_id]","",'simple');
- $fecha = date($format, $row['timestamp']);
- $resultado .= " $respuesta $timestamp ";
-
-}
- $resultado .="
- ";
-}else{$resultado ="";}
-$resultado = "$resultado $formulario_respuesta";
-return $resultado;
-}
-
-
-function formulario_respuesta($id,$identificador) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $consulta = "SELECT * FROM form_id
- WHERE formulario_respuesta = '$id'
- ";
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado ="
- ";
- while( $row = mysqli_fetch_array( $sql ) ) {
- $resultado .= "$row[nombre] $row[descripcion] ";
-
-}
- $resultado .="
";
-}else{$resultado ="";}
-return $resultado;
-}
-function consultar_contenido_formulario($form,$registros,$pagina,$tipo){
- $imagen ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
-$respuesta = new xajaxResponse('utf-8');
-
-
-$id_form = $form;
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql_total=mysqli_query($consulta_principal,$link);
-$total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta_principal.$limite;
- $sql=mysqli_query($consulta_limite,$link);
-mysqli_data_seek($sql_total, 0);
-//$sql=mysqli_query($consulta_principal,$link);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-//$fecha = time ();
-// $ahora = date ( "Y-m-d" , $fecha );
-// $campos = listar_campos_formulario($id_form,"select");
-
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
- $paginacion = "";
- $encabezado = "
-
- ";
-
-// $total_registros = mysqli_num_rows($sql);
-/* $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- */
-// $listado_nombres = "Identificador $listado_nombres ";
-///$listado_campos = listar_campos_formulario("$id_form",'');
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-// if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","landingpage",'');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= " $row[control]";
- }
-$buscador = buscar_datos("*formato*","$form","landingpage","mostrar_resultado");
-$filtro = portal_filtro_campos_select($form,"$campo_filtro","mostrar_resultado","landingpage");
-if( $tipo !== "" AND $tipo !=="embebido" ) {
-$acciones="
-
-
- $filtro
-
- $buscador
-
";
-}
-$resultado = "
-
-
-$acciones
-
-$linea
-$encabezado
-
-";
- }
-else {
-$resultado ="
No hay resultados $consulta_limite";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-
- /*$datos = $resultado;
- $div ="contenido_de_modal";
- $resultado = " $datos
";
- $div_contenido = "$div
";
- */
- if($tipo =="") {
- // $respuesta->addAssign("contenido_interior","innerHTML","$div_contenido");
- $respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- return $respuesta;
- }
- if($tipo =="contenido" OR $tipo =="embebido" ) {
- return $resultado;
- }
-}
-$xajax->registerFunction("consultar_contenido_formulario");
-
-
-function multiempresa_listado($tabla,$div){
-$resultado = "";
-$link=Conectarse();
-
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM empresa ORDER BY id DESC ";
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
-
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=3;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
- $encontrados .= "";
- }
- $i++;
- $logo="
";
- $contenido ="
-
";
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- $resultado ="
-
- $encontrados
-
- ";
- }else{
- $resultado = " No hay resultados
";
- }
-if($div =="") { return $resultado; }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa_listado");
-
-
-
-function decodifica_parametro ($string)
-{
- $inicial = substr($string,0,1);
- $string = mb_substr($string,1);
- $cadena = $string;
- //$length = strlen($base);
-
- $size = strlen($string) - 1;
- $string = str_split($string);
-
- //$out = strpos($base, array_pop($string));
-//return $out;
- /*foreach($string as $i => $char)
- {
-
- $out += (strpos($base, $char)* pow($length, $size - $i));
-//$out .= "$i => $char";
- }*/
-$resultado[0]=$inicial;
-//$resultado[1]=$out;
-$resultado[1]=$cadena;
-
- return $resultado;
-}
-
-function grabar_imagen($imagen,$control) {
-
- $imgData = str_replace(' ','+',$imagen);
- $imgData = substr($imgData,strpos($imgData,",")+1);
- $imgData = base64_decode($imgData);
-
- $nombre= $control.".png";
- $filePath = "$_SESSION[path]/tmp/".$nombre;
-
- $file = fopen($filePath, 'w');
- fwrite($file, $imgData);
- fclose($file);
- $full= "$_SESSION[path_images_secure]/full/".$nombre;
- if (!rename($filePath,$full)){}
- else {
- echo generar_miniatura($nombre,"150");
- echo generar_miniatura($nombre,"300");
- echo generar_miniatura($nombre,"600");
- }
-
- //return "$nombre";
- return "$nombre";
-}
-
-
-function generar_miniatura($file,$width) {
//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[0] / $file_info[1];
// Calculamos las nuevas dimensiones
$newwidth = $width;
$newheight = round($newwidth / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 80);
-imagepng($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 9);
-//imagegif($thumb,"$_SESSION[path_images_secure]/".$width."/$file");
-//imagejpeg($thumb,null, 80);
-}
-
-function generar_vcard($identificador){
-$impresion = mostrar_identificador("$identificador","","vcard",'simple');
-$impresion = formulario_imprimir("$id_form","$identificador","$plantilla");
-$nombre ="vcard_".$identificador.".vcf";
-$vcard ="BEGIN:VCARD
-VERSION:3.0
-N:Gump;Forrest
-FN:Forrest Gump
-ORG:Bubba Gump Shrimp Co.
-TITLE:Shrimp Man
-PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif
-TEL;TYPE=WORK,VOICE:(111) 555-1212
-TEL;TYPE=HOME,VOICE:(404) 555-1212
-ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
-LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America
-ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
-LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America
-EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com
-REV:20080424T195243Z
-END:VCARD";
-$archivo = "milfs/tmp/$nombre";
-$file=fopen($archivo,"w") or die("Problemas en la creacion");//En esta linea lo que hace PHP es crear el archivo, si ya existe lo sobreescribe
-fputs($file,$impresion);//En esta linea abre el archivo creado anteriormente e ingresa el resultado de tu script PHP
-fclose($file);//Finalmente lo cierra
-/*
-$ruta="/tmp/vcard_".$identificador.".vcf";
-header ("Content-Disposition: attachment; filename=".$ruta);
-header ("Content-Type: application/octet-stream");
-header ("Content-Length: ".filesize($ruta));
-readfile($ruta);
-*/
-return $archivo;
-
-
-}
-
-function autoriza_formulario_mostrar($password,$form,$control) {
- $respuesta = new xajaxResponse('utf-8');
- if($password =="") { unset($_SESSION['permiso_identificador']); $respuesta->addScript("javascript:location.reload(true);"); return $respuesta;}
- $campo = buscar_campo_tipo($form,"18");
- $campo_password = $campo[0];
- $comprobar_clave = remplacetas('form_datos','form_id',"$form",'contenido'," BINARY contenido = MD5('$password') AND id_campo = '$campo_password'") ;
- $password = md5($password);
- $aviso = "";
-
-if($comprobar_clave[0] !== $password ) {
- unset($_SESSION['permiso_identificador']);
- $respuesta->addAlert("La clave no es válida ");
- $aviso = "$comprobar_clave[2] !== $control";
- $respuesta->addAssign("pie_modal","innerHTML",$aviso);
- return $respuesta;
- }
- else{
- $_SESSION['permiso_identificador']="$control";
- //$respuesta->addAssign("pie_modal","innerHTML",$aviso);
- $respuesta->addScript("javascript:location.reload(true);");
- }
- return $respuesta;
-}
-$xajax->registerFunction("autoriza_formulario_mostrar");
-
-
-//($control,$form,$plantilla,$tipo)
-function landingpage_contenido_identificador($identificador,$form,$plantilla,$tipo){
- $linea="";
-
- $id_empresa = remplacetas('form_datos','control',$identificador,'id_empresa',"") ;
- //$form = remplacetas('form_datos','control',$identificador,'form_id',"") ;
-
- $respuestas = respuestas_formulario($form,$identificador);
- $imagen = buscar_imagen($form[0],$identificador,"","$id_empresa[0]");
- $plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$plantilla",'id',"campo = '$form'") ;
-
- $uri = "$_SESSION[site]i$identificador";
- $qr = "http://qwerty.co/qr/?d=$uri";
- if($imagen !="") {
-
- $mostrar_imagen =" ";
- $miniatura = "
- $uri";
-
- }else {
- $miniatura ="i$identificador ";
- $mostrar_imagen = " ";
-
-
-
- }
-
- //
- //$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- if($plantilla[0] !="" ) {
- $impresion = mostrar_identificador($identificador,"","landingpage");
- } else{
- $contenido = mostrar_identificador($identificador,"","");
- $impresion = "
-
-
-
-
-
-
-
-
-
-
-
-
- $contenido
- $miniatura
-
-
- $mostrar_imagen
-
-
-
-
-
-
-
-
-
-
-
- ";
-
- }
- $linea = "
- $impresion
-
-
-
- ";
-
- return $linea;
- }
-
-
-function landingpage_contenido_formulario($form,$registros,$pagina,$div_original){
- $cantidad = formulario_contar($form);
- $div="contenido_interior";
- //if($registros =="") {$registros ="10";}
- $consulta= "SELECT control FROM form_datos WHERE form_id = '$form' GROUP BY control ORDER BY id DESC ";
- $id_empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- //$sql=mysqli_query($consulta,$link);
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($consulta_limite,$link);
-
- $paginacion ="";
- $paginacion .= $indice;
-/*
- /// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($consulta_limite,$link);
- $page= $pagina;
- @$pages= ceil($cantidad / $registros); //13; // Hardcoded for testing purpose
- $limit= 20 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
-
- $paginacion = "";
-
- */
-
- //// PAGINACION
-if (mysqli_num_rows($sql)!='0'){
- $linea=" ( $cantidad ) $paginacion";
- $fila = 1;
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $impresion = mostrar_identificador($row['control'],"","landingpage");
- $imagen = buscar_imagen($form,$row['control'],"","$id_empresa[0]");
- if($imagen !="") { $clase = "col-lg-5 col-sm-6";}else {$clase = "col-lg-12 col-sm-12";}
- $uri = " Ver mas ... ";
- $linea .= landingpage_contenido_identificador($row['control']);
- }
- $resultado_linea="$linea
";
- }
- if($div_original=="") {
-
- return $resultado_linea;
- }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$linea");
-
- return $respuesta;
-
- }
- }
-$xajax->registerFunction("landingpage_contenido_formulario");
-/*
-$respuesta = new xajaxResponse('utf-8');
-$resultado =" $mensaje Procesando ... ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-
-*/
-function landingpage_contenido($id_empresa){
-$consulta= "SELECT * FROM form_id WHERE publico ='1' AND id_empresa= '$id_empresa' ORDER BY orden ASC";
-$miniatura ="";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $linea="";
- $fila = 1;
- //include("includes/datos.php");
- $error_token = "";
- $contenido = "";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; } else {$error_token = "";}}
- while( $row = mysqli_fetch_array( $sql ) ) {
- $contenido = "Mas información ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- if($ultimo_mapa[0] !="") {
- $campos = explode(" ",$ultimo_mapa[0]);
- $lat = $campos['0'];
- @$lon = $campos['1'];
- @$zoom = $campos['2'];
-
- if($error_token != 1) {
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/negro.png");
- $miniatura = "
-
-
- "; }else{ $miniatura ="No se ha definido un token de mapbox
";}
- }
- if($geo[0] !='') { $mapa= "$miniatura ";}else {$mapa='';}
- if ( $fila%2==0){
-
- $linea .= "
-
-
-
-
-
-
-
-
-
$row[nombre]
-
$row[descripcion]
- $mapa
-
-
-
- $contenido
-
-
-
-
-
-
-
-
- ";
-
- }else{
- $linea .= "
-
-
-
-
-
-
-
-
-
-
$row[nombre]
-
$row[descripcion]
- $mapa
-
-
-
- $contenido
-
-
-
-
-
-
-
- ";
- }
-
-
- //$linea .= "$fila $plantilla$row[nombre] ";
- $fila++;
- }
- }
-return $linea;
-}
-
-function buscar_imagen($form,$control,$tipo,$empresa) {
- $imagen="";
- if($control !="") { $w_control = "AND form_datos.control ='$control'";}else{$w_control ="";}
- if ($form ==""){
- $consulta = "SELECT form_datos.id_empresa, contenido , campo_nombre , id_campo FROM form_id, form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_id.id = form_datos.form_id
- AND form_datos.id_empresa = '$empresa'
- AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 ";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $imagen = mysqli_result($sql,0,"contenido");
- }
-if($tipo == "consulta") { return $consulta; }
- return $imagen;
-
- }
-$publico = remplacetas('form_id','id',"$form",'publico',"") ;
-if($publico[0] !="0" ){
-$campo_imagen = buscar_campo_tipo("$form","15");
-$imagen = remplacetas('form_datos','form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ;
-//$imagen = "$imagen[0]";
-return $imagen[0];
-}
-return;
-}
-
-function wait($div,$mensaje){
-$respuesta = new xajaxResponse('utf-8');
-$resultado =" $mensaje Procesando ... ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-
-function campos_tabla($filtro,$div) {
-$mio ="";
-$lineas ="";
-$w_empresa ="";
-$w_especialista ="";
-if($filtro == 'id_empresa') { $w_empresa = " AND id_empresa = '$_SESSION[id_empresa]' ";}
-if($filtro == 'id_especialista') { $w_especialista = " AND id_especialista = '$_SESSION[id]' ";}
-if($filtro == 'llenos') {
-$consulta= " SELECT * , form_campos.id as id FROM form_campos, form_datos WHERE form_campos.id = form_datos.id_campo $w_empresa $w_especialista GROUP BY id_campo ORDER BY campo_area, campo_nombre ";
-}elseif($filtro == 'vacios') {
-$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_datos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-}else{
-$consulta= " SELECT * FROM form_campos WHERE id = id $w_empresa $w_especialista ORDER BY campo_area, campo_nombre ";
-}
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
- //$div = "div_tabla_campos";
- $filtros = "
-
-
-
- Seleccione
- Todos
- Mis campos
- Mi empresa
- Vacios
- Llenos
-
-
-
- ";
- if (mysqli_num_rows($sql)!='0'){
- while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"") ;
- $campo_tipo ="$tipo_nombre[0] ";
- if($_SESSION['id_empresa'] == $row['id_empresa']) {
- $row['campo_nombre']= editar_campo("form_campos","$row[id]","campo_nombre","","","","");
- $row['campo_descripcion']= editar_campo("form_campos","$row[id]","campo_descripcion","","","","");
- $row['campo_area']= editar_campo("form_campos","$row[id]","campo_area","","","","");
- $row['activo']= editar_campo("form_campos","$row[id]","activo","","","","","");
- $accion = " ";
- $class='success';
- }else {
- $class='';
- $accion ="";
- }
- if($_SESSION['id'] == $row['id_especialista']) {
- $row['id_especialista'] = " $row[id_especialista]";
- }
-
- $lineas .= "$row[id] $row[campo_nombre] $row[campo_descripcion] $campo_tipo $row[campo_area] $row[activo] $row[id_empresa] $row[id_especialista] $mio $accion ";
- }
- $tabla = "
-
-
- id Nombre Descripcion Tipo
- $lineas
-
-
- ";
- }
- if($div !=""){
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$tabla");
- return $respuesta;
- }
- else{
- $resultado = "$filtros $tabla";
- return $resultado;
-}
-}
-$xajax->registerFunction("campos_tabla");
-
-function remplacetas_noid($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($consulta,$link);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,"$campo");
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-
-
-function contar_visitas($id,$tipo) {
-$id_visitas = remplacetas('form_parametrizacion','campo',$id,'id'," tabla='form_id' AND opcion='$tipo'") ;
-$visitas = remplacetas('form_parametrizacion','id',$id_visitas[0],'descripcion',"") ;
-$cantidad = $visitas[0]+1;
-if($visitas[0] =="") {
- $consulta = "INSERT INTO form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'";
- }
-else {
- $consulta = "UPDATE form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'
- WHERE id ='$id_visitas[0]' LIMIT 1";
-}
-$link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
-$cantidad = "$cantidad $_SESSION[analizador]";
-return $cantidad;
-}
-
-
-function geocoder($valor,$campo){
-$respuesta = new xajaxResponse('utf-8');
-if(strlen($valor) > 3) {
-$valor = urlencode($valor);
-$json = "https://nominatim.openstreetmap.org/search.php?format=json&limit=5&addressdetails=1&q=$valor";
-$data = file_get_contents("$json");
-$geocoder = json_decode($data, true);
-if($data ==="[]") {$vacio="
-
- No se encontraron resultados
-";}
-
-foreach ($geocoder as $clave => $valor) {
- $ciudad = $valor['address']['city'];
- $municipio = $valor['address']['town'];
- $pais = $valor['address']['country'];
- $departamento = $valor['address']['state'];
- $licencia= $valor['licence'];
- $link = "$_SESSION[url]mapero.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo";
- $linea .= "
-
-
- $valor[display_name]
-
- $ciudad $municipio $pais $departamento
-
-
-
- ";
-//foreach ($valor as $clave => $valor) { $linea .= "CLAVE : $clave > VALOR: $valor"; }
-}
-$resultado = "
-
- $vacio $licencia
-
";
-}
- //$div_contenido = "$div
";
- //$respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("muestra_geocoder","innerHTML","$resultado");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("geocoder");
-
-
-function mostrar_psi(){
-$respuesta = new xajaxResponse('utf-8');
-include("psi.php");
- //$div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_psi");
-
-function multiempresa_crear($tabla,$formulario,$div) {
-$formulario = limpiar_caracteres($formulario);
-$link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '".mysqli_real_escape_string($link,$v)."',";
- }
- $valores = "$valores id_responsable = '$_SESSION[id]'";
-
-$respuesta = new xajaxResponse('utf-8');
-
- $insertar = "INSERT INTO $tabla set $valores";
- $sql=mysqli_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
-
-
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("multiempresa_crear");
-
-
-function multiempresa($tabla,$div){
- if($_SESSION['id'] == 1) {
- if($div =="") {
- $div="contenido";
- $resultado =" Configuración multiempresa ";
- return $resultado;
- }
-$link=Conectarse();
-
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$consulta = "SELECT * FROM empresa ";
-$sql=mysqli_query($consulta,$link);
-
-$resultado="
-$name
-Id Nombre Sigla Email Web Dirección Teléfono
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$razon_social= editar_campo("empresa",$row['id'],"razon_social","","","");
-$sigla= editar_campo("empresa",$row['id'],"sigla","","","");
-$email= editar_campo("empresa",$row['id'],"email","","","");
-$web= editar_campo("empresa",$row['id'],"web","","","");
-$direccion= editar_campo("empresa",$row['id'],"direccion","","","");
-$telefono= editar_campo("empresa",$row['id'],"telefono","","","");
-$estado= editar_campo("empresa",$row['id'],"estado","","","");
-
-if($row[id] !=1) {$acciones = " Estado: $estado";}
-$resultado .= "$row[id] $razon_social $sigla $email $web $direccion $telefono $acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-Agregar empresa
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa");
-
-
-
-
-
-
-function contar_valores_formulario($campo,$key,$valor){
-$consulta = "SELECT distinct($campo) as cantidad FROM form_datos WHERE $key LIKE '$valor' ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = mysqli_num_rows($sql);
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-function listar_campos_formulario($id_form,$tipo){
- $tipo="$tipo";
-$consulta = "SELECT distinct(id_campo),campo_nombre FROM form_datos,form_campos WHERE form_id = '$id_form' AND form_datos.id_campo = form_campos.id ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($tipo=="nombres"){
-$resultado[] = "$row[campo_nombre]";}
- elseif($tipo=="select"){
- $option .= "$row[campo_nombre] ";
- }
- else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){
-$resultado = "
-
- Campo
- $option
- ";
-
-}
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-//($formulario,$div,$registros,$pagina,$formato)
-function consultar_formulario($form,$registros,$pagina,$tipo){
- $imagen ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
-$respuesta = new xajaxResponse('utf-8');
-//if(is_array($form)) {$id_form = $form['id_form'];}else { $id_form = $form;}
-$id_empresa = $_SESSION['id_empresa'];
-if(is_array($form)) {
- $fecha_inicio = $form["inicio"];
- if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
- $fin = $form["fin"];
- if( $fin !="") { $fechas = " AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') AND UNIX_TIMESTAMP('$fin 23:59:59')";}
- $id_form = $form['id_form'];
- @$id_campo = $form['id_campo'];
- $busqueda = $form['busqueda'];
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$form[busqueda]%%'";}else{$busca ='';}
-if($id_campo !=''){$campo ="AND id_campo = '$id_campo'";}else{$campo ='';}
-}else{
-$id_form = $form;
-}
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' AND form_datos.id_empresa = '$id_empresa' $busca $campo $fechas GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql_total=mysqli_query($consulta_principal,$link);
-$total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- if($tipo == "csv" ) {$consulta_limite = "$consulta_principal";}
- else{$consulta_limite = $consulta_principal.$limite;}
- $sql=mysqli_query($consulta_limite,$link);
-
-//$sql=mysqli_query($consulta_principal,$link);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-$fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $campos = listar_campos_formulario($id_form,"select");
- $peticion = "
-
-
-
-
-
-
-
-
- ";
-/////// FILTRO
-
-$boton_borrar = "
-
-
-
- ";
-
- if($formato!='csv'){
- $boton_exportar = " Exportar ";}
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
-
- $paginacion = "";
-
-
-
-
- $encabezado = "
- ";
-
- $total_registros = mysqli_num_rows($sql);
- $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- $listado_nombres = "Identificador $listado_nombres ";
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-//$cantidad_campos = contar_valores_formulario("id_campo","control","$row[control]");
-
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-foreach($listado_campos as $campo=>$valor){
- //$imagen = buscar_imagen($if_form,$row['control'],"","");
- $contenido = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo ='$valor' ") ;
- $id_dato = remplacetas('form_datos','control',$row['control'],'id',"id_campo ='$valor' ") ;
- $tipo_campo = remplacetas('form_campos','id',$valor,'campo_tipo',"") ;
- if($tipo_campo[0] ==15 AND $contenido[0] != "") {
- @$listado_campos .= "
-
-
-
-
-
- ";
- }
- elseif(($tipo_campo[0] ==1 or $tipo_campo[0] ==2 or $tipo_campo[0] ==3 or $tipo_campo[0] ==4 or $tipo_campo[0] ==12 or $tipo_campo[0] ==13 )AND $contenido[0] != "") {
- $editar_contenido = editar_campo("form_datos","$id_dato[0]","contenido","");
- @$listado_campos .= "$editar_contenido ";
- }
- else {
-@$listado_campos .= "$contenido[0] ";
-}
-
- }
- if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
- $menu ="
-
-
-
- ";
-$lineas .= " $menu$row[control] $listado_campos ";
-
- }
-
-$tabla ="
-
- $listado_nombres
-
- $lineas
-
-
";
-$resultado = "
-$encabezado
-
-
-
-$tabla
-
-
-";
- }
-else {
-$resultado ="
No hay resultados $consulta_limite";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-if($tipo =="csv") {
-$html = str_get_html($tabla);
- // header('Content-type: application/ms-excel');
- // header('Content-Disposition: attachment; filename=sample.csv');
- $nombre_archivo ="tmp/Prueba_Formulario_".mktime()."_".$_SESSION['id'].".csv";
- //$fp = fopen("php://output", "w");
- $fp=fopen($nombre_archivo , "w");
- foreach($html->find('tr') as $element)
- {
- $td = array();
- foreach( $element->find('th') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- if (!empty($td)) {
- fputcsv($fp, $td);
- }
-
- $td = array();
- foreach( $element->find('td') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- fputcsv($fp, $td);
- }
-
- fclose($fp);
-$boton_descarga ="Descargar ";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = " $datos
";
- $div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- if($tipo =="modal") {
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-}
- return $respuesta;
-
-}
-$xajax->registerFunction("consultar_formulario");
-
-
-function datos_array($identificador) {
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$consulta ="SELECT * FROM form_datos WHERE control = '$identificador'
-GROUP BY id_campo ORDER BY timestamp DESC ";
-$sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
-$array = array();
-$array[identificador] = "$identificador";
-while($row = mysqli_fetch_array( $sql ))
- {
- $contenido = remplacetas('form_datos','id',$row[id],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id],'id_campo',"") ;
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- //$array[id_campo] = $row[id_campo];
- $array[$nombre_campo[0]] = "$contenido[0]";
- $array['timestamp'] = "$row[timestamp]";
- $array['proceso'] = "$row[proceso]";
- $array['id'] = "$row[id]";
- $array['orden'] = "$row[orden]";
- //$array[] = $row;
-
-
- }
- return $array;
-}
-
-function parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div){
- $respuesta = new xajaxResponse('utf-8');
-if($campo =="") {
-$resultado = "
-
-
-
- Hiperparametrizador Experimental
-
-
- Descripción
-
-
-
-
-
-";
-return $resultado;
-}
- $link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = '".mysqli_real_escape_string($link,$tabla)."' AND campo ='".mysqli_real_escape_string($link,$campo)."' AND opcion ='".mysqli_real_escape_string($link,$opcion)."' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1 ";
-$sql=mysqli_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = '".mysqli_real_escape_string($link,$tabla)."' , campo ='".mysqli_real_escape_string($link,$campo)."', opcion ='".mysqli_real_escape_string($link,$opcion)."', descripcion ='".mysqli_real_escape_string($link,$descripcion)."', visible='1' , id_empresa = '$_SESSION[id_empresa]'";
-$sql=mysqli_query($consulta,$link);
-if($sql) {
- $resultado = "$descripcion";
- $respuesta->addAssign("$div","innerHTML",$resultado);
-
- }else {
-//$respuesta->addAlert("$consulta");
-}
-//$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("parametrizacion_linea");
-
-function email_contenido($id,$control,$id_campo,$email_envio){
-
-if($email_envio =="") {
- $email = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$id' AND id_campo ='$id_campo' ") ;
- $formulario =
-
- "
- ";
-return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
-
- $validar = validar_email($email_envio);
- if($validar == '0') {
- $respuesta->addAssign("input_email_envio","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('email_envio').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
-
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $propietario[0]" . "\r\n";
-$impresion = formulario_imprimir("$id","$control","email");
-
-$impresion ="
-$encabezado
-$impresion
";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-
-$impresion
-
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]i$control
-Saludos de MILFS
-";
- if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="Se envió un email a $email_envio "; }else {$exito .="error enviando correo";}
-
-$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("email_contenido");
-
-
-function mapa_ficha($id) {
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
- $id_empresa = $id_empresa[0];
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $imagen = " ";
- $datos ="$nombre[0] $descripcion[0] ";
- $empresa = "$razon_social[0] |
$web[0] | $direccion[0] | $email[0]
";
-
- //$prueba = json_decode($prueba);
-
- $resultado ="
-
-
-
-
- $imagen
-
-
-
$nombre[0]
- $descripcion[0]
-
-
-
-
$razon_social[0]
-
MILFS
-
-
-
- ";
- return $resultado;
-}
-
-function formulario_parametrizacion($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($accion =='categorias') {
-
- }
- elseif($accion =='grabar'){
-
- }
- else {
- $listado ="
-
-
-
-
-
-
Parametrización
-
Parametrización del formulario $nombre[0]. Por favor seleccione una opción
-
-
-
-
- ";
- $respuesta->addAssign($div,"innerHTML",$listado);
- return $respuesta;
- }
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "Filtro
-
- Todos ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= " ";
- }
-else{$resultado = 'nada';}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_parametrizacion");
-
-
-
-function lista_categorias($perfil,$categoria,$tipo) {
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
- $categoria_campo = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- if($categoria_campo >0 ) {
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$categoria_campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "";
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $icono = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$row[md5_contenido]'") ;
- if($icono[0] =='') {
- $icon = "$_SESSION[site]milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- $contenido= substr($row[contenido],0, $length = 15);
-$resultado .= "
$contenido ";
- }
-$resultado .= "
";
- }
-else{$resultado = '';}
-}
-return $resultado;
-}
-
-function parametrizacion_categoria($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-$categorias = lista_categorias($perfil,$categoria,$tipo);
-if($accion =='categorias') {
- $resultado = "
-
- La categorización se usa para filtrar los datos de un formulario en categorias que pueden ser usadas por ejemplo para diferenciar los datos en un mapa.
- Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza
- $categorias
-
-
-
-
- Icono para la categoría
-
-
- URL
-
-
-
-
- Grabar
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- $respuesta -> addScript("xajax_formulario_campos_select('$perfil','parametrizacion')");
- return $respuesta;
- }
- elseif($accion =='grabar'){
- if($form[tipo] =='categoria') {
- $url_icon = "$form[icon]";
- $es_imagen = es_imagen("$url_icon");
- $altura = GetImageSize($url_icon);
- $altura= $altura[1];
- if($form[id_campo] =='') { $error = "Seleccione un campo";}
- elseif($form[campo_filtro] =='') { $error = "Seleccione Filtro";}
- elseif(!$es_imagen ) { $error = " [ $url_icon ] no es una imagen válida para el ícono";}
- elseif($altura > 500 ) { $error = " El ícono no debe tener mas de 300 pixeles de alto.";}
- elseif($form[icon] =='') {
- $error = "Escriba la dirección del ícono";
- }
- else {$error='';}
- if( $error !='') {
- $respuesta -> addAlert("$error $revisar_url ");
- return $respuesta;
- }else{
- $categoria_icono[tabla] = "form_id";
- $categoria_icono[campo] = "$form[perfil]";
- $categoria_icono[opcion] = "$form[tipo]:icon:$form[campo_filtro]";
- $categoria_icono[descripcion] = "$url_icon";
- $categoria_icono[visible] = "1";
- $categoria_icono[accion] = "grabar";
- $grabar_icono = parametrizacion($categoria_icono);
-
- $categoria_campo[tabla] = "form_id";
- $categoria_campo[campo] = "$form[perfil]";
- $categoria_campo[opcion] = "$form[tipo]:campo";
- $categoria_campo[descripcion] = "$form[id_campo]";
- $categoria_campo[visible] = "1";
- $categoria_campo[accion] = "grabar";
- $grabar_campo = parametrizacion($categoria_campo);
-
- $categoria_filtro[tabla] = "form_id";
- $categoria_filtro[campo] = "$form[perfil]";
- $categoria_filtro[opcion] = "$form[tipo]:filtro:$form[id_campo]";
- $categoria_filtro[descripcion] = "$form[campo_filtro]";
- $categoria_filtro[visible] = "1";
- $categoria_filtro[accion] = "grabar";
- $grabar_filtro = parametrizacion($categoria_filtro);
-
-
- $resultado =" $form[campo_filtro] $form[id_campo] ($altura ) [$grabar_icono]";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-
- }/// fin de parametrizacion categorias
- }
-}
-$xajax->registerFunction("parametrizacion_categoria");
-
-
-function parametrizacion_plantilla_campos($formulario){
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen =" "; $identificador=" ";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= " $imagen $row[campo_nombre] [$row[id_campo]] ";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-
-
-
-
-
-
-
- $listado
- Fecha
-
-
-";
-}
-return $resultado;
-}
-
-
-function parametrizacion_plantilla($formulario,$div,$valores) {
- $respuesta = new xajaxResponse('utf-8');
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$link=Conectarse();
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-mysqli_query("SET NAMES 'utf8'");
-if($valores =="boton") {
-$consulta ="SELECT * FROM form_parametrizacion WHERE campo = '$formulario' AND `opcion` REGEXP '^plantilla:' ORDER BY opcion";
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campos_opcion = explode(":",$row[opcion]);
- $plantilla_nombre = $campos_opcion[1];
-$listado .= "$row[opcion] ";
-$li .= "
- $plantilla_nombre
-
-
-
- ";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-
-
-
-";
-$lista ="
-
-Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas HTML5 , CSS3 y clases de Bootstrap
-
-
- Nombre
- Editar
- Ver
-
-$li
-
-Nueva plantilla
-";
- $respuesta->addAssign("$div","innerHTML","$lista");
- return $respuesta;
-
-}
-else {
-
-$resultado ="
-
-
-
Aún no se han definido plantillas para este formulario
- Crear una plantilla
-
-
-";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-
-elseif($valores =="formulario" OR is_numeric($valores)) {
- $campos = parametrizacion_plantilla_campos("$formulario");
- $descripcion = remplacetas('form_parametrizacion','id',$valores,'descripcion',"") ;
- $opcion = remplacetas('form_parametrizacion','id',$valores,'opcion',"") ;
- $campos_opcion = explode(":",$opcion[0]);
- $plantilla_nombre = $campos_opcion[1];
- include("includes/bootsrap_class_list.php");
-$resultado ="
-
-
-
-
-
-
-
- A
A
')); \">
-
-
A
-
A
-
div
-
H1
-
H2
-
H3
-
-
<li>
-
-
MB
-
-
-
-
-
- $descripcion[0]
-
-
- $campos
-
-
-
-
-";
-
-}
-
-elseif(is_array($valores)) {
- $texto=str_replace('"',"'",$valores[text_contenedor]);
-$plantilla = htmlentities($texto);
-if($valores[nombre_plantilla] == "") {
- $respuesta->addAlert("No ha especificado un nombre para la plantilla");
- $respuesta->addAssign("input_nombre_plantilla","className","input-group has-error");
- return $respuesta;
- }
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='plantilla:$valores[nombre_plantilla]' LIMIT 1 ";
-$sql=mysqli_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='plantilla:$valores[nombre_plantilla]', descripcion =\"$plantilla\", visible='1' ";
-$sql=mysqli_query($consulta,$link);
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-$datos = contenido_mostrar("$formulario","$ultimo[1]",'',"$valores[nombre_plantilla]");
-$preview = " $valores[nombre_plantilla] $datos ";
- $div_contenido = "$preview
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- $respuesta->addAssign("titulo_modal","innerHTML","$resultado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- return $respuesta;
-
-}
-else{
-$resultado ="";
-}
-$resultado .= "";
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla");
-
-
-function parametrizacion_titulo($formulario,$div,$valores) {
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if($valores =="") {
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "$row[campo_nombre] [$row[id_campo]] ";
-}
-$resultado = "
-
- El campo titulo, se usa como indice del formulario en algunas visualizaciones como el timeline
- Campo de Título actual $campo_titulo_nombre[0] [$campo_titulo[0]]
-
-
- Cambiar campo título
-
-
- $listado
-
-
-
-";
-}
-}else {
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='titulo' LIMIT 1 ";
-$sql=mysqli_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='titulo', descripcion ='$valores', visible='1' ";
-$sql=mysqli_query($consulta,$link);
-if($sql){
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$resultado ="addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_titulo");
-
-
-function mostrar_modal($form,$control,$plantilla){
-$respuesta = new xajaxResponse('utf-8');
-if( $control == "") {
- $datos = formulario_areas($form,"");
-}else {
-$datos = contenido_mostrar("$form","$control",'',"$plantilla");
-}
-$div ="contenido_de_modal";
-
-$resultado = "
-
- $datos
-
-
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_modal");
-
-function portal_filtro_cadena($formulario,$id_campo,$control,$div,$plantilla){
-$cadena = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$formulario' AND id_campo ='$id_campo' ") ;
-$consulta ="SELECT * FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' AND contenido = '$cadena[0]'
- GROUP BY control ORDER BY contenido";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-
- $datos = contenido_mostrar("$formulario","$row[control]",'',"$plantilla");
- if($plantilla == "") {
-$listado .= "
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-
- $listado
-
-";
-}
-
-if ($div ==""){$div="mostrar_contenido";}
-else {$div = "$div";}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("portal_filtro_cadena");
-
-
-
-function portal_filtro_campos($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $formulario_nombre[0] / $campo_nombre[0]
- {json}
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_filtro_campos_select($formulario,$id_campo,$div,$plantilla){
-
-if($id_campo =="") {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- if($id_campo =="") { $resultado = ""; return $resultado;}
- }
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT *
- FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario'
- AND form_campos.id = form_datos.id_campo
- AND form_datos.id_campo = '$id_campo'
- GROUP BY contenido
- ORDER BY contenido";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $campo_nombre[0]
- $listado
-
-";
-}
-$resultado ="
-
- Filtro
- $resultado
-
";
-return $resultado;
-}
-
-
-
-function portal_listado_campos($formulario){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_contenido_campos.orden";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[campo_nombre] ";
-}
-$resultado = "
-
-
- $formulario_nombre[0]
- {json}
- $listado
-
-
-";
-}
-return $resultado;
-}
-
-
-function portal_listado_formularios(){
-
-$consulta ="SELECT * FROM form_id WHERE publico = '1'";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[nombre] ";
-}
-$resultado = "
-
- Set de datos
-
- ";
-}
-return $resultado;
-}
-
-
-function insertar_linea($tabla,$key,$campo,$valor,$control,$orden,$div){
- $respuesta = new xajaxResponse('utf-8');
- $key = limpiar_caracteres($key);
- $valor = limpiar_caracteres($valor);
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
-if($tabla =="form_datos") {
-$consulta = "INSERT INTO form_datos ( orden, timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( '$orden',UNIX_TIMESTAMP(),'$_SESSION[id]','$_SESSION[id_empresa]','$key',$ip ,'$control', '$campo' , '$valor')
- ";
-
-}
-
-
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
-
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
-
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_linea");
-
-
-function select_combo($id,$tabla,$campo_valor,$campo_descripcion,$tipo){
-
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$Campo_descripcion = ucwords($campo_descripcion);
-$Campo_valor = ucwords($campo_valor);
-$nombre=$tabla."_".$campo_valor;
-$div=$nombre."_hijo";
-$combo = $id."_".$tabla;
-if($tipo!=''){
-$respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE $campo_valor = '$tipo' AND id_empresa = '$id_empresa'";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado .= "
$Campo_descripcion
-
";
-$resultado .= " Seleccione $Campo_descripcion ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[$campo_valor] $row[$campo_descripcion] ";
- }
-$resultado .= " ";
- }
-
-
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;}
-ELSE{ /// si no especifica $tipo
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE id_empresa = '$id_empresa' GROUP BY $campo_valor ";
-$sql=mysqli_query($consulta,$link);
-///$Documento=mysqli_result($grupo,0,"documento_numero");
-$resultado = "
$Campo_valor
-
";
- $resultado .= " Seleccione $Campo_valor ";
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "$row[$campo_valor] ";
- }
- }
-$resultado .= "
";
- }/// FIN de $tipo no especifico
-
-return $resultado;
-}
-$xajax->registerFunction("select_combo");
-
-
-
-function crear_session ($form,$control) {
-
-$consulta = " SELECT distinct(id_campo),contenido FROM form_datos WHERE control = '$control' AND form_id = '$form' order by timestamp DESC ";
-$link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql = mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!=0){
- $resultado ="
";
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $id_form = $row[form_id];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre = strtolower( str_replace(' ','_',$campo_nombre[0]));
- $_SESSION[$nombre] = $row[contenido];
- $resultado .= "$_SESSION[$nombre] ";
- }
- $resultado .= " ";
- }
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla,$tipo){
- $resultado="";
- $tipo="$tipo";
- if($form != "") {$id_form = "$form";}else {$id_form ="";}
-
- $impresion = formulario_imprimir("$id_form","$control","$plantilla");
- if($impresion !="") {
- $visitas= contar_visitas($control,'identificador') ;
- $visitas= "
$visitas";
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
- if($tipo=="") {
- $resultado = "
-
- $visitas
-
$nombre[0]
- $descripcion[0]
-
- $impresion
-
-
- "; }else {
-$resultado = "$impresion";
- }
- }else{
-$resultado ="
No hay resultados ";
- }
-
-return $resultado ;
-}
-
-function buscar_campo_nombre($form_id,$nombre) {
-
-$consulta ="SELECT form_campos.id FROM `form_campos` , form_contenido_campos WHERE `campo_nombre` = '$nombre' AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='$form_id' LIMIT 1";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql = mysqli_query($consulta,$link);
- $id_campo=mysqli_result($sql,0,"id");
-return $id_campo;
-}
-
-function conversorSegundosHoras($tiempo_en_segundos) {
- $horas = floor($tiempo_en_segundos / 3600);
- $minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
- $segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
-
- return $horas . ':' . $minutos . ":" . $segundos;
-}
-
-function mensajes($tipo,$campos_form,$datos,$control) {
- $campo_remitente = $campos_form['remitente'];
- $campo_destinatario = $campos_form['destinatario'];
- $campo_asunto = $campos_form['asunto'];
- $campo_mensaje = $campos_form['mensaje'];
- $form_id = $campos_form['formulario_id'];
- $form_usuarios = $campos_form['formulario_usuarios'];
- $campo_usuarios = $campos_form['campo_usuario'];
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='formulario') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
-
-//$campos = formulario_areas($form_id,'campos');
-$control_original = $control;
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
- $respuesta->addAssign("div_mensaje_$control_original","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo =='responder') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
- $remitente = buscar_campo_nombre("$form_id","Para");
- $destinatario = buscar_campo_nombre("$form_id","De");
- $mensaje = buscar_campo_nombre("$form_id","Mensaje");
- $asunto = buscar_campo_nombre("$form_id","Asunto");
-
- $asunto_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$asunto' AND control='$control'") ;
- $mensaje_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$mensaje' AND control='$control'") ;
- $remitente_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$remitente' AND control='$control'") ;
- $destinatario_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$destinatario' AND control='$control'") ;
-
-$formulario ="
-
-
-
-
-
-
-
-
- Asunto
-
-
-
- Mensaje
- $mensaje_value[0]
-
- ";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
-";
- $respuesta->addAssign("div_mensaje_$control","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo=="recuperar") {
-
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
-
- $consulta ="SELECT *, FROM_UNIXTIME(timestamp) as fecha , DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d') as dia, DATE_FORMAT(FROM_UNIXTIME(timestamp),'%H:%i') as hora FROM form_datos WHERE form_id ='$form_id' AND id_campo = '$campo_destinatario' AND contenido ='$_SESSION[usuario_milfs]' GROUP BY control, timestamp order by timestamp DESC ";
-
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-
- $mensajes = mysqli_query($consulta,$link);
-// $destinatario ="$campo_destinatario"."[0]";
-// $para = buscador_campo("$campo_destinatario","$form_id","","$destinatario","","");
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
-
-
-
-$lista ="
-
-
-
-";
-while( $row = mysqli_fetch_array( $mensajes ) ) {
- $asunto = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_asunto' AND control='$row[control]'") ;
- $mensaje = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_mensaje' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_remitente' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_usuarios",'contenido'," id_campo = '$campo_usuarios' AND control='$remitente[0]'") ;
- if($remitente[0] =='') {$remitente[0]="
Sistema";}
- $hoy=date('Y-m-d');
- $control = $row[control];
- if($hoy == $row[dia]){$momento = $row[hora];}else {$momento=$row[dia];}
-//function contenido_mostrar($id,$control,$div,$plantilla)
-//$contenido = contenido_mostrar("$form_id","$control","",'');
- $lista .="
-
- ";
-}
- // $respuesta->addAssign("div_mensaje","innerHTML",$lista);
- $lista .=" ";
- return $lista;
-
-}
-
-$resultado ="hola";
-
- $respuesta->addAssign("div_mensaje","innerHTML",$resultado);
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("mensajes");
-
-function revisar_campo_unico($id,$campo,$id_form,$valor) {
- $respuesta = new xajaxResponse('utf-8');
- $div= "div_$id";
- $existe = remplacetas('form_datos','form_id',"$id_form",'control'," BINARY contenido = '$valor' AND id_campo = '$campo'") ;
- if($existe[0] != "") {
- $texto ="El valor ya existe";
-$respuesta->addAssign("$div","className","text-danger");
-$respuesta->addAssign("input_$id","className","form-group has-error");
- }else{
- $texto ="";
-$respuesta->addAssign("$div","className","text-success");
-$respuesta->addAssign("input_$id","className","form-group has-success");
- }
-
- $respuesta->addAssign("$div","innerHTML",$texto);
- return $respuesta;
-}
-$xajax->registerFunction("revisar_campo_unico");
-
-
-
-function milfs_session($form_id,$campo_usuario,$campo_password,$tipo,$datos){
- $datos = mysql_seguridad($datos);
- $respuesta = new xajaxResponse('utf-8');
-
-if($tipo =="") {
-
-
-
-if($_SESSION[usuario_milfs]) {
- $formulario = "
SALIR";
-}else {
-$formulario ="
-$accion
-
-
-
-";
-
-
-}
-return $formulario;
-}
-elseif($tipo =='salir') {
- session_destroy();
- $respuesta->addScript("javascript:location.reload(true);");
-
-}
-elseif($tipo=='registrarse') {
- $modificable = remplacetas('form_id','id',$id,'modificable') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $formulario = "
Función no disponible, por favor comuníquese con el administrador
";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
- }
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-
-Registrarse
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-$boton
-
-
-";
-
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
- if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-
Usuario
-
-
-
Código de recuperación Deja este campo vacío si aun no tienes el código de recuperación
-
-
-";
-$boton ="
-
Solicitar clave
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-
-$boton
-
-
-
-";
- }else{
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- if($usuario[0] !="") {
- $password = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_password' ") ;
- if($datos[codigo] !="") {
- if( $datos[codigo] =="$password[0]" ){
- $control = remplacetas('form_datos','control',"$usuario[0]",'control'," id_campo = '$campo_password' ") ;
- $campos ="
-
-
-
-
-
-
-
- ";
-
- $formulario ="$campos";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
-
- }else {
- $respuesta->addAlert("El código no es correcto, por favor rectifíquelo o solicítelo nuevamente dejando el campo VACIO");
- return $respuesta;
- }
- }
- $campo_email = buscar_campo_tipo("$form_id","12");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $formulario="$usuario[0] $password[0] // $campo_email[0] $email[0]";
- $email_empresa = remplacetas('empresa','id','1','email','') ;
- $sigla = remplacetas('empresa','id','1','sigla','') ;
- $razon_social = remplacetas('empresa','id','1','razon_social','') ;
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] <$email_empresa[0]>\r\n";
- $headers .= "Reply-To: $email_empresa[0]\r\n";
- $headers .= "Return-path: $email_empresa[0]\r\n";
- $asunto= "[ $sigla[0] ] Código para recuperar contraseña ";
- $cuerpo ="
-
Hola $datos[usuario]
- El código para recuperar tu contraseña es:
-
$password[0]
- Regresa pronto :-)
-
- ";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="
Te hemos enviado un correo a $email[0] con el código de recuperación "; }
- else {$formulario ="
Error enviando correo ";}
-
- }else{
-
- $formulario="
No pudimos encontrar tu usuario $datos[usuario] . Por favor rectifícalo y prueba nuevamente ";
- }
-
-
- }
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='confirmar_recuperar') {
-
- if($datos[password] != $datos[confirmar_password]) {
- $respuesta->addAlert("Los valores no son iguales");
- return $respuesta;
-
- }
- $link=Conectarse();
-
-mysqli_query("SET NAMES 'utf8'");
-
-
-
-
- $consulta="UPDATE form_datos SET contenido = MD5('$datos[password]')
- WHERE control ='$datos[control]'
- AND contenido ='$datos[codigo]'
- AND form_id ='$form_id'
- AND id_campo = '$campo_password' ";
-
- if (mysqli_query($consulta,$link)){
-$resultado ="
Se cambió el password Por favor ingrese con sus nuevos datos
aquí ";
-$respuesta->addAssign("login_div","innerHTML",$resultado);
-return $respuesta;
- };
-
-
-
-}
-
-elseif ($tipo=='ingreso'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $password = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = MD5('$datos[password]') AND id_campo = '$campo_password'") ;
-
-if ( $usuario[0] != "" AND $usuario[0] === $password[0]) {
-$respuesta->addAssign("login_milfs","className"," has-success ");
-$resultado ="$usuario[0] // $password[0] ";
-$_SESSION['usuario_milfs'] = $usuario[0];
-$_SESSION['nombre_usuario_milfs'] = $datos['usuario'];
-$respuesta->addScript("javascript:location.reload(true);");
-}else {$resultado ="
Error Los datos no son correctos :( ";
-$respuesta->addAssign("login_milfs","className"," has-error ");
-}
-
-$respuesta->addAssign("resultado","innerHTML",$resultado);
-//$respuesta->addAlert("resultado");
-
-
-}
-elseif ($tipo=='nuevo'){
-
-$usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-
-$campos_consulta_obligatorio="
- SELECT id_campo, obligatorio
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
- AND obligatorio='1'
- ";
-
-
- $campos_obligados= mysqli_query($campos_consulta_obligatorio,$link);
-
-while( $row = mysqli_fetch_array( $campos_obligados ) ) {
-$campo_valor=$datos[$row[id_campo]][0];
-
-if($row[obligatorio]=='1'){
- $obligatorios .= "$row[id_campo]";
-if($campo_valor == '' && $row[obligatorio]=='1'){
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
-$error = "Revise campos obligatorios $campo_nombre[0]";
-
- }else {$error ="";}
-if($error !=''){
-$respuesta->addAlert($error);
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
- return $respuesta; }
- }
-
-
- }/// fin de registros obligatorios
-
-
-
- $campos_consulta="
- SELECT id_campo, obligatorio, id_empresa
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
-
- ";
- $campos= mysqli_query($campos_consulta,$link);
-$ip = obtener_ip();
-$control = $datos['control'];
-while( $row = mysqli_fetch_array( $campos ) ) {
-$campo_valor=$datos[$row['id_campo']][0];
-$campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
-/// Si el campo es password (18) se guarda su equivalente en md5
-if($campo_tipo[0] =="18") {
- $campo_valor = MD5("$campo_valor");
-}
-if($campo_tipo[0] =="19") {
-$existe = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$campo_valor' AND id_campo = '$row[id_campo]'") ;
-if($existe[0] !='') {
-$respuesta->addAlert("Revise los campos únicos !");
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
-
-
- return $respuesta;
-}else{
-//$respuesta->addAlert("$existe[2]"); return $respuesta;
-}
-}
-
- if ($campo_valor !=''){
-
-$insertar_consulta = "
- INSERT INTO `form_datos`
- SET
- id_campo = '$row[id_campo]',
- contenido = '$campo_valor',
- control ='$control',
- timestamp = UNIX_TIMESTAMP(),
- form_id = '$form_id',
- ip = '$ip',
- id_empresa = '$row[id_empresa]'
- ";
-
-
- }else{
-
-
- }
-
-if ($error ==''){
-$sql_consulta=mysqli_query($insertar_consulta,$link);
-if($sql_consulta){
-$login = milfs_session("$form_id","$campo_usuario","$campo_password","","");
-$resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-
-
- }else{$resultado.= "
La consulta no se grabó
";}
-}else { }
-
- }
- $resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-$respuesta->addAssign("login_div","innerHTML",$resultado);
-return $respuesta;
-
-
-}
-
-else{}
-return $respuesta;
-
-}
-$xajax->registerFunction("milfs_session");
-
-
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- $respuesta = new xajaxResponse('utf-8');
-if($valores =="") {
- $alerta = "
Por favor escriba que desea buscar ";
-$respuesta->addAssign("$div","innerHTML",$alerta);
- return $respuesta;
-}
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form contenido like '%%$valor%%' group by control LIMIT 200 ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=2;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
- /* $contenido = htmlentities($row[contenido]);
- $p = stripos($contenido, $valor);
- $s1 = substr($contenido, 0, $p);
- $s2 = substr($contenido, $p, strlen($valor));
- $s3 = substr($contenido, ($p + strlen($valor)));
- $r = $s1."
$s2 ".$s3;
- */
- $datos = landingpage_contenido_identificador($row['control']);
- //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
$datos
";
-
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor $encontrados ";
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-//mysqli_real_escape_string($link,$consulta);
-$sql_total=mysqli_query($consulta_total,$link);
-$total = mysqli_num_rows($sql_total);
-$sql=mysqli_query($consulta,$link);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = $descripcion[0];
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion";
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
$buscador
-
-
-
- $contenido
-
- Mostrar mas resultados
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-
-function insertar_registro($tabla,$formulario,$div,$principal) {
- //$valores ="$formulario[0]";
- $formulario = limpiar_caracteres($formulario);
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
-
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($insertar,$link);
- $ultimo_id = mysqli_insert_id($link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $valores = limpiar_caracteres("$valores");
- $grupo = editar_campo("$tabla",$ultimo_id,"$principal","","","");
- $respuesta->addAssign($div,"innerHTML","
$formulario[$principal] ");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- //$respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_registro");
-
-
-
-function formulario_area_campos($perfil,$area,$control) {
- $tipo="";
- $control_edit ="$control";
- $solo_campos ="";
- $muestra_form ="";
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} $campos= "";
-
-$consulta = "
- SELECT * FROM form_campos , form_contenido_campos
- WHERE form_contenido_campos.id_form = '$perfil'
- AND form_contenido_campos.id_campo = form_campos.id
- AND campo_area='$area'
- ORDER BY form_contenido_campos.orden";
-
- $link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-
-
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- if( $row['obligatorio'] == '1'){$obligatorio="*";}else {$obligatorio='X';}
-
- if($row['campo_tipo'] =="24") { $row['multiple'] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos .= formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }else{
- $campos .= formulario_campos_render($row['id_campo'],$perfil,$control_edit,'','');
- }
- $muestra_form .= "$campos $obligatorio ";
- $solo_campos .= "$campos $obligatorio ";
-
- }
-
-
-}
-
-
-$resultado = "$muestra_form";
- return $campos;
-
-}
-
-function formulario_areas($perfil,$tipo,$form_respuesta,$control_respuesta){
- $id="";
- $resultado_campos ="";
- $subir_imagen ="";
- $campo_imagen_nombre ="";
- if($form_respuesta =='respuesta'){$control = $control_respuesta;}
- //elseif($form_respuesta =='edicion'){$control = $control_respuesta;}
- else{
-$control = md5(rand(1,99999999).microtime());
-}
- $respuesta = new xajaxResponse('utf-8');
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- /*$consulta = "SELECT * FROM form_areas, form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
- AND form_areas.id = form_campos.campo_area AND form_areas.id_empresa = '$id_empresa'
- OR (form_contenido_campos.id_form = '$perfil' AND form_campos.campo_area ='0' )
- AND form_areas.estado = '1' GROUP BY form_areas.id ORDER BY form_areas.orden";
- */
- $consulta= "SELECT * FROM form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
-
- GROUP BY form_campos.campo_area
- ";
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- //$campo_titulo = remplacetas('parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
- $descripcion = remplacetas('form_id','id',$perfil,'descripcion','') ;
- $formulario_respuesta = remplacetas('form_id','id',$perfil,'formulario_respuesta','') ;
- $empresa = remplacetas('form_id','id',$perfil,'id_empresa','') ;
- $empresa = $empresa[0];
-
- $nombre= strtoupper($nombre[0]);
- $descripcion= $descripcion[0];
- $form_respuesta= $formulario_respuesta[0];
-
-
-//// encabezado form
-
- if($tipo =='edit') {$control= $control_respuesta;}
- elseif($form_respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- //$descripcion=mysqli_result($sql,0,"descripcion");
- //$nombre=mysqli_result($sql,0,"nombre");
- //$empresa=mysqli_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$empresa",'encabezado');
- $pie = empresa_datos("$empresa",'pie');
- $cabecera = "
-
-
-
-
-
-
-
-
$nombre$descripcion
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($perfil,"15");
-if($campo_imagen[0] !="") {
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen_nombre = ucwords($campo_imagen_nombre);
-$campo_imagen = $campo_imagen[0];
- }
-
-if ($campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$perfil","$campo_imagen"."[0]");
-if($tipo != "campos") {
- $imagen = "
-
-
- ";
-
- }else {$imagen =" ";}
- }
-
- $muestra_form = "
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
-
-////fin encabezado form
-
-
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row['campo_area']=="0"){$area_nombre ="";}
- else{
- $area_nombre = remplacetas('form_areas','id',$row['campo_area'],'nombre','') ;
- $area_nombre = $area_nombre[0];
- }
- $fila = $fila +1;
-
- //$producto = remplacetas('farmacia_cum','id',$row[id_producto],'fabricante_importador') ;
- ///// para pasar el parametro de medicamentos al formulario no pos se adiciona ".func_get_arg(2)."
- $campos = formulario_area_campos($perfil,$row['campo_area'],"$control_edit");
-$resultado_campos .= "
-
-$area_nombre
-$campos
- ";
- }
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos
-
- ";
-
-//// fin botonera form
-
- }
-
-//// cierre form
-
-$muestra_form .="
-
-
-
";
-if($tipo=='campos') {
-
- $resultado = "$resultado_campos $imagen ";
- return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-
-";
-return $resultado;
-
-/// fin cierre form
- // $resultado .= "$consulta";
-//$respuesta->addAssign($div,"style.display","block");
-//$respuesta->addAssign($div,"innerHTML",$resultado);
-//return $respuesta;
- //print $muestra_form;
-// return $muestra_form;
- }
-
- $xajax->registerFunction("formulario_areas");
-
-
-
-function tabla_areas($tabla,$value,$descripcion,$onchange,$where,$nombre,$div){
- $group ="";
- if($div =="") {
- $div="div_campos";
- $resultado = "
-
Modificar areas
- ";
- return $resultado;
- }
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$campo3 = $campos[2];
-$campo4 = $campos[3];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="group by $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT * FROM $tabla WHERE 1 $w AND id_empresa='$_SESSION[id_empresa]' $group ORDER BY orden ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-
-$resultado="
-$name
-Id $campo1 $campo2 $campo3 $campo4
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$editar_campo1= editar_campo("$tabla",$row['id'],"$campo1","","","","");
-$editar_campo2= editar_campo("$tabla",$row['id'],"$campo2","","","","");
-$editar_campo3= editar_campo("$tabla",$row['id'],"$campo3","","","","");
-$editar_campo4= editar_campo("$tabla",$row['id'],"$campo4","","","","");
-$eliminar = " ";
-$resultado .= "$row[$value] $editar_campo1 $editar_campo2 $editar_campo3 $editar_campo4 $eliminar ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-
-
-
-
-Agregar área
-
-
-
-
-
-
-
-
-
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("tabla_areas");
-
-
-
-
-function importar_coleccion($form){
-$div ="confirmar_importacion";
-//$archivos = listado_archivos("$form[path]");
-//$archivos = listar_archivos("$form[path]",'cantidad','',$form);
-
- $directorio = opendir("$form[path]"); //ruta actual
-$resultado = " ";
-while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
-{
- if (is_dir($archivo))//verificamos si es o no un directorio
- {
- // $resultado .= "[".$archivo . "]
"; //de ser un directorio lo envolvemos entre corchetes
- }
- else
- {$autor="";
- $ext = explode(".", $archivo);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {
- $cantidad_imagenes++ ;
-
- $exif = leer_exif("$form[path]/$archivo");
- //$name = $exif['exif']['FileName']." ".$form['38']['0']."*" ;
- $form['0']['0'] = "$archivo";
- $autor= $exif['exif']['Artist'];
- $creator = $form['40'][0];
- if($autor !="" ) { $remplazo = array('40' => array("$autor")); }else{ $remplazo; }
-
- }
- //$form = array_replace_recursive($form, $reemplazo);
- $resultado .= $archivo ." / $name ".$form['0'][0]."
";
- }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= "( $c : $V )
";
- if($V != '') {
- }
- }
-}
-}
-*/
-//$resultado="$archivos $campo";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("importar_coleccion");
-
-
-
-
-function listar_archivos( $path ,$opcion, $div,$datos){
- // Abrimos la carpeta que nos pasan como parámetro
-
- $resultado ="";
- //$link = Conectarse();
- $dir = opendir($path);
- $cantidad =0;
- $cantidad_imagenes =0;
-//$datos['61'] = array ( 0 => "otro valor");//"OTRO VALOR";
- if(is_file($path)) {$esarchivo="Escriba la ruta a un directorio en el servidor
"; }
- // Leo todos los ficheros de la carpeta
- //if($esarchivo =="") {
- // $elemento = readdir($dir);
- //}
- while ($elemento = readdir($dir) ){
-
- // Tratamos los elementos . y .. que tienen todas las carpetas
- if( $elemento != "." && $elemento != ".."){
- // Si es una carpeta
- if( is_dir($path.$elemento) ){
- // Muestro la carpeta
- // $resultado .= "
CARPETA: ". $elemento ."
";
- // Si es un fichero
- } else {
- $ext = explode(".", $elemento);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {$cantidad_imagenes++ ;
-
- $exif = leer_exif("$path/$elemento");
- $name = $exif['exif']['FileName'];
- $title= "$name ";
- $date= $exif['exif']['DateTimeOriginal'];
- $autor= $exif['exif']['Artist'];
- if(!isset($autor)) { $autor = $datos['40'][0]; }
- $licencia= $exif['exif']['Copyright'];
- if($licencia ==="") { }
- else{
-// $datos['61'][0]= " XX $licencia XXX";
- }
-
-
- //$datos['61'][0] = $licencia;
- if(isset($exif['exif']['UndefinedTag:0xC4A5'])) {
- $exif['exif']['UndefinedTag:0xC4A5']= base64_encode($exif['exif']['UndefinedTag:0xC4A5']);
- }
- if(isset($exif['exif']['MakerNote'])) {
- $exif['exif']['MakerNote']= base64_encode($exif['exif']['MakerNote']);
- }
- if ( $exif['lon'] =="" )
- {
- $geo = $datos['58'][0];
- $mundo ="";
- $datos['58'][0] = $datos['58'][0];
-
- }
- else {
- $geo = "$exif[lon] $exif[lat] 18" ;//$datos['58'][0];
- $mundo ="
";
- $datos['58'][0]= "$geo";
-
-
- }
-
- // $remplazos = array('40');
- // else { $mapa="";}
- //$json = json_encode($exif['exif'],JSON_PRETTY_PRINT);
- //if ( $exif['lon'] =="" ){$datos['58'][0] = $geo;}else {$datos['58'][0] = $datos['58'][0];}
- $resultado .= "
$geo $mundo / ".$datos['58'][0]." ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]." ";
-
- }
-
- $cantidad ++;
-
- $campo .= "";
-
-
- }
- }
-
- }
-
-
- if($div !="" ) {
- if($opcion == "cantidad") {
- $resultado = "
-
- $esarchivo $cantidad archivos, $cantidad_imagenes imágenes jpg, $mapa georeferenciadas
-
-
";
- }
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }else {
-
-
-
- return " $campo $resultado"; }
-}
-$xajax->registerFunction("listar_archivos");
-
-
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( "$file" );
- $resultado['exif'] = $exif;
- $resultado['file']= $file;
- $resultado['FileName']=$exif['FileName'];
-
-if($exif === false) {
-//return false;
-}
-
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado['lat'] = $gps_latitude;
- $resultado['lon'] = $gps_longitude;
-
- //$resultado = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
- }else{}
-
-}
-
-
- $resultado['DateTime'] = $exif['DateTimeOriginal'];
- $resultado['estado'] = "oK";
-
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-
-function relacion_render($form_id,$id_campo,$valor,$cantidad){
-
-
-
-
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-$link = "
Ver referencia ";
-}
-
- return " $valor_actual $link";
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_render");
-
-function buscador_base($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_base_$name";
-$onchange = " xajax_buscador_select_base('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select_base('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_base");
-
-
-function buscador_select_base($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_base_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $tabla = explode(':',$claves[0]) ;
- $tabla = $tabla[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion1 = explode(':',$claves[2]) ;
- $descripcion1 = $descripcion1[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $descripcion3 = explode(':',$claves[4]) ;
- $descripcion3 = $descripcion3[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT * FROM $tabla WHERE $descripcion1 like '$valor%%' GROUP BY $key limit 50 ";
-
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-//$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-//$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select_base");
-
-
-
-function buscador_campo($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_$name";
-$onchange = " xajax_buscador_select('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_campo");
-
-
-function imprimir_buscador_campo($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function imprimir_base($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $campo1 = remplacetas("$formulario","$key","$valor","$descripcion","");
- $campo2 = remplacetas("$formulario","$key","$valor","$descripcion2","");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function buscador_select($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and (id_campo ='$key' OR id_campo ='$descripcion' )AND contenido like '$valor%%' GROUP BY control limit 50 ";
-
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $campo_key[0] $campo_descripcion[0] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select");
-
-
-
-function relacion_select($id_campo,$form_id,$valor,$name,$control,$tipo){
-$link=Conectarse();
-$valor_actual ="";
-mysqli_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit =="" ) {$limit = 20;}
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_select");
-
-function combo_select($id_campo,$form_id,$valor,$name,$control,$control_combo){
- $selected="";
- $and="";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if($control_combo !="") {
- $div ="combo_$name";
-$and ="AND campo_valor LIKE '$control_combo:%%'";
-}else{
-$onchange ="xajax_combo_select('$id_campo','$valor','$valor','$name','$control',(this.value)) ";
-$div ="combo_$name";
-$name ="primario_$name";
-}
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' $and ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado=" $valor
-Seleccione
- " ;
- // $resultado = array_unique($entrada);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campos = explode(':',$row['campo_valor']);
-
- IF($control_combo ==""){
- $campo_primario[]=$campos[0];
- $campo_primario = array_unique($campo_primario);
- }
- else {
- $campo_primario[] = "$campos[0] $campos[1]";
- }
- //$identificador = $identificador[0];
-//if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-//$resultado .= " $campos[0] ";
- }
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "$V ";
-}
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-if($control_combo =='') {
- return $resultado;
- }
-else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-$xajax->registerFunction("combo_select");
-
-
-function aplicacion_carrusel($nombre,$id,$plantilla){
- if($id =='') {
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- }
- if($nombre =='') {
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre = $nombre[0];
- }
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
- $descripcion = $descripcion[0];
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
- $campo_titulo = $campo_titulo[0];
- $consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
- $link=Conectarse();
- $sql=mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysqli_data_seek($sql, 0);
-// $contenido = "
$nombre[0] ";
-// $contenido .= "
$descripcion[0] ";
-
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- if($orden === 0) {$activo = "active";}else{$activo="";}
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $campo = buscar_campo_tipo($id,"15");
- $id_campo = $campo[0];
- $imagen = remplacetas('form_datos','control',$row[control],'contenido',"id_campo = '$id_campo'") ;
- $items .= "
-
-
- $contenido_desplegado
-
-
";
- $indicador .= "
";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- //$contenido .= "$contenido_desplegado ";
- $orden = ($orden +1 );
- }
-$contenido .= "
-
-
-
$nombre[0] $descripcion[0]
-
-
-
- ";
- //$contenido = " $links
";
- }
-
-
-return $contenido;
-}
-
-
-function formulario_embebido($id){
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
- $impresion = formulario_areas($id,"embebido",'','');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
-
$visitas
- $formulario_nombre[0]$formulario_descripcion[0]
- $impresion
-
-
-
-
-
-
-
";
- return $muestra_form ;
-}
-
-
-function formulario_embebido_ajax($id,$opciones,$tipo){
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
- $respuesta = new xajaxResponse('utf-8');
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "$permiso_identificador
Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
-
-
-
- if($tipo =='edit' AND $_SESSION['id_empresa'] !== $id_empresa[0] AND $permiso_identificador != $opciones) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
- $salir
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- if($tipo=="respuesta") { $form_respuesta = "respuesta";}
- $impresion = formulario_areas("$id","$tipo","$form_respuesta","$opciones");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
$visitas
-
- $impresion
-
-
- ";
- // return $muestra_form ;
-
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- //$div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-
-}
-$xajax->registerFunction("formulario_embebido_ajax");
-
-function formulario_embebido_campos($id,$opcion){
- $impresion = formulario_modal("$id",$form_respuesta,$control,"$opcion");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $muestra_form = "
-
-
$formulario_nombre[0]
-
$formulario_descripcion[0]
- $impresion
-
-
-
";
- return $muestra_form ;
-}
-
-function json($datos){
-if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND
-form_id.publico = '1' "; $w_publico = "WHERE form_id.publico = '1'
-"; }
-else { $publico = "AND form_id.id_empresa = '$_SESSION[id_empresa]'
-"; $w_publico = "WHERE form_id.id_empresa = '$_SESSION[id_empresa]' ";
-}
-$datos = mysql_seguridad($datos);
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-if($datos[id] !=''){
-if($datos[tipo] =='simple') {
-$campos ="control " ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-GROUP BY form_datos.control
-ORDER BY form_datos.timestamp DESC";
-
-$sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysqli_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysqli_fetch_array( $sql ))
- {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $nuevos_datos = $datos;
- $nuevos_datos[identificador]="$row[control]";
- $nuevos_datos[tipo]="array";
- //$features[$row[control]] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- $features[] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-
-if($tipo == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-return $resultado;
-
-}
-else {
-$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo , contenido ,timestamp, control as identificador ,
-form_datos.orden" ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-ORDER BY form_datos.control ,form_datos.timestamp ";
-}
-
-}
-elseif($datos[identificador] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo ,contenido ,timestamp, control as identificador ,
-form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (control = '$datos[identificador]' )
-$publico
-";
-}
-elseif($datos[dato] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, nombre as formulario,
-campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp,
-control as identificador, form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_datos.id = '$datos[dato]' )
-$publico
-";
-}
-else {
-$consulta = "SELECT id as form_id, nombre as form_nombre, descripcion
-as form_descripcion , creacion , publico AS contenido_publico ,
-modificable AS formulario_publico
-FROM form_id $w_publico";
-}
-
-
-$sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysqli_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysqli_fetch_array( $sql ))
- {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $features[] = "$nombre_campo[0] : $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-if($datos[tipo] == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-
-return $resultado;
-}
-
-
-
-
-function imprime_geojson($id,$id2,$plantilla){
- $id_form = mysql_seguridad($id);
- $id_form2 = mysql_seguridad($id2);
- $campo = buscar_campo_tipo($id_form,"14");
- $campo2 = buscar_campo_tipo($id_form2,"14");
- $id_campo = $campo[0];
- $id_campo2 = $campo2[0];
- if($id_form2 !=""){$w_id2 =" OR form_id = '$id_form2'"; $or_2 ="or id_campo = '$id_campo2'";}
-
-$link=Conectarse();
-
- $consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data
-FROM `form_datos`
-WHERE (form_id = '$id_form' $w_id2 )
-AND ( id_campo ='$id_campo' $or_2 )
-group by control
-ORDER BY orden desc";
-//return $consulta;
-
- mysqli_query("SET NAMES 'UTF8'");
- $sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysqli_num_rows($sql)!='0'){
- $id = 1;
- $features = array();
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $marcador = array();
- $propiedades = array();
- $identificador = explode(',',$row[data]);
- $identificador = $identificador[0];
- $campos = explode(" ",$identificador);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- $formulario = formulario_imprimir($row[id],$row[control],"$plantilla");
-
- $marcador["type"] = "Point";
- $marcador["coordinates"] = array($lat,$lon);
- $propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
- //$propiedades[description] ="HOLA MUNDO";
- $propiedades[description] ="
$formulario
";
- $propiedades[sounds] ="";
- $propiedades[url] ='';
- $propiedades[icon][iconSize] =[60,60];
- //$propiedades[icon][shadowSize] =[70,70];
- //$propiedades[icon][shadowUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
-
- //$propiedades[title] ='Hola mundo';
- if($propiedades[icon][iconUrl] =="") {
- $propiedades[icon][iconUrl] = "$_SESSION[site]/milfs/images/iconos/negro.png";
- }
- $geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)."},";
- $features[] = $marcador;
-
- $id++;
- }
-
-}
-//-75.58295 6.25578 16
-
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
- \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
- \"type\": \"FeatureCollection\",
- \"features\": [$geometria ]}";
-return $geometria;
-}
-
-
-function aplicacion_presentacion($id,$div,$timeout){
- if($timeout < '1000') {$timeout =5000;};
- $respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT * FROM form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$control = mysqli_result($sql,0,control);
-$impresion = formulario_imprimir("$id","$control","");
-
- }
-$siguiente = "
SIGUIENTE ";
-if($div ==''){
- $presentacion = "
$siguiente $impresion
";
- }else{
- //$respuesta->addAlert("$consulta");
- $respuesta->addScript("setTimeout(function(){xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout')},$timeout)");
- $respuesta->addAssign("$div","innerHTML","$siguiente $impresion");
- return $respuesta;
- }
-return " $presentacion";
-
-
-}
-$xajax->registerFunction("aplicacion_presentacion");
-
-function aplicaciones_listado($id_form,$tipo,$div){
-
-// if($id_empresa !=''){ $_empresa = " ";}
- //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";}
- if($id_form !="") {$w_form = " AND id = '$id_form'";}
- $w_publico =" publico ='1'";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE $w_publico $w_form ORDER BY orden asc ";
-mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado_li .= "
";
- }else {$resultado_li = "";}
-
-if($tipo =='li') { return $resultado_li.$resultado;}
-elseif($tipo =='nav') { return $resultado_nav;}
-elseif($tipo =='grid') {
-if($div !="") {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado_grid");
- return $respuesta;
- }else{
- return $resultado_grid;
- }
-}
-elseif($tipo =='banner') { return $resultado_banner;}
-elseif($tipo =='carrusel') { return $resultado_carrusel;}
-else {return $resultado;}
-}
-$xajax->registerFunction("aplicaciones_listado");
-
-
-function contenido_aplicacion($id,$plantilla){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
- $control = mysqli_result($sql,0,"control");
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysqli_data_seek($sql, 0);
-
- //$contenido = "
$nombre[0] ";
- $contenido = "
$descripcion[0] ";
-
- $orden = 0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- //return "$row[form_id] $row[control] $plantilla";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado
";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- if($id[0] =="") {$aviso = "
No se ha definido una aplicación con el nombre $nombre ";
- return $aviso;}
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
-
- mysqli_data_seek($sql, 0);
- $contenido = " ";
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado ";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-
-
-function contenido_parallax($id){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- $contenido = "";
- mysqli_data_seek($sql, 0);
-
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- //$orden = $orden+500;
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'','contenido');
-
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $nav_li .="
-
- ";
- $style .=" a[id= '$row[control]']:target ~ #main_$id article.article
- {
- -webkit-transform: translateY(-$orden"."px);
- transform: translateY( -$orden"."px );
- } ";
- $links .= "
";
- $contenido .= "
-
- $contenido_desplegado
-
- ";
- $orden = $orden +800;
- }
- $contenido = "
-
-
- $links
-
-
-
-
- ";
- }
-
-//return " $contenido";
- $respuesta->addAssign("$div","innerHTML","$contenido");
- return $respuesta;
-
-}
-$xajax->registerFunction("contenido_parallax");
-
-function contenido_timeline($id){
-$div = "contenedor";
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- //$contenido = "
-
-
- $parametrizacion
-
-
- $subir_imagen
-
-
- ";
-
- $respuesta->addAssign($div,"innerHTML",$resultado);
-
-}
-
-return $respuesta;
-}
-$xajax->registerFunction("configuracion");
-
-
-function cambiar_imagen($imagen,$tabla,$id) {
- $respuesta = new xajaxResponse('utf-8');
-$link = Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "UPDATE $tabla SET `imagen` = '".$imagen."' WHERE `id` = '$id';";
- $sql_consulta=mysqli_query($consulta,$link);
- if($sql_consulta) {
-if($tabla =='empresa') {
- $respuesta->addAssign("banner","style.backgroundImage","url('images/secure/?file=600/$imagen')");
- $respuesta->addAssign("formUpload","innerHTML","");
-}
-
- //$respuesta->addAlert("$consulta");
-return $respuesta;
-}
-}
-$xajax->registerFunction("cambiar_imagen");
-
-
-
-
-function limpiar_caracteres($valor){
-$b=array("{","}","]","[",";","¡","!","¿","?","'",'"' );
-$c=array(" "," "," "," "," "," "," "," ","'"," ");
-$resultado=str_replace($b,$c,$valor);
-return $resultado ;
-}
-
-function actualizar_campo($tabla,$key,$campo,$valor,$accion,$div) {
- $valor = limpiar_caracteres($valor);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' $accion limit 1; ";
- $sql=mysqli_query($edit,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $respuesta->addAssign($div,"innerHTML",$valor);
- }
- return $respuesta;
-}
-$xajax->registerFunction("actualizar_campo");
-
-
-function eliminar_campo($tabla,$key,$div) {
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $borrar = "DELETE FROM $tabla WHERE id = '$key' limit 1";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($borrar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $respuesta->addAssign($div,"innerHTML","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("eliminar_campo");
-
-
-function insertar_campo($tabla,$formulario,$div) {
- //$valores ="$formulario[0]";
- $nombre = $formulario['nombre'];
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-// $respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_campo");
-
-function insertar_campo_area($tabla,$formulario,$div) {
- //$valores ="$formulario[0]";
- $nombre = $formulario['nombre'];
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- $respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_campo_area");
-
-
-function editar_campo($tabla,$key,$campo,$valor,$accion,$div,$indice){
- $indice=$indice;
- if ( !isset ( $_SESSION['id'] ) ) { return;}
- if($indice =="") {$id = "id";}
- else {$id = "$indice";}
- ////NO SE PUEDE EDITAR EL CAMPO (id )
-
-//
-if(@$div=='') {$div = "div_$tabla".$campo;}
-else {$div = $div;}
- $respuesta = new xajaxResponse('utf-8');
- $valor = limpiar_caracteres($valor);
-
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $consulta = "SELECT $id , $campo AS valor FROM $tabla WHERE $id = '$key' LIMIT 1";
- $sql_consulta=mysqli_query($consulta,$link);
- $Valor = mysqli_result($sql_consulta,0,"valor");
-
-
-if(@$accion == 'cerrar') {
- $campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
-$respuesta->addAssign($div,"innerHTML",$campo);
-return $respuesta;
- }
-elseif($accion=="input") {
- $size= strlen($Valor);
- $placeholder = strtoupper(limpiar_caracteres($campo));
- $rrn = $div;
-if($size < 40) {
-
- $resultado = "
-
- ";
- }else {
- $resultado = "
-
- ";
- }
- }
-elseif($accion== "grabar"){
-
- $edit = "UPDATE $tabla SET $campo = '$valor' WHERE $id = '$key' limit 1; ";
- $sql=mysqli_query($edit,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
- $campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
- $respuesta->addAssign($div,"innerHTML",$campo);
- return $respuesta;
-
-
- }
-
-else{
- if (mysqli_num_rows($sql_consulta)!='0'){
- $valor=mysqli_result($sql_consulta,0,"valor");
-
- /////// campos que no se muestran ///
-if($campo == 'id' OR $campo == 'id_usuario' OR $campo == 'id_grupo') {
-return ;
-}
-
- /////////// campos que se muestran para edicion //////////////
- $title = strtoupper(limpiar_caracteres($campo));
- $div= rand(123,999);
- if($valor =="") {$aviso="
$title ";}else{$aviso ="";}
-$campo ="
-
-
-
- ";
- }
- else {$campo = "";}
-
- return $campo;
-}
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
-}
-
-$xajax->registerFunction("editar_campo");
-
-
-function formulario_imprimir($id,$control,$tipo) {
-$resultado ="";
-$limit ="";
-//if ($timestamp != ""){$where_timestamp = "AND form_datos.timestamp = '$timestamp' ";}ELSE { $where_timestamp = ""; }
-if(is_numeric($tipo)) { $limit = "limit $tipo "; $class= "alert alert-info";}
-//if($control != "") { $w_control = "AND control = '$control' ";}
- $id = mysql_seguridad($id);
- $control = mysql_seguridad($control);
- if($id =="") {
- $id_seguridad = remplacetas('form_datos','control',$control,'form_id','') ;
- $publico = remplacetas('form_id','id',$id_seguridad[0],'publico','') ;
- }else{
- $publico = remplacetas('form_id','id',$id,'publico','') ;
- }
-
- if($publico[0] != "1" and (!isset ( $_SESSION['id']) )) {
- $resultado ="
Acceso restringido Esta aplicación contiene datos privados ( $_SESSION[id] )";
- return $resultado;
-
- }
-
- //if($id !='') {$w_id = "AND form_id = '$id'";}else {$w_id='';}
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos , form_datos
- WHERE form_contenido_campos.id_campo = form_datos.id_campo
- AND form_datos.control = '$control'
- AND form_contenido_campos.id_form = '$id'
- $where_timestamp
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' $where_timestamp GROUP BY id_campo" ;
- }
- $control = mysql_seguridad($control);
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysqli_result($sql,0,"form_id");}
-
-
-
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
-
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- @$multiple =$row['multiple'];
- $campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $contenido_array = $contenido;
- // $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control");
- $md5_contenido = $contenido[4];
- $contenido_original = $contenido[3];
- $contenido = $contenido[3];
-
-
-
-
- if($campo_tipo =='15' AND $tipo==""){if($contenido !=""){
- $contenido = "
-
Mostrar
- "; }else{$contenido="";}}
- elseif($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- @include("includes/datos.php");
- $error_token ="";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; }}
- if($error_token != 1) {
- $url_pin = urlencode("$_SESSION[site]milfs/images/iconos/negro.png");
- $contenido = "
-
-
- "; }else{ $contenido ="
No se ha definido un token de mapbox
";}
- }
- }
- elseif($campo_tipo=='4'){ $contenido = "
$contenido ";}
- elseif($campo_tipo=='18'){ $contenido = "";}
- elseif($campo_tipo=='23'){
- $funcion = remplacetas("form_campos_valores","id_form_campo","$row[id_campo]","campo_valor","");
- eval("\$contenido = ".$funcion[0].";");
- $contenido .= "";
-
- }
- elseif($campo_tipo=='6'){
- $contenido = imprimir_buscador_campo($row['id_campo'],$contenido);
- }
- elseif($campo_tipo=='21'){
- $contenido = imprimir_base($row['id_campo'],$contenido);
- }
- elseif($campo_tipo=='10'){
- $valor_actual = relacion_render("$id","$row[id_campo]",$contenido,'5');
- $contenido = "$valor_actual";}
- elseif($campo_tipo=='5' AND $contenido !=""){
- if($tipo =="") {
- $contenido = trim($contenido); $contenido = "
-
-
-
- ";
- }else {
- $contenido =$contenido;
- }
- }
-
- else {
- $html ="$contenido";
- $contenido = nl2br($html);
- $contenido = Markdown($contenido);
- }
- $campo_nombre = remplacetas('form_campos','id',$row['id_campo'],'campo_nombre','');
- $nombre[$row['id_campo']] = $campo_nombre[0] ;
-////buscar campo imagen
-$campo_imagen = buscar_campo_tipo($id,"15");
-//$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-////
- if($row['id_campo'] == $campo_imagen AND $tipo !="" ){ $contenido = strip_tags($contenido); }
- $campo[$row['id_campo']]=$contenido;
- $campo_400[$row['id_campo']] = substr($contenido,0, $length = 400)."... ";//$contenido;
- $campo_80[$row['id_campo']] = substr($contenido,0, $length = 80);//$contenido;
- $campo_55[$row['id_campo']] = substr($contenido,0, $length = 55);//$contenido;
- $campo_limpio[$row['id_campo']] = $contenido = strip_tags($contenido);
- $fecha = date ( "Y-m-d h:i:s" , $row['timestamp'] );
-
- $campo["md5_".$row['id_campo']]=$md5_contenido;
-
- if($row['id_campo'] == $categoria_campo){
-
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- if($icono[0] =='') {
- //$icon = "http://$_SERVER[HTTP_HOST]/milfs/images/pin.png";
- $url_pin = urlencode("$_SESSION[site]milfs/images/iconos/negro.png");
- $icon = "$_SESSION[site]milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- //$array[icon][iconSize] =[50,50];
-
- }else{}
-
-if($contenido_original !="") {
- //// si el campo es tipo password (18) no se muestra
- if($campo_tipo !='18'){
- if($tipo == "metadatos"){
- $metadatos = " ".date('Y-m-d H:i:s',$contenido_array[1])." id $contenido_array[0] proceso $contenido_array[5] usuario $contenido_array[6] ip ".long2ip($contenido_array[7])." campo $row[id_campo] ";
- }else {$metadatos='';}
- $resultado .= "
-
-
- $campo_nombre[0] $metadatos
- $contenido
- ";
-}
-}
- }
-
- //$resultado .="
";
-//}else {$resultado ="
No se encontraron resultados "; return $resultado;}
-//if($id=="6" OR $id=="10") {
- $plantilla="";
- $class="";
- if($tipo !="" AND (!is_numeric($tipo)) AND $tipo !="metadatos" ) {
-////Usa una plantilla apra cada id
-
-$plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
-$plantilla = $plantilla[0];
-if($plantilla =="") {
-///Usa una plantilla generica por nombre
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = ''") ;
-$plantilla = $plantilla[0];
-//$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = '$id' ") ;
-}
-if($plantilla !='') { $plantilla = html_entity_decode ( $plantilla );}
-/*else {
-$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"") ;
-$plantilla= $plantilla[0];
- }
- */
- }
-if($plantilla != ""){
-eval("\$plantilla = \"$plantilla \";");
- $full =" $plantilla ";
- }else {
- $full= "
$resultado
";
- }
-
- $resultado ="$full";
- return $resultado;
-
-// }else {$resultado ="
No se encontraron resultados "; return $resultado;}
- }else {$resultado =""; return $resultado;}
-}
-
-
-function subir_imagen($respuesta,$id){
-$resultado ="";
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//this.form.taget= 'ventana'; this.form.action = 'destinoEspecial.html'; this.form.submit()"
-$javascript="$_SESSION[url]/includes/upload.php";
-$campo_mapa = buscar_campo_tipo($respuesta,"14");
-$campo_mapa = $campo_mapa[0];
-if ($id ==''){$id='imagen';}
-$size = ($_SESSION['upload_size']*1024*1024)." bytes";
-$resultado ="
-
-
-
-
-
-
-La imagen debe estar en formato .jpg y de tamaño máximo $_SESSION[upload_size] MB ( $size)
-
-";
-return $resultado;
-
-}
-
-
-function formulario_importador($accion) {
-
- if($accion =='') {
- $resultado="
Importador";
-
- return $resultado;
- }
- $respuesta = new xajaxResponse('utf-8');
- $formulariox =formulario_importar('','menu','');
- $resultado="$formulariox
";
- $respuesta->addAssign("contenido","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("formulario_importador");
-
-
-function subir_archivo($perfil){
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-$javascript="includes/upload_archivo.php";
-$resultado ="
-
-
-
-
-Máximo 1MB
-
- ";
-
-
-return $resultado;
-
-}
-
- /*
-function formularios_muestra_listado($formulario){
-
- if($formulario==''){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ";
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado .="
";
- $resultado .= "Seleccionar formulario a importar ";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= " $row[nombre] ";
- }
-
- $resultado .=" ";
- }else {$resultado = "";}
-
- return $resultado;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $subir = subir_archivo($formulario) ;
- $div="importador_select";
- $resultado .= "$subir";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-$respuesta->addAssign("importador_archivo","innerHTML","");
-
-
-
-return $respuesta;
-}
-}
-$xajax->registerFunction("formularios_muestra_listado");
- */
-
-function formulario_importar_subir($formulario){
- $pie="";
- $respuesta = new xajaxResponse('utf-8');
- $formulario_nombre = remplacetas('form_id','id',$formulario,'nombre','') ;
- //$formulario_descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
- $encabezado = "
Importar $formulario_nombre[0] ";
- $subir = subir_archivo($formulario) ;
- $div="contenido";
-
- $muestra_form = "
-
- $subir
-
-
- ";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$encabezado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-return $respuesta;
-
-}
-$xajax->registerFunction("formulario_importar_subir");
-
-
-function formulario_importar($filename,$accion,$perfil){
-$formulario = "";
-$consulta = "";
-$div = "importador_archivo";
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$resultado = "
-
-
-
-
- Importando formulario ";
-$nombre = "/tmp/$filename";
-if($accion == "grabar") {
-}
-if (($handle = fopen($nombre, 'r')) !== FALSE)
- {
- $fila= 0;
- set_time_limit(0);
-while (($datos = fgetcsv($handle,0,"|")) !== FALSE) {
-$numero = count($datos);
-if($fila >=1) {
-$resultado .= "";
-$numero_columna = 0;
-for ($c=0; $c < $numero; $c++) {
-$columna = $datos[$c];
-if($columna !=""){
-if($accion === "grabar"){
-$control=md5($perfil.$fila.time());
-$ip = obtener_ip();
-$graba_ip = " ip = INET_ATON('".$ip."') ";
-$consulta_campos = "INSERT INTO form_datos SET timestamp= '".time()."', id_usuario='$_SESSION[id]',id_empresa='$_SESSION[id_empresa]',form_id ='$perfil',
-$graba_ip ,
-control = '$control', $consulta id_campo = '$campo[$numero_columna]' , contenido = '$columna'";
- // $verificar_campo = formulario_verificar_campo($perfil,$campo[$numero_columna]);
- $elregistro= $campo[$numero_columna];
- //if($verificar_campo == NULL){}else{
- if(is_numeric($elregistro)) { $elregistro =$elregistro;}else {$elregistro = -9;}
- //$verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$elregistro,'campo_nombre','');
- if($campo_existe[0] == ""){}else{
- $sql = mysqli_query($consulta_campos,$link);
- if($sql) {
- $class='success';
- $resultado = "GRABADO $fila".time();
- //$sql_resultado = "oK";
- }
- else {
- $class='danger';
- }
- }
- }
-}
-//$resultado .= "$columna $sql_resultado ";
-$numero_columna ++;
- }
- $resultado .= " ";
- }
- else {
- $resultado .= "";
-
- $posicion = 0;
- for ($c=0; $c < $numero; $c++) {
- $titulo = $datos[$c] ;
- $campo[$posicion] = $datos[$c];
- if(is_numeric($titulo)) { $titulo =$titulo;}else {$titulo = -9;}
- $verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$titulo,'campo_nombre','');
- if($verificar_campo == NULL){$verificar_campo_aviso =" No existe "; $class='danger';
- if($campo_existe[0] !='') { $verificar_campo_aviso =" No está en el formulario ";$class='warning';}
- }
-
- else{$verificar_campo_aviso =""; $class='success';}
-
- $resultado .= "$titulo $campo_existe[0]$verificar_campo_aviso ";
- $posicion ++;
- }
-
-
- $resultado .= " ";
- }
- $fila++;
- }
-
-
- $resultado .= "
-
$fila ".time()." " ;
- }
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}
-
-$xajax->registerFunction("formulario_importar");
-
-
-
-function formulario_verificar_campo($perfil,$id_campo){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM `form_contenido_campos` WHERE `id_form` = '$perfil' AND id_campo='$id_campo'";
-$sql =mysqli_query($consulta,$link);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
-$existe = NULL;
-
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$obligatorio=mysqli_result($sql,0,"obligatorio");
-$existe[]= $control;
-$existe[]= $obligatorio;
-$existe[]= $consulta;
-
-}
-
-return $existe;
- }
-
-function borrar_tmp($div) {
-if($div =='') {
- $div="borra_tmp";
-$resultado ="
Limpiar ";
-
-return $resultado ;
-}
-$dir = "tmp/";
-$ficheroseliminados= 0;
-$handle = opendir($dir);
-while ($file = readdir($handle)) {
- if (is_file($dir.$file)) {
- if ( unlink($dir.$file) ){
- $ficheroseliminados++;
- }
- }
-}
-$fecha = time ();
-$ahora = date ( "Y-m-d h:i:s" , $fecha );
-$resultado ="
$ahora
";
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("borrar_tmp");
-
-
-function formulario_imprimir_linea($id,$control,$tipo) {
- $id = mysql_seguridad($id);
- //if($id !='') {$w_id = "AND form_id = '$id'";}
- $control = mysql_seguridad($control);
-/* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC
- ";
- */
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
-
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
-
-
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysqli_result($sql,0,"form_id");}
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
-
- $titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo = $titulo[0];
-
-$timestamp=mysqli_result($sql,0,"timestamp");
-$fecha = date ( "Y-m-d h:i:s" , $timestamp);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-// $resultado ="
";
- $imagen = formulario_valor_campo("$id","0","","$control");
- $imagen = $imagen[3];
- if($imagen[3] != null AND $tipo !='titulos') {
- $array[image]=$imagen;
- $imagen_icon="secure/?file=150/$imagen";
- $imagen= " ";
-
- }else {$imagen='';}
-$td .= "$imagen ";
-
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- $campo_tipo = remplacetas('form_campos','id',$row[id_campo],'campo_tipo');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $md5_contenido = $contenido[4];
- //md5(binary contenido) as md5_contenido,
- $contenido_original = $contenido;
- //$control = $contenido[0];
- $contenido = $contenido[3];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $campo_nombre[0] =" $campo_nombre[0]";
- if($tipo=="titulos") {
- $contenido = "$campo_nombre[0] ";
- }
- elseif($tipo=="titulos_csv"){
- $csv .= '"'.$campo_nombre[0].'";';
- }
- elseif($tipo=="linea_csv"){
- $csv .= '"'.$contenido.'";';
- }
- elseif($tipo=="array"){
-
- if($row[id_campo] == $titulo){$array[title]=$contenido;}
- if($row[id_campo] == $categoria_campo){
- $array[category]=$contenido;
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- //$icono[0] = $imagen_icon;
- if($icono[0] =='') {
- //$icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $array[icon][iconUrl] = "$icon";
- //$array[icon][iconSize] ="[50,50]";
- //$array[icon][shadowSize] =[70,70];
- //$array[icon][shadowUrl] = "http://$_SERVER[HTTP_HOST]/milfs/images/iconos/sha.png";
-
- }else{}
- $array[$row[id_campo]] = $contenido;
- }
- else{
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
- if($size > $limite) {
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' AND $tipo==""){if($contenido !=""){$contenido = " "; }else{$contenido="";}}
- if($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- require("includes/datos.php");
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/negro.png");
- $contenido = "
-
- ";
- } else { $contenido ='';}
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
- else {$contenido = Markdown("$contenido");}
-
- }
-
-
- if($tipo=="titulos") {
-$td .= " $contenido ";
-
- }else{
-
- $td .= " $contenido ";
- }
- }
-
-if($tipo=="titulos") { $identificador ="Identificador "; }else {$identificador ="$control ";}
- $resultado .="$td $identificador ";
-}
- if($tipo =='titulos_csv' or $tipo=='linea_csv') {
-
-return $csv;
- }
- if($tipo =="array") {
- //$array["title"]="hola mundos";
- return $array;
- }
- return $resultado;
-}
-
-
-// $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-function mostrar_coincidencias_plantilla($id_form,$filtro,$valor,$plantilla) {
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-//mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($consulta,$link);
-$control=mysqli_result($sql,0,"control");
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) )
- {
-$resultado .= contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- }
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias_plantilla");
-
-
-function mostrar_coincidencias($id_form,$filtro,$valor) {
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-//mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) )
- {
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $campos .= " $depliegue ";
-
- }
- $resultado = "
";
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias");
-
-
-function matriz_formulario($formulario,$div,$registros,$pagina,$formato){
- $respuesta = new xajaxResponse('utf-8');
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$md5_filtro = $formulario["campo_filtro"];
-//$formulario = mysql_seguridad($formulario);
-mysqli_real_escape_string($link,$formulario);
-$perfil = $formulario["form_id_id"];
-$filtro = $formulario["campo_filtro"];
-$control = md5(rand(1,99999999).microtime());
-
-$cantidad = formulario_contar($perfil);
-$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_filtro'";}
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{
- $resultado ="
Por favor seleccione un formulario";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-if($cantidad < 1) {
- $resultado ="
-
- El formulario \"$formulario_nombre[0]\" no tiene registros
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
-}
-
-$fecha_inicio = $formulario["inicio"];
-if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
-$fin = $formulario["fin"];
-$id_campo = $formulario["id_campo"];
-$busqueda = $formulario["busqueda"];
-
-if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";}
-if($id_campo ==''){
- $campo ='';
-
- }else{
- if($busqueda =='') {
- $resultado ="
Por favor escriba una palabra para buscar";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
- $campo ="AND id_campo = '$id_campo'";
-
- }
-
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';}
-
-
-
-$consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
- FROM form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_datos.id_empresa = '$_SESSION[id_empresa]'
- $busca
- $perfil
- $campo
- $w_filtro
- AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio')
- AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden";
-
-
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)==0){
- $resultado ="
No hay resultados para la consulta ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
-if (mysqli_num_rows($sql)!=0){
- $total_registros = mysqli_num_rows($sql);
- if($formato=='csv'){
- $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv";
- $boton_descarga ="
Descargar ";
- $archivo_reporte=fopen($nombre_archivo , "w");
- $encabezado =";;Periodo\n;;$inicio\n;;$fin \n ";
- fputs ($archivo_reporte,$encabezado);
- $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n";
- fputs ($archivo_reporte,$titulo);
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) )
- {
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv');
- $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv');
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $linea = $linea."\n";
- $lineas .= $linea;
- }
- $contenido ="$titulo \n $lineas";
- //rewind($archivo_reporte);
- fputs ($archivo_reporte,$contenido);
- $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga);
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
- }
- else{
- $respuesta ="
No hay resultados
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
-
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($consulta_limite,$link);
- if (mysqli_num_rows($sql)!='0'){
- $botones .= "
Limpiar ";
- if($formato!='csv'){
- $botones .= "
- Exportar
- ";
- }
- $paginacion ="";
- $paginacion .= $indice;
- $encabezado = "
-
-
-
$botones $paginacion $total_registros registros
-
-
";
-$fila=0;
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $menu ="
-
-
-
- ";
- $campos .= "
$menu $depliegue ";
- }
- $resultado .="
";
- }else{
- $resultado .="
No hay resultados para la consulta ";
- }
- //$resultado .="$consulta";
-$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado);
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-} $xajax->registerFunction("matriz_formulario");
-
-
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($consulta,$link);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-function formulario_campos_select($perfil,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-
- $categoria = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," opcion = 'categoria'") ;
- $categoria = $categoria[0];
-$resultado = "
Campo
-
- Todos los campos ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-if($div =='') {
- if ($row[id_campo] == "$categoria"){
- $class="active";
- $filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
- }else { $class=""; $filtro ='';}
- $listado .="$row[id_campo] $row[campo_nombre] $filtro ";
- }
- }
-$resultado .= "
-
"; }
-else{$resultado = '';}
-
-if($div =='') {return $listado;}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("formulario_campos_select");
-
-
-function formulario_campos_filtro($perfil,$campo,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
- Filtro
-
- Seleccione ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
";
- }
-else{$resultado = "
No se encontraron resultados
";}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_campos_filtro");
-
-
-//$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo","$id_campo");
-function formulario_consultar($div){
- if($div==''){
- $div = "contenido";
- $resultado = "
Consultas";
- return $resultado;
- }
- $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'",'');
- $fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $peticion = "
-
-
-
-
-
-
-
-
- Formulario
- $formulario
-
-
-
-
-
-
-
-
Consultar
-
-
-";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$peticion);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_consultar");
-
-
-function formulario_campos_procesar($form,$tipo_accion){
- //$form = mysql_seguridad($form);
- $campos_formulario ="";
-$grabar_campos_valores ="";
-$respuesta = new xajaxResponse('utf-8');
-$campo_nombre = $form["campo_nombre"];
-if($campo_nombre =='') {
-$respuesta->addAlert("El Nombre del campo no puede estar vacío");
-$respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
-return $respuesta;
-}
-
-//$campo_nombre = ucfirst(strtolower($campo_nombre));
-@$campo_descripcion = $form["campo_descripcion"];
-@$campo_tipo = $form["campo_tipo"];
-@$campo_area = $form["campo_area"];
-@$misma_area = $form["misma_area"];
-@$campo_orden = $form["campo_orden"];
-@$campo_identificador = $form["campo_identificador"];
-@$activo = $form["activo"];
-@$tipo = $form["tipo"];
-@$editar = $form["editar"];
-@$id_campo_editar = $form["id_campo_editar"];
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-if ($editar == 'editar' AND $tipo_accion =='editar'){
-mysqli_query("
- UPDATE `form_campos`
- SET `campo_nombre` = '$campo_nombre',
- `campo_descripcion` = '$campo_descripcion',
- `orden` = '$campo_orden' ,
- `campo_area` = '$campo_area',
- `campo_tipo` = '$campo_tipo',
- `id_empresa` = '$_SESSION[id_empresa]',
- `activo` = '$activo'
- WHERE `form_campos`.`id` ='$id_campo_editar'
- LIMIT 1");
-$w_campo = "id = '$id_campo_editar'";
-
- }else {
-$id_empresa = $_SESSION['id_empresa'];
-$id_especialista = $_SESSION['id'];
- $buscar_campo_nombre = remplacetas('form_campos','campo_nombre',$campo_nombre,'campo_nombre'," id_empresa = '$id_empresa' AND campo_area = '$campo_area' ") ;
- if($buscar_campo_nombre[0] == $campo_nombre) {
- $respuesta->addAlert("El Nombre del campo ( $campo_nombre ) ya existe en la misma área ");
- $respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
- return $respuesta;
- }
-if($campo_identificador == "") { $campo_identificador = md5($_SESSION['id_usuario']."-".microtime()); }
-$consulta = "
- INSERT INTO `form_campos`
- (`id_especialista`, `campo_nombre`,`campo_descripcion`,`campo_tipo`, `campo_area`, `orden`, `activo`, `identificador`, `id_empresa`)
- VALUES ('$id_especialista','$campo_nombre','$campo_descripcion','$campo_tipo','$campo_area','$campo_orden','1','$campo_identificador','$id_empresa')";
- $sql =mysqli_query($consulta,$link);
- $ultimo_id = mysqli_insert_id($link);
-$w_campo= "identificador = '$campo_identificador'";
-if($sql) {
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'div_campos')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
- $campos_formulario ="
-
-
- El campo se creó con éxito
- Crear un nuevo campo
- Modificar campo $listado_campos
- ";
- if(@$form['agregar_id_form'] !="") {
- $respuesta->AddScript("xajax_agregar_campos('grabar_campos','contenido','$ultimo_id','$form[agregar_id_form]') ");
- ///$respuesta->addAssign("$div","innerHTML",$resultado);
- //return $respuesta;
- }
- }else {$campos_formulario = "
Problemas al grabar el campo $consulta";}
- }
-
-if($id_campo_editar !='' AND $tipo_accion =='editar'){$id_form_campo = $id_campo_editar;}else {
-//$id_form_campo = mysql_insert_id($link);
-$id_form_campo = $ultimo_id;
-}
-//$respuesta->addAlert("( $campo_tipo / $id_form_campo / $ultimo_id / $form[opciones] ) $consulta");
-//$respuesta->addAssign("contenido","innerHTML","$consulta_campos_valores");
-//return $respuesta;
-if($campo_tipo == '23' ){
-$grabar_campos_valores = "(".$id_form_campo.",'".$form[opciones]."')";
-}
-/// separacion por comas
-else {
-$opciones=str_replace(', ',',',"$form[opciones]");
-$opciones = explode(",",$opciones);
-
-foreach($opciones as $c=>$v){
-
- //if($v !='') {$v = ucfirst(strtolower($v));
- if($v !='') {$v = $v;
-
-$grabar_campos_valores .= "( $id_form_campo ,'$v'),";
- }
-
- }
-$grabar_campos_valores =substr ("$grabar_campos_valores",0,-1);
-} /// fin de separacion por comas
-
-$borrar_campos_valores = "DELETE FROM `form_campos_valores` WHERE `id_form_campo` = '$id_form_campo'";
-$consulta_campos_valores = "INSERT INTO form_campos_valores (id_form_campo,campo_valor) VALUES ".$grabar_campos_valores."";
-
- $sql_borrar_campos_valores =mysqli_query($borrar_campos_valores,$link);
- $sql_campos_valores =mysqli_query($consulta_campos_valores,$link);
-
- $campos=mysqli_query("
- SELECT id_form_campo, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, orden
- FROM `consulta_campos` , `tipo_campo`
- WHERE $w_campo
-
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- LIMIT 1");
-
-
-$campos_formulario .= "
";
-while( @$row = mysqli_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "
".$row['orden']."";}
-else{
-$campos_formulario .= "
".$row['orden']." ";
- } }
-
-$respuesta->addAssign("formulario_campos_$misma_area","innerHTML",$campos_formulario);
-return $respuesta;
-}$xajax->registerFunction("formulario_campos_procesar");
-
-function formulario_opciones_select($tipo,$id_campo){
- $valores="";
- $respuesta = new xajaxResponse('utf-8');
- $div = 'opciones_select';
-if($id_campo !=''){
-$consulta= "SELECT * FROM form_campos_valores WHERE id_form_campo = '$id_campo'";
-$link = Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-while( $row = mysqli_fetch_array( $sql ) ) {
- $valores .= "$row[campo_valor],";
- }
- $valores = substr($valores,0,-1);
- }
- }
-if($tipo =='8'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='9'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='16'){
- if($valores =='') {$valores = "1,10";}
-$resultado = "
$valores ";
- }
-elseif($tipo =='17'){
- $resultado ="
";
-}
-else{
-$resultado = "
$valores ";
-}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_opciones_select");
-
-
-
-function crear_campos_formulario($form,$id_form){
- $id_form=$id_form;
- $area="";
- $Campo_tipo_definido="";
- $Tipo_campo="";
- $campo_nombre ="";
- $campo_descripcion ="";
- $editar ="";
-
-$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-if($form['div'] !="") { $div = $form['div'];}else{$div="div_campos";}
-
-@$especialista = $form["id_especialista"];
-@$id_campo_editar = $form["id_campo_editar"];
-$resultado = "
-
-$id_campo_editar";
-$link = Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$capa = "crear_campos_consulta_$area";
-$formulario ="manejo_campos_$area";
-
-if ($id_campo_editar > 0){
-$sql=mysqli_query("SELECT * FROM form_campos WHERE id = '$id_campo_editar' AND activo ='1'");
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .="";
-$campo_descripcion =$row['campo_descripcion'];
-$campo_nombre =$row['campo_nombre'];
-$orden =$row['orden'];
-$especialista =$row['id_especialista'];
-
-$formulario ="manejo_campos_$id_campo_editar";
-$editar="
-
-
-
";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
- }
-
-$Tipo_campo ="
Tipo:
-
";
-$tipos=mysqli_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ");
-while( $row = mysqli_fetch_array( $tipos ) ) {
-
-if($row['id_tipo_campo'] == $Campo_tipo_definido){
-$Tipo_campo .= " > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-
-
-
- Incluir este campo en el formulario actual
-
-
- ";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-
-
";
-$resultado = "
-
-
- Crear un nuevo campo
- $resultado
-
-";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("crear_campos_formulario");
-
-function formulario_crear_campo($area,$campo,$div){
- $campos_formulario="";
- $misma_area="";
-$respuesta = new xajaxResponse('utf-8');
- if($div==''){
- $div = "contenido";
- $cerrar = "
[X] ";
-$resultado = "
Campos ";
-
- return $resultado;
- }
- //$div="div_campos";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta_campos ="SELECT id, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, form_campos.activo, form_campos.campo_tipo
- FROM `form_campos` , `form_tipo_campo`
- WHERE id_empresa = '$_SESSION[id_empresa]' AND id = $campo
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- ORDER BY orden ASC";
- $campos=mysqli_query($consulta_campos,$link);
-if($campo ==''){
-
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'$div')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
-$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-$tabla_campos = campos_tabla('id_especialista','');
-$campos_formulario = "
-
-
-
-
-
-
-
-
-
-
-
-
-
$tabla_campos
-";
-}else{
-$campos_formulario .= "
";
-while( $row = mysqli_fetch_array( $campos ) ) {
-// if($row[campo_tipo] =='8'){
- $respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-// }
- $Tipo_campo ="
Tipo:
-
";
-$tipos=mysqli_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ");
-while( $row_tipo = mysqli_fetch_array( $tipos ) ) {
-
-if($row_tipo['id_tipo_campo'] == $row['campo_tipo'] ){
-$Tipo_campo .= " > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-if($row['activo'] =='1'){$activo = "
Activo: el campo puede ser usado en formularios ";}
-else{$activo = "
Inactivo: El campo NO se usará ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-
-
-
-
-
-
-";
-
- }
- }///fin de edicion
-
-
-
-$respuesta->addAssign($div,"innerHTML",$campos_formulario);
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_crear_campo");
-
-function agregar_campos($tipo,$div,$id,$formulario){
-$respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-if($tipo==''){
- $div="contenido";
-$resultado = " Editar ";
-print $resultado;
-return;
- }
- if($tipo=='consultar_listado'){
- $consulta="SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ASC";
- $sql =mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado .="Formulario: ";
-$resultado .= "Selecciona ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "$row[nombre] ";
- }
-$resultado .=" $cerrar";
- }else {
-$resultado = " No hay formularios para editar
";
- }
- }
-
-if ($tipo=='consultar_campos'){
- $consulta="
- SELECT form_contenido_campos.id_campo, form_contenido_campos.id,
- campo_nombre, obligatorio,control,multiple,form_contenido_campos.orden
- FROM form_contenido_campos, form_campos
- WHERE form_campos.id_empresa = '$_SESSION[id_empresa]' AND form_contenido_campos.id_form = $id
- AND form_contenido_campos.id_campo = form_campos.id
- ORDER BY form_contenido_campos.orden";
- $sql =mysqli_query($consulta,$link);
- $consulta_nombre="SELECT * FROM form_id WHERE id ='$id'";
- $sql_nombre =mysqli_query($consulta_nombre,$link);
- $nombre =mysqli_result($sql_nombre,0,"nombre");
- //if (mysqli_num_rows($sql)!='0'){
-$resultado ="$cerrar$nombre
- ";
-$resultado .= "
-
- Campo
-
-
- Obligatorio
-
-
- Orden
-
-
- Multiple
-
-
- Borrar
-
-
-
";
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- /* $multiple = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = '$row[id]' AND descripcion REGEXP '^multiple:' ") ;
- $multiple = explode(":",$multiple[0]);
- $multiple = $multiple[1];*/
-
- //$multiple = $multiple[0];
-$resultado .= "
-
- $row[id_campo] $row[campo_nombre]
-
-
-
-
-
-
-
";
- }
-
-$consulta_campos_todos ="SELECT form_campos.id, form_campos.campo_nombre, form_campos.campo_descripcion FROM form_campos WHERE form_campos.id_empresa = '$_SESSION[id_empresa]'
- ORDER BY campo_nombre ";
-$sql_consulta_campo =mysqli_query($consulta_campos_todos,$link);
-
-$crear_nuevo ="
-
-
-
-
-
-
-";
- while( $row = mysqli_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "$row[campo_nombre] [$row[id]] ";
- }
-$resultado .="
-
-
-
-$crear_nuevo ";
-
- }/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
- if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado=" Seleccione un campo";}
-else {
-$id_form=func_get_arg(3);
-$consulta = "SELECT id_campo FROM form_contenido_campos WHERE id_empresa = '$_SESSION[id_empresa]' AND id_campo= '$id' AND id_form= $id_form";
-$sql_consulta =mysqli_query($consulta,$link);
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if(mysqli_num_rows($sql_consulta) =='0') {
-$microtime = microtime();
-$consulta_grabar=" INSERT INTO form_contenido_campos (
-`id_campo` ,
-`id_empresa` ,
-`id_form` ,
-`obligatorio`,
-`control`
-)
-VALUES (
-'$id', '$id_empresa', '$id_form', '0', md5('$microtime' + rand())
-)";
-$sql_consulta_grabar =mysqli_query($consulta_grabar,$link);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_form')");
-return $respuesta;
- }else{
-$div='atencion';$resultado=" El campo ya pertenece a esta consulta ";
- }
- }
-
- }///fin de grabar_campos
-
-if($tipo=='eliminar'){
-$confirmar=func_get_arg(3);
-
-
-if($id==''){
-$id_c=func_get_arg(4);
-$capa_original=func_get_arg(5);
-$resultado = "
- Seguro que desea eliminar el campo de esta consulta?
- [SI]
- [NO]
-
- ";}
- else{
- if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "
-
- ";
- }else{
-$consulta="DELETE FROM `form_contenido_campos` WHERE `control` = '$confirmar' LIMIT 1";
-$sql_consulta_eliminar = mysqli_query($consulta,$link);
-$div=func_get_arg(5);
-$id_consulta=func_get_arg(4);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_consulta')");
-
- }
- }
-
- }/// fin de eliminar
-if($tipo == 'obligatorio'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `obligatorio` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($consulta,$link);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-if($tipo == 'orden'){ /// orden
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `orden` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($consulta,$link);
-$a =" $id
- ";
-
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-
-if($tipo == 'prellenado'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `consulta_tipo_campos` SET `prellenado` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($consulta,$link);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de oprellenado
-$respuesta->addAssign($div,"style.display","block");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("agregar_campos");
-
-function formulario_nuevo($formulario,$div){
- $resultado ="";
- $formulario = mysql_seguridad($formulario);
- $respuesta = new xajaxResponse('utf-8');
- //$formulario=mysqli_real_escape_string($link,$formulario);
- $id_empresa= $_SESSION['id'];
- if($div==''){
- $div = "contenido";
-
-$resultado .= " Formulario ";
-
- return $resultado;
- }
-if($formulario ==''){
- $formulario_nombre = "nuevo_formulario";
- $formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-
-Crear un formulario
-
- Nombre para el formulario
-
-
-
- Descripción
-
-
-
- Formulario anidado con:
- $formulario_respuesta
-
-
- Grupo:
-
-
-
-
- Privado
-
- Público
-
-
-
-
-
- Grabar
-
-
- ";
-
- }else{
-$control = md5(rand(1,99999999).microtime());
-
-$nombre = $formulario['nombre']; // aa
-$descripcion = $formulario['descripcion']; // dxddc
-$publico = $formulario['publico']; // dxddc
-$grupo = $formulario['grupo'];
-$id_empresa = $_SESSION['id_empresa'];
-
-if($publico =='') {$publico ='0';}
-$propietario= $_SESSION['id'];
-$formulario_respuesta = $formulario['formulario_respuesta']; // dxddc
-$link=Conectarse();
-@$formulario=mysqli_real_escape_string($link,$formulario);
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-VALUES ('$nombre', '$descripcion', '1', '1', '$publico', '$propietario','$formulario_respuesta','$id_empresa');";
-$sql=mysqli_query($consulta,$link);
-$ultimo_id = mysqli_insert_id($link);
- if($grupo !="") {
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo' ,id_empresa= '$id_empresa'";
- $sql_grupo=mysqli_query($consulta_grupo,$link);
- }
-
-$respuesta->addscript("xajax_formulario_listado('','contenido'); ");
-}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_nuevo");
-
-
-function formulario_listado($filtro_grupo,$div){
- $item="";
- $grupo_formularios="";
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} if($div==''){
- $div = "contenido";
- if(isset($_SESSION['grupo_formularios'])) { $sesion_grupo_formularios = $_SESSION['grupo_formularios'];}else { $sesion_grupo_formularios = "";}
-$resultado = " Formularios ";
-
- return $resultado;;
- }
-$control = md5(rand(1,99999999).microtime());
-$respuesta = new xajaxResponse('utf-8');
-$_SESSION['grupo_formularios'] = $filtro_grupo;
-
-$link=Conectarse();
- $id=mysqli_real_escape_string($link,'$id');
-mysqli_query("SET NAMES 'utf8'");
-if($filtro_grupo =="") {
-$consulta = "SELECT * FROM form_id WHERE id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
- }
-else {
-$consulta = "
-SELECT * FROM form_id, form_grupo
-WHERE form_grupo.id = form_id.id
-AND form_grupo.grupo = '$filtro_grupo'
-AND form_id.id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
-}
-$sql=mysqli_query($consulta,$link);
-if($filtro_grupo !="") {
- $leyenda_filtro_grupo ="Grupo $filtro_grupo ";
-
- }else{ $leyenda_filtro_grupo ="Formularios "; unset($_SESSION['grupo_formularios']);}
-$resultado_link = " Formularios ";
-$respuesta->addAssign("link_formulario","innerHTML",$resultado_link);
-
-
-$divider = 1;
-$columnas = intval(12/$divider);
- $listado_grupos = select_empresa('form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","AGRUPADO",'','',"$id_empresa");
- $listado_grupos ="
-
- Seleccione un grupo de formularios
- $listado_grupos
-
-
- ";
-
- $nuevo_formulario = "
- ";
- $resultado = "
-
- $nuevo_formulario
-
-
- $listado_grupos
-
- $leyenda_filtro_grupo
-
- ";
-
-if (mysqli_num_rows($sql)!='0' ){
- $i =0;
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- $id= $row['id'];
- $C = $id;
-
- $cantidad = formulario_contar($row['id']);
- if($cantidad >0) {$cantidad ="Llenado: $cantidad veces ";}else{$cantidad = "";}
- $propietario = remplacetas('usuarios','id',$row['propietario'],'email',"") ;
- $estado = remplacetas('form_id','id',$id,'publico',"") ;
- $nombre_formulario = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion_formulario = remplacetas('form_id','id',$id,'descripcion',"") ;
- $estado = "
-
- Contenido privado
-
- Público
-
- ";
- $modificable = remplacetas('form_id','id',$id,'modificable',"") ;
- $modificable = "
-
- Formulario privado
-
- Público
-
- ";
-
-
- $primer = formulario_uso("$id",'','primer') ;
- if(@$primer[0] !='') {$primer = "Primer registro: ".date ( "Y-m-d h:i:s" , $primer[0])." ";}else{$primer='';}
- $ultimo = formulario_uso("$id",'','ultimo') ;
- @$ultimo_control = $ultimo[1];
- if(@$ultimo[0] !='') {$ultimo = "Último registro: ".date ( "Y-m-d h:i:s" , $ultimo[0])." ";}else{$ultimo='';}
-
- $nombre = editar_campo("form_id",$row['id'],"nombre","","","","");
- $orden = editar_campo("form_id",$row['id'],"orden","","","","");
- $descripcion = editar_campo("form_id",$row['id'],"descripcion","","","","");
- $geo = buscar_campo_tipo($id,"14");
- $email_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- $mensaje_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
- if($geo[0] !='') { $mapa= " Mapa ";}else {$mapa='';}
-
- if($i % $divider==0) {
-
-//$item .= "";
- }
- $i++;
- $grupo_actual = remplacetas('form_grupo','id',$row['id'],'grupo',"") ;
- if(is_null($grupo_actual[3])) {
- $valores_grupo['id']=$row['id'];
- $valores_grupo['grupo']="";
- $grupo = "
-
- ";
- // $grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }else
- {
- $grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
- }
-
-$item .= "
-
-
-
-
-
-
-
- Creación: $row[creacion] / $propietario[0]
- $cantidad
- $ultimo
- $primer
- $mapa
-
-
-
-
-
$row[id]
-
-
-
-
-
-
-
-
-
-
-
-
Agregar o quitar campos
-
-
-
-
-
-
-
- Nombre: $nombre
- Descripción: $descripcion
- Orden: $orden Grupo: $grupo
-
-
-
Mensaje de respuesta
-
-
$mensaje_envio[0]
-
Soporta CSS3, HTML5 y Bootstrap
-
Grabar y previsualizar
-
-
-
-
-
Previsualización
-
- $mensaje_envio[0]
-
-
-
-
-
-
-
-
-
-
- $estado
-
-
- $modificable
-
-
-
-
-
- ";
-
-
- if($i%$divider==0) {
- $item .= "
";
- }
-
- }
-
-
- //$resultado .="";
- }
-
-
-else{ $resultado .= "
Aún no se han diseñado formularios ";}
-
- $resultado_formulario ="
-
- $item
-
";
- $resultado = "$resultado $resultado_formulario ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_listado");
-
-function formulario_eliminar($id,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre_form = $nombre[0];
- if($tipo =='') {
-$resultado =" ";
-}elseif($tipo=='cancelar') {
- $resultado =" Eliminar ";
-}elseif($tipo =='eliminar'){
-$consulta = "DELETE FROM form_id WHERE form_id.id = '$id' ";
-$link=Conectarse();
- $sql=mysqli_query($consulta,$link);
- if($sql) {
- $respuesta->addAlert("Se eliminó el formulario \" $nombre_form \" ");
- $respuesta->addAssign("panel_$id","innerHTML","");
- return $respuesta;
-
- }
-}
-else {}
-$respuesta->addAssign("eliminar_$id","innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_eliminar");
-
-
-function campo_multiple($id_campo,$id_form,$control,$item){
-//if ( !isset ( $_SESSION['id'] ) ) { return;}
-
- if($item==''){$item=1;}
- $id= $item;
-$render = formulario_campos_render($id_campo,$id_form,$control,$item+1);
- $ingredientes = "
-
- $render
-
-
-
-
- ";
- $boton= "
- Agregar campo
-
";
-$div = "id_campo_$id_campo"."_".$id;
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$ingredientes);
-$respuesta->addAssign("boton_".$id_campo."","innerHTML","$boton ");
-return $respuesta;
-
-}
-$xajax->registerFunction("campo_multiple");
-
-
-function formulario_campos_render($id_campo,$id_form,$control,$item,$id_dato){
-$cols ="";
-$style="";
-$campo_multiple="";
-$render="";
-
-$consulta ="
- SELECT *
- FROM form_contenido_campos,form_campos, form_tipo_campo
- WHERE form_contenido_campos.id_form = '$id_form'
- AND form_contenido_campos.id_campo = '$id_campo'
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = form_campos.campo_tipo ";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0'){
- if($id_dato !='') {
- $value = remplacetas('form_datos','id',$id_dato,'contenido'," control = '$control'") ;
- $multiple='0';
- $esta_editando =1;
- }
- else {
- $value = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$control'") ;
- $multiple=mysqli_result($sql,0,"multiple");
- }
- if($item=='') {$item ="0";}else {$item=$item;}
-
- if($value[0] !='') {$value= "$value[0]";}ELSE{$value='';}
- $campo_nombre=mysqli_result($sql,0,"campo_nombre");
- $campo_descripcion=mysqli_result($sql,0,"campo_descripcion");
- $campo_tipo_accion=mysqli_result($sql,0,"tipo_campo_accion");
- $campo_obligatorio=mysqli_result($sql,0,"obligatorio");
- if($campo_obligatorio =='1') {$obligatorio ="danger";}else{$obligatorio ="default";}
-
- if($campo_tipo_accion == 'text'){$render = " ";}
- elseif($campo_tipo_accion == 'date'){$render = " ";}
- elseif($campo_tipo_accion == 'rango'){
- $rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = $rango;}
- elseif($campo_tipo_accion == 'mapa'){
- $lat="";
- $lon="";
- $zoom="";
- if($value !=""){
-
- $campos = explode(" ",$value);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- if($lat =="") {
- $localizacion = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- //$render= $localizacion[0];
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
-
- }
- }
- $render .= "
-
-
-
-
-
- ";
- $cols='12';
- }
-elseif($campo_tipo_accion == 'email'){$render = "
-
- Escriba un email válido
";}
- elseif($campo_tipo_accion == 'envio'){$render = "
-
- Se enviará un email
";}
- elseif($campo_tipo_accion == 'textarea'){
- $render = " $value ";
- $cols='12';
- }
- //$subir_imagen = subir_imagen('');
- elseif($campo_tipo_accion == 'imagen'){
- $style ="display:hidden";
- // $gps = leer_exif($file);
- $render= " "; //subir_imagen('',$id_campo[$item]);
- $cols='12'; }
-
- elseif($campo_tipo_accion == 'html'){
- $render = "
-
- $value ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'limit'){
- $limite = limite("".$id_campo."[".$item."]",'','limite');
- $rows = ceil($limite / 50 )+1;
- $render = "$limite /
-
-
- $value
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'select'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select "; $cols='12'; }
- elseif($campo_tipo_accion == 'radio'){
- $select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_campos'){
- //radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control)
- $campos_valores = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $mensaje = remplacetas('form_campos','id',$id_campo,'campo_descripcion',"") ;
- $campos = explode(":",$campos_valores[0]);
- $titulos = explode(";",$campos[0]);
- $campos_incluidos = explode(";",$campos[1]);
- for($i=0;$i$campos_incluidos[$i] ";
- //$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "
-
-
-
- $mensaje[0]
- $listado_titulos
- $listado_campos
-
-
-
";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_linea'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = " ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'checkbox'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = checkbox_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";}
- elseif($campo_tipo_accion == 'combo'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = combo_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'relacion'){
- $select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'buscador'){
- $select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'base'){
- $select = buscador_base($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";}
- elseif($campo_tipo_accion == 'vinculado'){
- $vinculado = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $select = formulario_areas($vinculado[0],'campos');
- $render = "
- $select
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'number'){
- $render = "
-
- (solo números)
";}
-
- elseif($campo_tipo_accion == 'password'){
- if( $control != "") {
- $render="";$label=""; $campo_tipo_accion="oculto";
- }else {
- $render = "
-
- ";
- }
- //else {}
- $cols='12'; }
- elseif($campo_tipo_accion == 'unico'){
- $render ="
-
";
- }
- else{$render = " ";}
- if($multiple =='1'){
-
-
- $campo_multiple = "
-
- ";
-}
- if($item == 0) { $label = " $campo_nombre ";}
- else {$label = "$campo_nombre $campo_obligatorio ";}
- ///// CAMPOS QUE NO SE MOSTRARAN
- if($campo_tipo_accion == 'imagen'){
- $label="";
- $campo_descripcion="";
- }
- if($cols =="") {$cols = "6";}
- $input = "
-
-$campo_multiple
- ";
-
-
-if($campo_tipo_accion != "oculto") {
- $input= $input;
- }else { $input ="";}
-
- }
- return $input;
-}
-
-
-function validar_email($email) {
-
-if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
- return 1;
-}else{
- return 0;
-}
-}
-
-function formulario_valor_campo_ORIGINAL($perfil,$id_campo,$valor,$id_control){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$valor=mysqli_real_escape_string($link,$valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-$consulta = "SELECT * FROM `form_datos` WHERE `form_id` = '$perfil' AND id_campo='$id_campo' $valor AND `control` = '$id_control' ORDER BY timestamp DESC limit 1";
-$sql =mysqli_query($consulta,$link);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$timestamp=mysqli_result($sql,0,"timestamp");
-mysqli_data_seek($sql, 0);
-if($cant === 1) {
- $contenido=mysqli_result($sql,0,"contenido");
- }else {
-while( $row = mysqli_fetch_array( $sql ) ) {
- $contenido .= "$row[contenido] ";
- }
- }
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = $contenido;
-}
-return $existe;
- }
-
-
-
-function formulario_valor_campo($perfil,$id_campo,$valor,$id_control,$orden){
-$contenido="";
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-$campo_multiple = remplacetas("form_contenido_campos","id_campo",$id_campo,"multiple"," id_form ='$perfil'");
-$tipo_campo = remplacetas("form_campos","id","$id_campo","campo_tipo","");
-$campo_multiple = $campo_multiple[0];
-if($tipo_campo[0] =="24") {$campo_multiple = "1";}
-/// SI EL CAMPO ES MULTIPLE O CHECK BOX MUESTRA LAS MULTIPLES ENTRADAS
-if($campo_multiple !="1" ){ $limite =" asc limit 1 ";}else {$limite =" asc ";}
-if(@$orden !=""){ $campo_orden =" AND orden ='$orden' ";}else {$campo_orden ="";}
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$valor=mysqli_real_escape_string($link,$valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-/*
-$consulta = "SELECT * FROM `form_datos`
-WHERE `form_id` = '$perfil'
-AND id_campo='$id_campo' $valor
-AND `control` = '$id_control' $campo_orden
-GROUP BY orden
-ORDER BY timestamp $limite ";
-*/
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$perfil'
- AND id_campo ='$id_campo' $valor
- AND control ='$id_control' $campo_orden
- group by orden
- ORDER BY orden $limite";
-
-$sql =mysqli_query($consulta,$link);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$timestamp=mysqli_result($sql,0,"timestamp");
-$orden=mysqli_result($sql,0,"orden");
-$id_usuario=mysqli_result($sql,0,"id_usuario");
-$ip=mysqli_result($sql,0,"ip");
-mysqli_data_seek($sql, 0);
-$md5_contenido = "";
-if($cant === 1) {
- //$contenido=mysqli_result($sql,0,"contenido");
- $identificador=mysqli_result($sql,0,"identificador");
- $identificador = explode(',',$identificador);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $md5_contenido = $contenido_campo[3];
- //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
- //$md5_contenido = $md5_contenido[0];
- $contenido = "$contenido_campo[0] ";
- }else {
-while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_campo[0] ";
- }
- }
-// $contenido .="$consulta";
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = "$contenido";
-$existe[] = $md5_contenido;
-$existe[] = $orden;
-$existe[] = $id_usuario;
-$existe[] = $ip;
-}
-return $existe;
- }
-
-function formulario_grabar($formulario) {
- $debug="";
- $respuesta = new xajaxResponse('utf-8');
- $datos="";
- $envio="";
- //$formulario = mysql_seguridad($formulario);
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
- $consulta_grabada ='0';
- $control = $formulario['control']; //
- $form_id = $formulario['form_id']; //
- $tipo = $formulario['tipo']; //
- if(@$formulario['imagen'] !=''){$formulario[0][0] = $formulario['imagen'];}
-
- $consulta_form = "SELECT * FROM form_contenido_campos,form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$form_id' ";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-// $sql=mysqli_query($consulta_form,$link);
-
-// if (mysqli_num_rows($sql)!='0'){
-// mysqli_data_seek($sql, 0);
-// while( $row = mysqli_fetch_array( $sql ) ) {
-
-
-//////
- if(isset ( $_SESSION['id_empresa'])){$id_empresa = $_SESSION['id_empresa']; }else{
- $id_empresa = remplacetas('form_id','id',$formulario['form_id'],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- }
-foreach($formulario as $c=>$v){
-
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if($V != '') {
-
-
-
-$datos .= "$$c = \$formulario['$c'][$C]; // $V /$campo_tipo[0]
";
- if($campo_tipo[0] =='12' OR $campo_tipo[0] =='13') {
- $validar = validar_email($V);
- if($validar == '0') {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }else {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- }
- }
- if($campo_tipo[0] =='3' ) {
- $validar = is_numeric($V);
- if(is_numeric($V) ) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
- }else{
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] solo acepta valores numéricos");
- return $respuesta;
- }
- }
-
- if($campo_tipo[0]=='17') {
- $limite = limite("$c",'','limite');
- $size= strlen($V);
- $restante = ($limite - $size);
- if( $restante < 0) {
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] no debe tener mas de $limite caractéres, sobran $restante");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
- }
-
-
-
- }
-else{ //busca campos vacios
-
-$campo_obligatorio = remplacetas("form_contenido_campos","id_campo",$c,"obligatorio","id_form = '$formulario[form_id]'");
-if($campo_obligatorio[0] =='1'){
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] es obligatorio");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
-
-}
-
-$md5 = md5($V);
-$igual = formulario_valor_campo("$form_id","$c","$md5","$formulario[control]","$C");
-$existe = formulario_valor_campo("$form_id","$c","","$formulario[control]","$C");
-//$valor_anterior .= $existe[3]."| ";
-$debug .= "$existe";
-if(!is_null($existe) AND $tipo =='edit' AND $V =='') {
- $consulta_vacio ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysqli_query($consulta_vacio,$link);
- if($sql) {
- $consulta_grabada ='1';
- }
-}
-if(is_null($igual) ){$repetido = 0;}else{
-$repetido = 1;
-}
-
-
-//return $respuesta;
-//$respuesta->addAlert("$debug");
-//return $respuesta;
-$debug .= "V = $V /$c /$repetido / $igual ";
-if(($V !='' ) && (is_numeric($c)) AND $repetido !=1 ) {
-//$debug = "Hola mundo";
- $V = mysqli_real_escape_string($link,$V);
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
-
-if(@$campo_tipo[0] =="18") {
- $V = md5("$V");
-}else{$V=$V;}
-
-
- $consulta ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '".@$_SESSION[id]."', '$V', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysqli_query($consulta,$link);
- $debug .= "$consulta = $sql ,";
- if($sql) {
- $consulta_grabada ='1';
- }
- }
-
- } ///fin del array
-
- }///fin del array primario
- else {
- if($v !='') { //$datos .= "$$c = \$formulario['$c']; // $v
";
- }
- }
- }
-
-
-
-
-// }
-// }
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX" )
-{
- $exito ="
-
- $formulario[mensaje]
-
- ";
- $mail = '1';
- }
- elseif($tipo == "solocampos" ){
-
-
- $exito ="
-
- $formulario[mensaje]
-
- ";
-
- $mail='0';
- }
- else{
- $campo_envio = buscar_campo_tipo($formulario['form_id'],"13");
- if($campo_envio[0] != "") {
-$envio = email_contenido("$formulario[form_id]","$formulario[control]","$campo_envio[0]",'');
- }
-
-if($tipo = "embebido") {
-$otro_formulario ="
-
- Llenar otro formulario
-
-";
-}else {
- $otro_formulario = "
-
- Llenar otro formulario
-
-
- ";
-}
-$impresion = formulario_imprimir("","$formulario[control]","preview");
-$mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
-//$impresion = mostrar_identificador($formulario['control']);
- $exito ="
-
- $mensaje_agradecimiento[0]
-
-
- $impresion
-
-
- Gracias por llenar el formulario $formulario[form_nombre]
-
-
- $otro_formulario
-
-
- $envio
-
-
-
";
-
-// $mail ='1';
- }
-
-//if($mail =='1') {
-
- //$propietario = remplacetas('form_id','id',$formulario[form_id],'propietario',"") ;
- //$propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $email_envio = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($email_envio[0] !="") {
- $impresion = formulario_imprimir("","$formulario[control]","preview");
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$formulario[form_id],"nombre","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0]" . "\r\n";
-
-$asunto= "$nombre_formulario[0]";
-$cuerpo ="
-$mensaje_agradecimiento[0]
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]i$formulario[control]
-Saludos de MILFS
-";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $exito .=""; }else {$exito .="error enviando correo";}
- //$exito .= "$email[0] $headers ";
- }
- /// }
- $respuesta->addAssign("div_$control","innerHTML","$exito ");
- return $respuesta;
- }else{
- $mensaje ="
-
-
Todo bien pero al parecer no se moficaron registros ";
- $respuesta->addAssign("div_$control","innerHTML","$mensaje");
- }
-//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
-return $respuesta;
-}
-$xajax->registerFunction("formulario_grabar");
-
-function mysql_seguridad($inp) {
- if(is_array($inp))
- return array_map(__METHOD__, $inp);
-
- if(!empty($inp) && is_string($inp)) {
- return str_replace(array('\\', "\0", "'", '"', "\x1a"), array('\\\\', '\\0', "\\*", "\\*", '\\Z'), $inp);
- }
-
- return $inp;
-}
-
-function formulario_campos_render_multiple($id_campo,$id_form,$control,$item) {
-
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$id_form'
- AND id_campo ='$id_campo'
- AND control ='$control'
- group by orden ORDER BY orden asc";
- $link=Conectarse();
- //$resultado .= "$consulta";
- mysqli_query("SET NAMES 'utf8'");
- $sql =mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0' ){
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- //$identificador = $row[identificador];
- $resultado .= $identificador;
- $resultado .= formulario_campos_render($row[id_campo],$id_form,$control,$row[orden],$identificador);
- $item = $item + 1;
- }
- }
- $resultado .= formulario_campos_render($id_campo,$id_form,'',$item,'');
-
- return $resultado;
-}
-
-
-
-function formulario_modal($id,$form_respuesta,$control,$tipo) {
-
- $respuesta = new xajaxResponse('utf-8');
- $solo_campos ="";
- $subir_imagen ="";
-
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
- $formulario_respuesta = formulario_respuesta("$id","$control");
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"",'') ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = "$formulario_respuesta";
- $pie .= empresa_datos("$id_empresa",'pie');
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $cabecera ="".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
-
- $nuevo_formulario = "Llenar otro formulario ";
-if($control !='' AND $tipo =='' ) {
- $impresion = formulario_imprimir("$id","$control","");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $muestra_form = "$impresion
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $modificable = remplacetas('form_id','id',$id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
-
-$consulta = "
- SELECT * FROM form_id, form_contenido_campos
- WHERE form_id.id = form_contenido_campos.id_form
- AND form_id.id = '$id' ORDER BY form_contenido_campos.orden ASC
- ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- $descripcion=mysqli_result($sql,0,"descripcion");
- $nombre=mysqli_result($sql,0,"nombre");
- $id_empresa=mysqli_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera = "
- $salir
-
-
-
-
-
-
-
-
-
$nombre $descripcion
-
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($id,"15");
-@$campo_imagen_nombre = $campo_imagen[1];
-@$campo_imagen = $campo_imagen[0];
-
-
-if (@$campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$id","$campo_imagen"."[0]");
- }
- $muestra_form = "
-
-
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {
-
- //if(null === @$_SESSION['id'] AND $permiso_identificador != $control) {
- if($_SESSION['id_empresa'] !== $id_empresa AND $permiso_identificador != $control) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
-
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //// si no esta logueado nose puede editar ////
- $control_edit = "$control";
-
- }else {$control_edit = "";}
-
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas("form_campos","id","$row[id_campo]","campo_tipo","");
- //if($tipo_campo[0] =="24") { $row[multiple] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos = formulario_campos_render_multiple($row['id_campo'],$id,$control_edit);
- }else{
- $campos = formulario_campos_render($row['id_campo'],$id,$control_edit,'','');
- }
- $muestra_form .= "$campos ";
- $solo_campos .= "$campos ";
- }
- $muestra_form .="
-
- ";
- }
-
-$muestra_form .="
-
-
-
";
- $muestra_form = "$muestra_form
";
-if($tipo=='campos') {
- return $solo_campos;
-}
-if($tipo=='embebido') {
- return $muestra_form;
-}
-
-$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
-$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
-$respuesta->addAssign("pie_modal","innerHTML","$pie");
-$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-//$respuesta->addscript("$('textarea').markdown({autofocus:false,savable:false})");
-//$respuesta->addscript("$(document).ready(function () { $(\"#24[0]\").cleditor(); })");
-//$(document).ready(function () { $("#input").cleditor(); });
-
-
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_modal");
-
-
-
-function limpia_div($capa){
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($capa,"style.padding","0px");
-$respuesta->addClear($capa,"innerHTML");
-
-return $respuesta;
-}$xajax->registerFunction("limpia_div");
-
-
-function select_key($tabla,$key,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$key;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-$resultado="
-Seleccione
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_empresa($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor,$id_empresa){
- $w ="";
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE id_empresa = '$id_empresa' $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado="
-Seleccione
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row['campo_valor'] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= " $row[campo_valor] ";
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-
-
-function radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-$valor = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-$nombre_linea = mysqli_result($sql,0,"campo_nombre");
-$descripcion_linea = mysqli_result($sql,0,"campo_descripcion");
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor[0]"){$selected="checked";}else{$selected ="";}
-$lineas .= " $row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-
-function radio_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-$nombre_linea = mysqli_result($sql,0,"campo_nombre");
-$descripcion_linea = mysqli_result($sql,0,"campo_descripcion");
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$lineas .= "$row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-function radio_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado="
-
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$resultado .= " $row[campo_valor]
";
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function checkbox_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
- $name = explode("[",$name);
- $name = $name[0];
- $fila="0";
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' and contenido ='$row[campo_valor]' ");
-
- $nombre= "$name"."[".$fila."]";
-//if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-if($value[0] ==="$row[campo_valor]"){$selected="checked";}else{$selected ="";}
-$resultado .= "
-
-
- $row[campo_valor] $selected
-
-
";
- $fila++;
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function rango($tabla,$campo,$key,$valor,$selected,$nombre,$onchange){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT min($campo) as min , max($campo) as max FROM $tabla WHERE $key ='$valor' ";
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
- $min=mysqli_result($sql,0,"min");
- $max=mysqli_result($sql,0,"max");
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-$resultado="
- $min
-
- $max $selected
-
" ;
-
-
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function limite($id_campo,$contenido,$tipo){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT campo_valor FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
- $limite=mysqli_result($sql,0,"campo_valor");
-
- }else{}
- if($tipo =='limite') { return $limite;}
-$respuesta = new xajaxResponse('utf-8');
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("limite");
-
-function confirma_campo($valor_1,$valor_2,$campo,$campo_confirmacion){
- $respuesta = new xajaxResponse('utf-8');
- $pos = strpos($campo,"email");
-
-if($pos == "") { //// si no es un email
- }
- else {//// si es un email se revisa
- $email = validar_email("$valor_1");
- if($email === 0 ) {
- $respuesta->addAssign("$campo","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("El email no es valido ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- return $respuesta;
- }
- else{
- }
- }
-
-
-
- if($valor_1 != $valor_2){$resultado = "Los valores NO son iguales";
- $respuesta->addAlert("$resultado");
- /// $respuesta->addAssign("$campo","style.color","red");
-
-
- $respuesta->addAssign("$campo","value","$pos");
- $respuesta->addAssign("$campo_confirmacion","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- // document.getElementById('mobileno').focus();
-
-
- }else{
- //$respuesta->addAssign("$campo_confirmacion","style.color","green");
-
- $respuesta->addAssign("$campo","className"," form-control ");
- $respuesta->addAssign("$campo_confirmacion","className"," form-control ");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-success ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-success ");
- }
- return $respuesta;
-}
-$xajax->registerFunction("confirma_campo");
-
-
-function validar_campo($valor,$campo,$tabla,$div,$id){
-$valor = mysql_seguridad($valor);
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta="SELECT $campo FROM $tabla WHERE $campo = '$valor' LIMIT 1";
-$sql =mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0' ){
-$verificacion = "atencion"; $existe='';
-
-$respuesta->addAssign($campo,"value","");
-///$respuesta->addAlert("El valor $valor $existe existe");
-$resultado = "Grrr $valor $existe existe ";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else {$verificacion ="check"; $existe='NO';}
-$resultado = "Ok, buen $campo ! ";
-$respuesta->addAssign("$id","style.backgroundColor","#CBE7CB");
-//$resultado .= "$valor,$campo,$tabla,$div";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-
-return $respuesta;
-}
-$xajax->registerFunction("validar_campo");
-
-
-function comprobar_email($email,$tipo,$campo){
-$email = mysql_seguridad($email);
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='tercero') {$id_campo='tercero_email';}
-
-
-else{$id_campo = 'email';}
-
-if($campo !=''){
-$id_campo="$campo";
-}
-
-
-if ($email == "" AND $tipo==''){
- $respuesta->addAlert("El campo email es obligatorio ");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- return $respuesta;
- }
-
- $mail_correcto = 0;
- //compruebo unas cosas primeras
- if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
- if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
- //miro si tiene caracter .
- if (substr_count($email,".")>= 1){
- //obtengo la terminacion del dominio
- $term_dom = substr(strrchr ($email, '.'),1);
- //compruebo que la terminación del dominio sea correcta
- if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
- //compruebo que lo de antes del dominio sea correcto
- $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
- $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
- if ($caracter_ult != "@" && $caracter_ult != "."){
- $mail_correcto = 1;
- }
- }
- }
- }
- }
- if ($mail_correcto AND $tipo=='' )
- {
-$consulta= "SELECT email FROM usuarios WHERE email = '$email' LIMIT 1 ";
- $link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-$revisa=mysqli_result($sql,0,"email");
-if ($revisa != ''){
-
- $respuesta->addAlert("$email: ya está registrado ");
- $respuesta->addAssign("email","style.color","red");
- $respuesta->addAssign("email","value","");
- return $respuesta;
- }
- $respuesta->addAssign("email","style.color","green");}
- elseif ($mail_correcto AND $tipo==='revisar' ) {
- $revisar = remplacetas("usuarios","email",$email,"email","");
- if($revisar[0] != '') {
-
- $respuesta->addAssign("$campo","style.color","white");
- $respuesta->addAssign("$id_campo","style.backgroundColor","green");
- }else{
- $respuesta->addAlert("$email: No existe en el sistema)");
- $respuesta->addAssign("$campo","value","");
- }
- return $respuesta;
- }
-
- elseif ($mail_correcto AND $tipo==='tercero' ) {
- $documento = remplacetas("terceros","email",$email,"documento","");
- if($documento[1] =='') { /// si el tercero NO existe
-
- }else { /// si el tercero existe en el sistema
-
- $tipo_persona = remplacetas("terceros","id",$documento[1],"tipo_persona","");
-
- if($tipo_persona[0] =='1') {
- $razon_social = remplacetas("terceros","id",$documento[1],"razon_social","");
- $resultado .= " $razon_social[0]] Nit: $documento[0]";
- } else {
- $primer_nombre = remplacetas("terceros","id",$documento[1],"p_nombre","");
- $segundo_nombre = remplacetas("terceros","id",$documento[1],"s_nombre","");
- $primer_apellido = remplacetas("terceros","id",$documento[1],"p_apellido","");
- $segundo_apellido = remplacetas("terceros","id",$documento[1],"s_apellido","");
- $resultado .=" \r $primer_nombre[0] $segundo_nombre[0] $primer_apellido[0] $segundo_apellido[0] \r Documento: $documento[0]";
- }
-
- $respuesta->addAlert("$email: $resultado");
- $respuesta->addAssign("tercero_documento","value","$documento[0]");
- $respuesta->addAssign("tercero_primer_nombre","value","$primer_nombre[0]");
- $respuesta->addAssign("tercero_segundo_nombre","value","$segundo_nombre[0]");
- $respuesta->addAssign("tercero_primer_apellido","value","$primer_apellido[0]");
- $respuesta->addAssign("tercero_segundo_apellido","value","$segundo_apellido[0]");
- $respuesta->addAssign("tercero_razon_social","value","$razon_social[0]");
- $respuesta->addAssign("tercero_id","value","$documento[1]");
-
- }
-
- }
- else
- {$respuesta->addAlert("$email: no es un correo válido");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("comprobar_email");
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-
-function milfs(){
- $crear_campos = formulario_crear_campo('','','');
- $listado = formulario_listado('','');
- //$consultas = formulario_consultar('','');
- $importador = formulario_importador('');
- $limpiar_cache = borrar_tmp('');
- $configuracion= configuracion('');
-
- $login = login_boton('');
- $menu =
-"
-
-
-
- $crear_campos
-
- $listado
-
-
- $configuracion
-
-
-
-
-
";
-
- return $menu;
-}
-function url_existe($url)
-{
- $handle = @fopen($url, "r");
- if ($handle == false)
- return NULL;
- fclose($handle);
- return $url;
-}
-function es_imagen($url)
- {
- $imageSizeArray = getimagesize($url);
- $imageTypeArray = $imageSizeArray[2];
- return (bool)(in_array($imageTypeArray , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG )));
- }
-function parametrizacion($array) {
- //return $array;
- $link=Conectarse();
- mysqli_real_escape_string($link,$array);
- $accion = $array[accion];
- $tabla = $array[tabla];
- $campo = $array[campo];
- $opcion = $array[opcion];
- $descripcion= $array[descripcion];
- $visible= $array[visible];
- $id= $array[id];
-
- if($accion =='grabar'){
- $consulta= "INSERT INTO form_parametrizacion set tabla='$tabla', campo ='$campo',opcion ='$opcion' , descripcion ='$descripcion' ,visible='$visible'";
- }
- // return $consulta;
- $sql=mysqli_query($consulta,$link);
- if($sql){return "Campo grabado"; }else{return "";}
-
-}
-
-?>
\ No newline at end of file
diff --git a/milfs/funciones/funciones.filtros.php b/milfs/funciones/funciones.filtros.php
deleted file mode 100644
index d1b1031..0000000
--- a/milfs/funciones/funciones.filtros.php
+++ /dev/null
@@ -1,13687 +0,0 @@
-
- Eliminar gráfica
-
- ";
-}else {$resultado="";}
- return $resultado;
-}elseif($accion =="eliminar") {
-
-$borrar= parametrizacion_linea("$tipo","$id_form",'ocultar',"$id_campo",'','',"$id_campo");
-//$resultado="$id_campo $borrar ";
-$div="contenedor_grafica_$tipo_$id_campo";
-}else{}
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-
-}
-$xajax->registerFunction("formulario_estadistica_ocultar");
-
-
-
-function formulario_estadistica($id_form,$id_campo,$group,$tipo){
-$mostrar = remplacetas("form_parametrizacion",'item',"$id_campo",'descripcion',"opcion = 'ocultar' AND tabla = '$tipo'") ;
-if($mostrar[0] !="") {
-
- $contenido ="";
- return $contenido;
-}
-
-$consulta = "SELECT count(control) as cantidad , id_campo ,contenido FROM `form_datos`, `form_campos` WHERE `form_datos`.id_campo = `form_campos`.id AND `id_campo` = '$id_campo' AND `form_id` = '$id_form' GROUP BY $group order by cantidad";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
-
- if (mysqli_num_rows($sql)!='0'){
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- $dato[] =$row;
- $lineas .="$row[cantidad] $row[contenido] ";
- }
- $datos= json_encode($dato);
-
- $resultado ="
-
- $row[cantidad] $row[contenido]
- $lineas
-
-
- ";
- $manejo_grafica = formulario_estadistica_ocultar("$id_form","$id_campo","","$tipo");
-$grafica ="
-
-
-
-";
-
- }
- return $grafica;
-
-}
-
-function formulario_acciones($id) {
- // $areas = resumen_identificador("$row[control]",'','','boton');
- $geo = buscar_campo_tipo("$id","14");
- $buscador = buscar_datos("*formato*","$id","grid","mostrar_contenido_buscador");
- if($geo[0] !='') {
- $mapa= "Mapa
- {GEOJson}
- ";}else {$mapa='';}
-$acciones="";
-return $acciones;
-
-}
-
-function filtro_opciones_campo($id_campo,$formulario){
-$consulta = "SELECT * FROM `form_campos_valores` WHERE `id_form_campo` = '$id_campo'";
-
- $link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $opciones .="
- $row[campo_valor]
- ";
-
-}
-$opciones ="
- Limpiar
- $opciones
-";
-
-}
-
-return $opciones;
-}
-
-function filtro_generico_buscar($formulario,$id){
-$div ="mostrar_resultado";
-$resultado .="";
-foreach ($formulario as $clave => $valor) {
- if($valor !=""){
- $campo = str_replace("filtro_", "", "$clave");
- $resultado = " id_campo = $campo AND contenido = '$valor' ";
- $campos[] = $resultado;
- }
-
-}
-$campos= implode(" AND ",$campos);
-
-$consulta ="SELECT * FROM form_datos WHERE form_id ='$id' AND $campos GROUP BY control";
-$resultado = "$consulta";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-
-}
-$xajax->registerFunction("filtro_generico_buscar");
-
-
-function filtro_generico($formulario,$tipo){
-
-$filtro="";
-$consulta= "
- SELECT campo_nombre,tipo_campo_nombre ,campo_tipo ,id_campo
- FROM `form_contenido_campos` , form_campos , form_tipo_campo
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo= form_campos.campo_tipo
- AND `id_form` = '$formulario'
- AND (`campo_tipo` = 8 OR `campo_tipo` = 16 OR `campo_tipo` = 24 OR `campo_tipo` = 25 OR `campo_tipo` = 10)
- group by form_contenido_campos.id
- ORDER BY form_contenido_campos.orden ";
-
- $link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado = filtro_opciones_campo($row[id_campo],$formulario);
- $filtro .="
-
-
-
- $row[campo_nombre]
-
-
-
-
-
- ";
-
-}
-$filtro= "
-
-
- $filtro
-
-
- ";
-
-}
-return $filtro;
-}
-
-function portal_filtro_campos_drop($formulario,$id_campo,$div,$plantilla){
-$listado="";
-if($id_campo =="") {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- if($id_campo =="") { $resultado = ""; return $resultado;}
- }
- $tipo_campo = remplacetas('form_campos','id',"$id_campo",'campo_tipo',"") ;
- if($tipo_campo[0] =="10" ) {$tipo ="relacion";}else{$tipo ="";}
- /// $valor_actual = relacion_render("$id","$row[id_campo]",$contenido,'5');
-
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT *
- FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario'
- AND form_campos.id = form_datos.id_campo
- AND form_datos.id_campo = '$id_campo'
- GROUP BY contenido
- ORDER BY contenido";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($tipo =='relacion') {
- ///($form_id,$id_campo,$valor,$cantidad)
- $valor_actual = relacion_render("$formulario","$id_campo","$row[contenido]",'0','relacion_drop');
- }
- else {
- $valor_actual="$row[contenido]";
- }
-
-$listado .= " $valor_actual ";
-}
-
-}
-/*$resultado ="
-
- Filtro
- $resultado
-
";
- */
- $resultado="
-
-
- Filtro $campo_nombre[0]
-
-
-
-
- ";
-
-return $resultado;
-}
-
-function drop($tabla,$value,$descripcion,$onchange,$where,$nombre){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$lis="";
- mysqli_query("SET NAMES 'utf8'");
- $consulta = "SELECT *,$value, $descripcion FROM $tabla WHERE 1 $group ORDER BY $campo1 ";
- $sql=mysqli_query($consulta,$link);
-
- if (mysqli_num_rows($sql)!='0'){
- while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[$value]=="") {$resultado.="";}else{
- $mostrar_id = "[$row[$value]]";
- $lis.= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
- $resultado="
-
-
- $nombre
-
-
-
-
- ";
- }
- else{
- $resultado = " No hay resultados
";
- }
-return $resultado;
-}
-
-
-
-function contenido_presentacion($id){
- $imagen ="";
- $acciones ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $campo_filtro ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $href_4="";
- $href_5="";
- $listado_nombres ="";
- if(isset($_REQUEST['orden'])) { $orden= "$_REQUEST[orden]";}
- if(isset($_REQUEST['registros'])) { $registros= "$_REQUEST[registros]";}
- if(isset($_REQUEST['pagina'])) { $pagina= "$_REQUEST[pagina]";}
- if(isset($_REQUEST['v'])) { $origen= "$_REQUEST[v]";}
- //$campo_orden = remplacetas('form_parametrizacion','campo',"$form",'descripcion'," tabla='form_id' and opcion = 'orden'") ;
- //$campo_orden = $campo_orden[0];
-
-
-
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-
- $campo_orden = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = 'orden'") ;
- $campo_orden = $campo_orden[0];
-
-
-
-if($orden == "" ) { $ordenar= "ORDER BY form_datos.id DESC ";}
-elseif($orden == "ASC" ) { $ordenar= "ORDER BY form_datos.id ASC "; }
-else{}
-
-
- if($campo_orden !="") {
- $consulta = "
- SELECT control,id,form_id,contenido FROM form_datos
- WHERE form_id = '$id' AND id_campo ='$campo_orden'
- GROUP BY form_datos.control
- ORDER BY CAST(contenido AS SIGNED ) $orden ";
- }else {
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control $ordenar";
- }
-
-
-//$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control $ordenar";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- //$contenido = "/* HOJA DE ESTILOS CSS ACTUAL */
- $css_adicional[0]
-
-
-";
-}
-return $resultado;
-
-}
-
-function mas_visto($tipo,$limite,$divider) {
-$resultado= "";
-$contenido= "";
-
-if($divider =="" ) { $divider =4;}
-$cols = (12/$divider);
-$titulo[]="";
- if($tipo =="ultimos") {
- $titulo="LO ÚLTIMO";
- $consulta ="SELECT * FROM `form_datos`, form_id WHERE `form_datos`.form_id = form_id.id AND form_id.publico = '1' GROUP BY form_datos.control ORDER BY form_datos.timestamp DESC LIMIT $limite";
- }
- elseif($tipo =="aleatorios" ){
- $tipo = "ultimos";
- $titulo="TE INTERESA";
- $consulta ="SELECT * FROM `form_datos`, form_id WHERE `form_datos`.form_id = form_id.id AND form_id.publico = '1' GROUP BY form_datos.control ORDER BY RAND() LIMIT $limite";
- }
- else{
- $consulta ="SELECT * FROM `form_parametrizacion` WHERE `opcion` LIKE '$tipo' ORDER BY CAST(descripcion AS SIGNED ) DESC LIMIT $limite";
- }
-$link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
- if($sql){
- if (mysqli_num_rows($sql)!='0'){
- if($tipo =='identificador') {
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- $formulario = remplacetas('form_datos','control',"$row[campo]",'form_id',"") ;
- $formulario_titulo = remplacetas('form_id','id',"$formulario[0]",'nombre',"") ;
- $campo_imagen = buscar_campo_tipo("$formulario[0]","15");
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario[0],'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[campo]' ") ;
- $titulo = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[campo]' ") ;
- if($titulo[0] =="") {
- $titulo = remplacetas('form_datos','control',$row['campo'],'contenido'," id_campo != '$campo_imagen[0]' ") ;
- }
- //$impresion = mostrar_identificador("$row[campo]","","landingpage","","");
- $contenido .= "
-
-
-
-
-
-
- $formulario_titulo[0]
- $row[descripcion]
-
- $titulo[0]
-
-
- ";
- }
- $resultado = "
- LO MAS VISTO
- $contenido
- ";
- }
- elseif($tipo =='formulario') {
- while( $row = mysqli_fetch_array( $sql ) ) {
- $formulario_titulo = remplacetas('form_id','id',"$row[campo]",'nombre',"") ;
- $formulario_empresa = remplacetas('form_id','id',"$row[campo]",'id_empresa',"") ;
- $empresa_logo = remplacetas('empresa','id',"$formulario_empresa[0]",'imagen',"") ;
-
- $contenido .= "
-
-
-
-
-
-
- $formulario_titulo[0]
- $row[descripcion]
-
- $titulo[0]
-
-
- ";
-
- }
- $resultado = "
- PROYECTOS MAS ACTIVOS
- $contenido
- ";
-
- }
- elseif($tipo =='ultimos') {
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- //$formulario = remplacetas('form_datos','control',"$row[control]",'form_id',"") ;
- //$formulario_titulo = remplacetas('form_id','id',"$formulario[0]",'nombre',"") ;
- $campo_imagen = buscar_campo_tipo("$row[form_id]","15");
- $campo_titulo = remplacetas('form_parametrizacion','campo',$row['form_id'],'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo_post = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
- if($campo_imagen[0] =="") {
- $imagen = remplacetas('empresa','id',"$row[id_empresa]",'imagen',"") ;
- }else{
- $imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[control]' ") ;
- if($imagen[0]=="") {
- $imagen = remplacetas('empresa','id',"$row[id_empresa]",'imagen',"") ;
- }
- //$impresion = mostrar_identificador("$row[campo]","","landingpage","","");
- }
- $contenido_campo =strip_tags($row['contenido']);
- $maximo ="50";
- $size= strlen($contenido_campo);
- if($size > $maximo) {
- $contenido_campo =substr($contenido_campo,0,$maximo)."... ";
- }
- $contenido .= "
-
-
-
-
-
-
- $titulo_post[0]
- $row[nombre]
-
- ";
- }
- $resultado = "
- $titulo
- $contenido";
- }
- else{}
-
- }
- }
-
-
-return $resultado;
-}
-
-function social_login($accion,$servicio,$uid) {
- $resultado="";
- require ("milfs/includes/parametrizacion.php");
- $control_uid = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$uid' AND id_campo = '$social_login_uid'") ;
- $control_servicio = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$servicio' AND control = '$control_uid[0]'") ;
- $usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_usuario'") ;
- $nombre_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido"," id_campo = '$login_campo_nombres'") ;
- $avatar_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_avatar'") ;
-
- if($accion == "consultar") {
-
- if($control_servicio[0] != "") {
- $resultado ="Existe $control_servicio[0] ";
- }
- else {
- $resultado ="";
- }
- }
- elseif($accion =="login") {
- if($control_servicio[0] != "") {
- $_SESSION['usuario_milfs'] = "$usuario[0]";
- $_SESSION['id'] = "$usuario[0]";
- $_SESSION['nombre_usuario_milfs'] = "$nombre_usuario[0]";
- $_SESSION['control_usuario_milfs'] = "$control_servicio[0]";
- $_SESSION['avatar_usuario_milfs'] = "$avatar_usuario[0]";
-
- header("Location: ./");
- die();
- }
- else{
- session_destroy();
- header("Location: ./");
- die();
- }
-
-
-
- }
- else{}
-
-return $resultado;
-
-}
-
-
-function campo_privacidad($opcion,$id_campo,$form,$accion) {
- //return $array;
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-$respuesta = new xajaxResponse('utf-8');
- if($accion =='grabar'){
- $limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$form' AND descripcion='$id_campo' AND opcion like 'privacidad:%' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1 ";
- $sql=mysqli_query($limpiar,$link);
-
- $consulta= "INSERT INTO form_parametrizacion set tabla='form_id', campo = '$form', opcion ='privacidad:$opcion' , descripcion ='$id_campo' ,visible='0', id_empresa = '$_SESSION[id_empresa]'";
- }
- // return $consulta;
- $sql=mysqli_query($consulta,$link);
- if($sql){
- if($opcion == '1') { $mensaje = "El campo ahora es privado y NO se mostrará su contenido";}
- else { $mensaje = "El campo ahora ES PÚBLICO y SE MOSTRARÁ su contenido";}
- //$respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- $respuesta->addAlert("ATENCION: $mensaje");
- return $respuesta;
- }else {
- //$respuesta->addAlert("$consulta");
- //$respuesta->addAssign("debug","innerHTML","$consulta");
- //return $respuesta;
- }
-
-}
-$xajax->registerFunction("campo_privacidad");
-
-
-
-function respuestas_formulario($id,$identificador) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $formulario_respuesta = formulario_respuesta("$id","$identificador");
- $consulta = "SELECT form_id , timestamp FROM form_datos
- WHERE control = '$identificador' AND form_id != '$id' GROUP BY form_id , timestamp
- ";
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-
- $resultado ="";
- while( $row = mysqli_fetch_array( $sql ) ) {
- $respuesta = mostrar_identificador("$identificador","$row[form_id]","respuesta",'simple',"$row[timestamp]");
- $fecha = date($format, $row['timestamp']);
- $resultado .= " $respuesta ";
-
-}
- $resultado .="";
-}else{$resultado ="";}
-$resultado = "$resultado $formulario_respuesta";
-return $resultado;
-}
-
-
-function formulario_respuesta($id,$identificador) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $consulta = "SELECT * FROM form_id
- WHERE formulario_respuesta = '$id'
- ";
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado ="
- ";
- while( $row = mysqli_fetch_array( $sql ) ) {
- $resultado .= "$row[nombre] $row[descripcion] ";
-
-}
- $resultado .="
";
-}else{$resultado ="";}
-return $resultado;
-}
-
-
-function consultar_contenido_formulario($form,$registros,$pagina,$tipo,$orden,$plantilla){
- if($plantilla=="") { $plantilla="landingpage";}
- $imagen ="";
- $acciones ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $campo_filtro ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $href_4="";
- $href_5="";
- $listado_nombres ="";
- if(isset($_REQUEST['orden'])) { $orden= "$_REQUEST[orden]";}
- if(isset($_REQUEST['registros'])) { $registros= "$_REQUEST[registros]";}
- if(isset($_REQUEST['pagina'])) { $pagina= "$_REQUEST[pagina]";}
- if(isset($_REQUEST['v'])) { $origen= "$_REQUEST[v]";}
- $campo_orden = remplacetas('form_parametrizacion','campo',"$form",'descripcion'," tabla='form_id' and opcion = 'orden'") ;
- $campo_orden = $campo_orden[0];
-
-
-
-if($orden == "" ) { $ordenar= "ORDER BY form_datos.id DESC ";}
-elseif($orden == "ASC" ) { $ordenar= "ORDER BY form_datos.id ASC "; }
-else{}
-
-$respuesta = new xajaxResponse('utf-8');
-
-$id_form = $form;
- if($campo_orden !="") {
- $consulta_principal = "
- SELECT control,id,form_id,contenido FROM form_datos
- WHERE form_id = '$form' AND id_campo ='$campo_orden'
- GROUP BY form_datos.control
- ORDER BY CAST(contenido AS SIGNED ) $orden ";
- }else {
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' GROUP BY form_datos.control $ordenar";
- }
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-mysqli_real_escape_string($link,$consulta_principal);
-$sql_total=mysqli_query($consulta_principal,$link);
-$total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
-if($registros=="") { $registros="$total_registros"; $origen="url";}
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta_principal.$limite;
- mysqli_real_escape_string($link,$consulta_limite);
- $sql=mysqli_query($consulta_limite,$link);
-@mysqli_data_seek($sql_total, 0);
-//$sql=mysqli_query($consulta_principal,$link);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-//$fecha = time ();
-// $ahora = date ( "Y-m-d" , $fecha );
-// $campos = listar_campos_formulario($id_form,"select");
-
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
-
- if(isset($_REQUEST[registros])) {
- $href_1 = "$origen®istros=$registros&pagina=1&orden=$orden";
- $href_2 = "$origen®istros=$registros&pagina=".($pagina-1)."&orden=$orden";
- }
- else {
- $href_1= "#cabecera#";
- $href_2= "#cabecera#";
- }
-
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
-
- if(isset($_REQUEST['registros'])) {
- $href_3 = "$origen®istros=$registros&pagina=$x&orden=$orden";
- }
- else {
- $href_3= "#cabecera#";
- }
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- {
- if(isset($_REQUEST['registros'])) {
- $href_4 = "$origen®istros=$registros&pagina=".($pagina+1)."&orden=$orden";
- $href_5 = "$origen®istros=$registros&pagina=$pages&orden=$orden";
- }
- else {
- $href_4= "$href_4";
- $href_5= "$href_5";
- }
- $link .= "
- "; }
- }
- $paginacion = "";
- $encabezado = "
- ";
-
-// $total_registros = mysqli_num_rows($sql);
-/* $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- */
-// $listado_nombres = "Identificador $listado_nombres ";
-///$listado_campos = listar_campos_formulario("$id_form",'');
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-// if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","$plantilla",'paginado');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= " $row[control]";
- }
-$buscador = buscar_datos("*formato*","$form","grid","mostrar_resultado");
-//$filtro = portal_filtro_campos_select($form,"$campo_filtro","mostrar_resultado","landingpage");
-//$filtro_drop = portal_filtro_campos_drop($form,"$campo_filtro","mostrar_resultado","landingpage");
-$filtro_generico = filtro_generico($form,$tipo);
-if( $tipo !== "" AND $tipo !=="embebido" ) {
- $publico = remplacetas('form_id','id',"$form",'modificable',"") ;
- if($publico[0] !="0" OR $_SESSION[id] !="") {
-
- $agregar = " Agregar
";
- }
-$acciones="
-
-
-
-
-
-
- $agregar
-
-
- $filtro
- $filtro_drop
-
-
-
- $buscador
-
-
-
-
- $filtro_generico
-
-
-
-
-
-
";
-}
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion','') ;
- //$descripcion_limpia = strip_tags($descripcion[0]);
- $nombre = remplacetas('form_id','id',$id_form,'nombre','') ;
-$resultado = "
-
-
$nombre[0]
-
$descripcion[0]
-$acciones
-
-
- $linea
-
-$encabezado
-
-";
- }
-else {
-$resultado ="
Aún no hay resultados $consulta_limite ";
- if($tipo =="contenido" OR $tipo =="embebido" ) {
- return $resultado;
- }
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-
- /*$datos = $resultado;
- $div ="contenido_de_modal";
- $resultado = "
$datos
";
- $div_contenido = "
$div
";
- */
- if($tipo =="") {
- // $respuesta->addAssign("contenido_interior","innerHTML","$div_contenido");
- $respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- return $respuesta;
- }
- if($tipo =="contenido" OR $tipo =="embebido" ) {
- return $resultado;
- }
-}
-$xajax->registerFunction("consultar_contenido_formulario");
-
-
-function multiempresa_listado($tabla,$div){
-
-
-$resultado = "";
-$encontrados = "";
-$link=Conectarse();
-
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC ";
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
-
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=4;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
- $encontrados .= "
";
- }
- $i++;
- if($row['imagen'] !="") {
- $logo="
";
- }
- else {
- $logo_empresa = remplacetas('empresa','id',"1",'imagen','');
- $logo="
";
- }
- // $slogan= substr($row[slogan],0, $length = 100)."";
- $slogan = $row['slogan'];
- $contenido ="
-
-
-
- ";
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- $resultado ="
-
PROYECTOS
- $encontrados
-
- ";
- }else{
- $resultado = "
No hay resultados
";
- }
-if($div =="") { return $resultado; }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa_listado");
-
-
-
-function decodifica_parametro ($string)
-{
- $inicial = substr($string,0,1);
- $string = mb_substr($string,1);
- $cadena = $string;
- //$length = strlen($base);
-
- $size = strlen($string) - 1;
- $string = str_split($string);
-
- //$out = strpos($base, array_pop($string));
-//return $out;
- /*foreach($string as $i => $char)
- {
-
- $out += (strpos($base, $char)* pow($length, $size - $i));
-//$out .= "$i => $char";
- }*/
-$resultado[0]=$inicial;
-//$resultado[1]=$out;
-$resultado[1]=$cadena;
-
- return $resultado;
-}
-
-function grabar_imagen($imagen,$control) {
-
- $imgData = str_replace(' ','+',$imagen);
- $imgData = substr($imgData,strpos($imgData,",")+1);
- $imgData = base64_decode($imgData);
-
- $nombre= $control.".png";
- $filePath = "$_SESSION[path]/tmp/".$nombre;
-
- $file = fopen($filePath, 'w');
- fwrite($file, $imgData);
- fclose($file);
- $full= "$_SESSION[path_images_secure]/full/".$nombre;
- if (!rename($filePath,$full)){}
- else {
- echo generar_miniatura($nombre,"150");
- echo generar_miniatura($nombre,"300");
- echo generar_miniatura($nombre,"600");
- }
-
- //return "$nombre";
- return "$nombre";
-}
-
-
-function generar_miniatura($file,$width) {
//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[0] / $file_info[1];
// Calculamos las nuevas dimensiones
$newwidth = $width;
$newheight = round($newwidth / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 80);
-imagepng($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 9);
-//imagegif($thumb,"$_SESSION[path_images_secure]/".$width."/$file");
-//imagejpeg($thumb,null, 80);
-}
-
-function generar_vcard($identificador){
-$impresion = mostrar_identificador("$identificador","","vcard",'simple');
-$impresion = formulario_imprimir("$id_form","$identificador","$plantilla");
-$nombre ="vcard_".$identificador.".vcf";
-$vcard ="BEGIN:VCARD
-VERSION:3.0
-N:Gump;Forrest
-FN:Forrest Gump
-ORG:Bubba Gump Shrimp Co.
-TITLE:Shrimp Man
-PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif
-TEL;TYPE=WORK,VOICE:(111) 555-1212
-TEL;TYPE=HOME,VOICE:(404) 555-1212
-ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
-LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America
-ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
-LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America
-EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com
-REV:20080424T195243Z
-END:VCARD";
-$archivo = "milfs/tmp/$nombre";
-$file=fopen($archivo,"w") or die("Problemas en la creacion");//En esta linea lo que hace PHP es crear el archivo, si ya existe lo sobreescribe
-fputs($file,$impresion);//En esta linea abre el archivo creado anteriormente e ingresa el resultado de tu script PHP
-fclose($file);//Finalmente lo cierra
-/*
-$ruta="/tmp/vcard_".$identificador.".vcf";
-header ("Content-Disposition: attachment; filename=".$ruta);
-header ("Content-Type: application/octet-stream");
-header ("Content-Length: ".filesize($ruta));
-readfile($ruta);
-*/
-return $archivo;
-
-
-}
-
-function autoriza_formulario_mostrar($password,$form,$control) {
- $respuesta = new xajaxResponse('utf-8');
- if($password =="") { unset($_SESSION['permiso_identificador']); $respuesta->addScript("javascript:location.reload(true);"); return $respuesta;}
- $campo = buscar_campo_tipo($form,"18");
- $campo_password = $campo[0];
- $comprobar_clave = remplacetas('form_datos','form_id',"$form",'contenido'," BINARY contenido = MD5('$password') AND id_campo = '$campo_password'") ;
- $password = md5($password);
- $aviso = "";
-
-if($comprobar_clave[0] !== $password ) {
- unset($_SESSION['permiso_identificador']);
- $respuesta->addAlert("La clave no es válida ");
- $aviso = "$comprobar_clave[2] !== $control";
- $respuesta->addAssign("pie_modal","innerHTML",$aviso);
- return $respuesta;
- }
- else{
- $_SESSION['permiso_identificador']="$control";
- //$respuesta->addAssign("pie_modal","innerHTML",$aviso);
- $respuesta->addScript("javascript:location.reload(true);");
- }
- return $respuesta;
-}
-$xajax->registerFunction("autoriza_formulario_mostrar");
-
-
-//($control,$form,$plantilla,$tipo)
-function landingpage_contenido_identificador($identificador,$form,$plantilla,$tipo){
- if(strlen($identificador) > 32) {
- $identificador_original= $identificador;
- $key = substr($identificador, 32, $length = 40);
- $identificador = substr($identificador, 0, $length = 31);
- }else {$identificador_original = $identificador;}
-
-
- $linea="";
- $id_empresa = remplacetas('form_datos','control',$identificador,'id_empresa',"") ;
- $datos = remplacetas('form_datos','control',$identificador,'contenido',"") ;
- $formulario_identificador = remplacetas('form_datos','control',$identificador,'form_id',"") ;
-
- $campo_orden = remplacetas('form_parametrizacion','campo',$datos[5],'descripcion'," tabla='form_id' and opcion = 'orden'") ;
-
- if($campo_orden[0] =="" ) {
- $siguiente = remplacetas_orden('form_datos','form_id',$datos[5],'control'," id > '$datos[1]' AND control !='$identificador'"," ORDER BY id ASC") ;
- $anterior = remplacetas('form_datos','form_id',$datos[5],'control'," id < '$datos[1]' AND control !='$identificador' ") ;
- }
- else{
- $siguiente = remplacetas_orden('form_datos','form_id',$datos[5],'control'," id_campo = '$campo_orden[0]' AND contenido > '$datos[0]' AND control !='$identificador'"," ORDER BY id ASC") ;
- $anterior = remplacetas('form_datos','form_id',$datos[5],'control'," id_campo = '$campo_orden[0]' AND contenido < '$datos[0]' AND control !='$identificador' ") ;
- }
- $campo_titulo = remplacetas('form_parametrizacion','campo',$datos[5],'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo_siguiente = remplacetas('form_datos','form_id',$datos[5],'contenido'," id_campo = '$campo_titulo[0]' AND control = '$siguiente[0]' ") ;
- $titulo_anterior = remplacetas('form_datos','form_id',$datos[5],'contenido'," id_campo = '$campo_titulo[0]' AND control = '$anterior[0]' ") ;
-
- if($anterior[0] !='') {
- $post_anterior ="
$campo_orden[0] Anterior
- ";
- }
- if($siguiente[0] !='') {
- $post_siguiente ="
Siguiente
- ";
- }
- if($tipo =="simple") { $manejadores="$post_anterior $post_siguiente";}else { $manejadores="";}
- $respuestas = respuestas_formulario($form,$identificador);
- $imagen = buscar_imagen($form[0],$identificador,"","$id_empresa[0]");
- $plantilla_original = $plantilla;
- $plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$plantilla",'id',"campo = '$formulario_identificador[0]'") ;
-
- $uri = "$_SESSION[site]I$identificador";
- $qr = "https://qwerty.co/qr/?d=$uri";
- if($imagen !="") {
-
- $mostrar_imagen ="
";
- $miniatura = "
-
-
-
-
- $uri";
-
- }else {
- $miniatura ="
-
- I$identificador
-
- ";
- $mostrar_imagen = "
-
-
- ";
-
-
-
- }
-
- //
- //$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- if($plantilla[0] !="" ) {
- $impresion = mostrar_identificador($identificador_original,"","$plantilla_original","","");
- } else{
- $contenido = mostrar_areas("$identificador_original","","");
- //$contenido = mostrar_identificador($identificador_original,"","","","");
- $impresion = "
-
-
-
$identificador_original
-
-
-
-
-
- ";
-
- }
- if(!isset($_SESSION['id_empresa'])){
- $edicion ="
Editar";
-// $edicion ="
Editar";
- }else {$edicion="";}
-$documento="
Generar documento ";
-
- $linea = "
-$manejadores
-
-
-
- $documento
- $impresion
- $edicion
-
-
-
-
-
-
-
-
- ";
-
- return $linea;
- }
-
-
-function landingpage_contenido_formulario($form,$registros,$pagina,$div_original){
- $cantidad = formulario_contar($form);
- $div="contenido_interior";
- //if($registros =="") {$registros ="10";}
- $consulta= "SELECT control FROM form_datos WHERE form_id = '$form' GROUP BY control ORDER BY id DESC ";
- $id_empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- //$sql=mysqli_query($consulta,$link);
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($consulta_limite,$link);
-
- $paginacion ="";
- $paginacion .= $indice;
-/*
- /// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($consulta_limite,$link);
- $page= $pagina;
- @$pages= ceil($cantidad / $registros); //13; // Hardcoded for testing purpose
- $limit= 20 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
-
";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "
$x ";
- }else{
- $link .= "
$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
-
"; }
- }
-
- $paginacion = "";
-
- */
-
- //// PAGINACION
-if (mysqli_num_rows($sql)!='0'){
- $linea=" ( $cantidad ) $paginacion";
- $fila = 1;
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $impresion = mostrar_identificador($row['control'],"","landingpage","","");
- $imagen = buscar_imagen($form,$row['control'],"","$id_empresa[0]");
- if($imagen !="") { $clase = "col-lg-5 col-sm-6";}else {$clase = "col-lg-12 col-sm-12";}
- $uri = "
Ver mas ... ";
- $linea .= landingpage_contenido_identificador($row['control']);
- }
- $resultado_linea="
$linea
";
- }
- if($div_original=="") {
-
- return $resultado_linea;
- }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$linea");
-
- return $respuesta;
-
- }
- }
-$xajax->registerFunction("landingpage_contenido_formulario");
-/*
-$respuesta = new xajaxResponse('utf-8');
-$resultado ="
$mensaje Procesando ...";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-
-*/
-function landingpage_contenido($id_empresa){
-$consulta= "SELECT * FROM form_id WHERE publico ='1' AND id_empresa= '$id_empresa' ORDER BY orden ASC";
-$miniatura ="";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
- $linea="";
-if (mysqli_num_rows($sql)!='0'){
-
- $fila = 1;
- //include("includes/datos.php");
- $error_token = "";
- $contenido = "";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; } else {$error_token = "";}}
- while( $row = mysqli_fetch_array( $sql ) ) {
- //$link = "
Consultar ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- if($ultimo_mapa[0] !="") {
- $campos = explode(" ",$ultimo_mapa[0]);
- $lat = $campos['0'];
- @$lon = $campos['1'];
- @$zoom = $campos['2'];
-
- if($error_token != 1) {
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/pin.png");
- $miniatura = "
-
-
-
";
- /* $miniatura = "
-
-
- ";*/
-
- }else{ $miniatura ="
No se ha definido un token de mapbox
";}
- }
- if($geo[0] !='') { $mapa= "
$miniatura Ver mapa ";}else {$mapa='';}
- $descripcion_limpia = strip_tags($row['descripcion']);
- if($imagen !="") {
- $imagen ="
-
-
-
-
-
-
-
- ";
-}
- $contenido ="
-
$row[nombre]
- $imagen
-
$descripcion_limpia
";
-
-// if ( $fila%2==0){
- $linea .= "
-
-
-
- ";
-/*
- }else{
- $linea .= "
-
-
-
- ";
- }
- */
-
- //$linea .= "$fila $plantilla
$row[nombre] ";
- $fila++;
- }
- }
- $linea ="
-
-
- $linea
-
- ";
-return $linea;
-}
-
-function buscar_imagen($form,$control,$tipo,$empresa) {
- $imagen="";
- if($control !="") { $w_control = "AND form_datos.control ='$control'";}else{$w_control ="";}
- if ($form ==""){
- $consulta = "SELECT form_datos.id_empresa, contenido , campo_nombre , id_campo FROM form_id, form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_id.id = form_datos.form_id
- AND form_datos.id_empresa = '$empresa'
- AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 ";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $imagen = mysqli_result($sql,0,"contenido");
- }
-if($tipo == "consulta") { return $consulta; }
- return $imagen;
-
- }
-$publico = remplacetas('form_id','id',"$form",'publico',"") ;
-if($publico[0] !="0" ){
-$campo_imagen = buscar_campo_tipo("$form","15");
-$imagen = remplacetas('form_datos','form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ;
-//$imagen = "$imagen[0]";
-return $imagen[0];
-}
-return;
-}
-
-function wait($div,$mensaje){
-$respuesta = new xajaxResponse('utf-8');
-$resultado ="
$mensaje Procesando ...";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-
-function campos_tabla($filtro,$div,$limite,$inicio) {
- if($limite =="") {$limite= 100;}
- if($inicio =="") {$inicio= 0;}
-
- $fin=($inicio+$limite);
- $anterior=($inicio-$limite);
- $w_limite=" LIMIT $inicio ,$limite";
-
-$mio ="";
-$lineas ="";
-$w_empresa ="";
-$w_especialista ="";
-if($filtro == 'id_empresa') { $w_empresa = " AND id_empresa = '$_SESSION[id_empresa]' ";}
-if($filtro == 'id_especialista') { $w_especialista = " AND id_especialista = '$_SESSION[id]' ";}
-if($filtro == 'llenos') {
-$consulta= " SELECT * , form_campos.id as id FROM form_campos, form_datos WHERE form_campos.id = form_datos.id_campo $w_empresa $w_especialista GROUP BY id_campo ORDER BY campo_area, campo_nombre ";
-}elseif($filtro == 'vacios') {
-//$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_datos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_contenido_campos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-}else{
-$consulta= " SELECT * FROM form_campos WHERE id = id $w_empresa $w_especialista ORDER BY campo_area, campo_nombre ";
-}
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta.$w_limite,$link);
- $sql_total=mysqli_query($consulta,$link);
- //$div = "div_tabla_campos";
- $filtros = "
-
-
-
- Seleccione
- Todos
- Mis campos
- Mi empresa
- No usados
- Llenos
-
-
-
- ";
- $cantidad_mostrada =mysqli_num_rows($sql);
- $cantidad_total =mysqli_num_rows($sql_total);
- if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- mysqli_data_seek($sql_total, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"") ;
- $campo_tipo ="
$tipo_nombre[0] ";
- if($_SESSION['id_empresa'] == $row['id_empresa']) {
- $row['campo_nombre']= editar_campo("form_campos","$row[id]","campo_nombre","","","","");
- $row['campo_descripcion']= editar_campo("form_campos","$row[id]","campo_descripcion","","","","");
- $row['campo_area']= editar_campo("form_campos","$row[id]","campo_area","","","","");
- $row['activo']= editar_campo("form_campos","$row[id]","activo","","","","","");
- $accion = "
";
- $class='success';
- }else {
- $class='';
- $accion ="";
- }
- if($_SESSION['id'] == $row['id_especialista']) {
- $row['id_especialista'] = "
$row[id_especialista]";
- }
-
- $lineas .= "
$row[id] $row[campo_nombre] $row[campo_descripcion] $campo_tipo $row[campo_area] $row[activo] $row[id_empresa] $row[id_especialista] $mio $accion ";
- }
- $tabla = "
-
- ";
- }
- if($div !=""){
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$tabla");
- return $respuesta;
- }
- else{
- $resultado = "$filtros $tabla";
- return $resultado;
-}
-}
-$xajax->registerFunction("campos_tabla");
-
-function remplacetas_noid($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($consulta,$link);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,"$campo");
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-
-
-function contar_visitas($id,$tipo) {
-$id_visitas = remplacetas('form_parametrizacion','campo',$id,'id'," tabla='form_id' AND opcion='$tipo'") ;
-$visitas = remplacetas('form_parametrizacion','id',$id_visitas[0],'descripcion',"") ;
-$cantidad = $visitas[0]+1;
-if($visitas[0] =="") {
- $consulta = "INSERT INTO form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'";
- }
-else {
- $consulta = "UPDATE form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'
- WHERE id ='$id_visitas[0]' LIMIT 1";
-}
-$link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- mysqli_real_escape_string($link,$consulta);
- $sql=mysqli_query($consulta,$link);
-$cantidad = "$cantidad $_SESSION[analizador]";
-return $cantidad;
-}
-
-
-function geocoder($valor,$campo){
-$respuesta = new xajaxResponse('utf-8');
-if(strlen($valor) > 3) {
-$valor = urlencode($valor);
-$json = "https://nominatim.openstreetmap.org/search.php?format=json&limit=5&addressdetails=1&q=$valor";
-$data = file_get_contents("$json");
-$geocoder = json_decode($data, true);
-if($data ==="[]") {$vacio="
-
-
No se encontraron resultados
-";}
-
-foreach ($geocoder as $clave => $valor) {
- $ciudad = $valor['address']['city'];
- $municipio = $valor['address']['town'];
- $pais = $valor['address']['country'];
- $departamento = $valor['address']['state'];
- $licencia= $valor['licence'];
- $link = "milfs/mapero.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo";
- $linea .= "
-
-
- $valor[display_name]
-
- $ciudad $municipio $pais $departamento
-
-
-
- ";
-//foreach ($valor as $clave => $valor) { $linea .= "CLAVE : $clave > VALOR: $valor"; }
-}
-$resultado = "
-
- $vacio $licencia
-
";
-}
- //$div_contenido = "
$div
";
- //$respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("muestra_geocoder","innerHTML","$resultado");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("geocoder");
-
-
-function mostrar_psi(){
-$respuesta = new xajaxResponse('utf-8');
-include("psi.php");
- //$div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_psi");
-
-function multiempresa_crear($tabla,$formulario,$div) {
-$formulario = limpiar_caracteres($formulario);
-$link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '".mysqli_real_escape_string($link,$v)."',";
- }
- $valores = "$valores id_responsable = '$_SESSION[id]'";
-
-$respuesta = new xajaxResponse('utf-8');
-
- $insertar = "INSERT INTO $tabla set $valores";
- $sql=mysqli_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
-
-
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("multiempresa_crear");
-
-function nombre_dominio($url){
- $protocolos = array('http://', 'https://', 'ftp://', 'www.');
- $nombre = explode('/', str_replace($protocolos, '', $url));
- // $nombre = substr($url[0],0,-strlen(strstr($url[0],"." )));
- return $nombre[0];
-}
-
-function configurar_dominio ($id,$tipo) {
-$directorio = "/opt/tupalescripts/";
-$dominio = remplacetas('empresa','id',"$id",'web','') ;
-$nombre = nombre_dominio($dominio[0]);
-$nombre = str_replace(".", "_", $nombre);
-if($tipo =="crear" ) {
- $ar=fopen("$directorio".$id."","w"); //or die("Problemas en la creacion");
- $variables=fopen("$directorio"."variables","w"); //or die("Problemas en la creacion");
- $contenido = "dominio=$dominio[0] \nnombre=$nombre \nidem=$id \n";
-
- fputs($ar,"$contenido");
- fputs($variables,"$contenido");
-
- fclose($ar);
- fclose($variables);
-
- $resultado ="Se configuró el dominio para $nombre ";
- }else {
- $borrar=fopen("$directorio"."borrar","w");
- fputs($borrar,"nombre=$nombre");
- fclose($borrar);
- unlink("$directorio".$id."");
- $resultado ="Se ELIMINÓ el dominio $nombre ";
- }
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("dominio_$id","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("configurar_dominio");
-
-
-function multiempresa($tabla,$div){
- require ("includes/parametrizacion.php");
- if($_SESSION['id'] == 1 AND $soporte_multiempresa !== 0) {
- if($div =="") {
- $div="contenido";
- $resultado ="
Configuración multiempresa";
- return $resultado;
- }
-$link=Conectarse();
-
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$consulta = "SELECT * FROM empresa ";
-$sql=mysqli_query($consulta,$link);
-
-$resultado="
-$name
-Id Nombre Sigla Email Web Dirección Teléfono
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$razon_social= editar_campo("empresa",$row['id'],"razon_social","","","");
-$sigla= editar_campo("empresa",$row['id'],"sigla","","","");
-$email= editar_campo("empresa",$row['id'],"email","","","");
-$web= editar_campo("empresa",$row['id'],"web","","","");
-$direccion= editar_campo("empresa",$row['id'],"direccion","","","");
-$telefono= editar_campo("empresa",$row['id'],"telefono","","","");
-$estado= editar_campo("empresa",$row['id'],"estado","","","");
-
-if($row[id] !=1) {
- $dominio ="";
- $archivo= "/opt/tupalescripts/$row[id]";
- //$archivo= "tmp/$row[id]";
- if(file_exists("$archivo")) {
- $configuracion_dominio="ok";
- $configuracion_dominio=" ";
- }
- else{
- $configuracion_dominio=" ";
- }
- $acciones = " Estado: $estado
-
- $configuracion_dominio";
-
- }
-$resultado .= "$row[id] $razon_social $sigla $email $web $direccion $telefono $acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-
Agregar empresa
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa");
-
-
-
-
-
-
-function contar_valores_formulario($campo,$key,$valor){
-$consulta = "SELECT distinct($campo) as cantidad FROM form_datos WHERE $key LIKE '$valor' ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = mysqli_num_rows($sql);
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-function listar_campos_formulario($id_form,$tipo){
- $tipo="$tipo";
-$consulta = "SELECT distinct(id_campo),campo_nombre FROM form_datos,form_campos WHERE form_id = '$id_form' AND form_datos.id_campo = form_campos.id ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($tipo=="nombres"){
-$resultado[] = "$row[campo_nombre]";}
- elseif($tipo=="select"){
- $option .= "
$row[campo_nombre] ";
- }
- else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){
-$resultado = "
-
- Campo
- $option
- ";
-
-}
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-//($formulario,$div,$registros,$pagina,$formato)
-function consultar_formulario($form,$registros,$pagina,$tipo){
- $imagen ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
-
-$respuesta = new xajaxResponse('utf-8');
-//if(is_array($form)) {$id_form = $form['id_form'];}else { $id_form = $form;}
-//$id_empresa = $_SESSION['id_empresa'];
-$id_empresa = remplacetas('form_id','id',"$form[id_form]",'id_empresa',"") ;
- if($id_emprea[0] !="") {
- $id_empresa = $id_empresa[0];
- }else{$id_empresa = $_SESSION['id_empresa'];}
-$resaltado = remplacetas('form_parametrizacion','opcion','resaltado','descripcion',"id_empresa = '$id_empresa' ") ;
-//$resaltado = remplacetas('form_parametrizacion','opcion','resaltado','descripcion',"id_empresa = '$id_empresa' ") ;
-if(is_array($form)) {
- $fecha_inicio = $form["inicio"];
- if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
- $fin = $form["fin"];
- if( $fin !="") { $fechas = " AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') AND UNIX_TIMESTAMP('$fin 23:59:59')";}
- $id_form = $form['id_form'];
- @$id_campo = $form['id_campo'];
- $busqueda = $form['busqueda'];
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$form[busqueda]%%'";}else{$busca ='';}
-if($id_campo !=''){$campo ="AND id_campo = '$id_campo'";}else{$campo ='';}
-}else{
-$id_form = $form;
-}
-// AND form_datos.id_empresa = '$id_empresa'
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' $busca $campo $fechas GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql_total=mysqli_query($consulta_principal,$link);
-$total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- if($tipo == "csv" ) {$consulta_limite = "$consulta_principal";}
- else{$consulta_limite = $consulta_principal.$limite;}
- $sql=mysqli_query($consulta_limite,$link);
-
-//$sql=mysqli_query($consulta_principal,$link);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-$fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $campos = listar_campos_formulario($id_form,"select");
- $peticion = "
-
-
-
-
-
-
-
-
- ";
-/////// FILTRO
-
-$boton_borrar = "
-
-
-
- ";
-
- if($formato!='csv'){
- $boton_exportar = "
Exportar ";}
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
-
";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "
$x ";
- }else{
- $link .= "
$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
-
"; }
- }
-
- $paginacion = "";
-
-
-
-
- $encabezado = "
-
";
-
- $total_registros = mysqli_num_rows($sql);
- $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "
$nombre ";
- }
- $listado_nombres = "
Identificador $listado_nombres ";
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-//$cantidad_campos = contar_valores_formulario("id_campo","control","$row[control]");
-
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-foreach($listado_campos as $campo=>$valor){
- //$imagen = buscar_imagen($if_form,$row['control'],"","");
- $contenido = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo ='$valor' ") ;
- $id_dato = remplacetas('form_datos','control',$row['control'],'id',"id_campo ='$valor' ") ;
- //$id_empresa = remplacetas('form_datos','control',$row['control'],'id_empresa',"id_campo ='$valor' ") ;
- $tipo_campo = remplacetas('form_campos','id',$valor,'campo_tipo',"") ;
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- if($tipo_campo[0] ==15 AND $contenido[0] != "") {
- @$listado_campos .= "
-
-
-
-
-
-
- ";
- }
- elseif(($tipo_campo[0] ==1 or $tipo_campo[0] ==2 or $tipo_campo[0] ==3 or $tipo_campo[0] ==4 or $tipo_campo[0] ==12 or $tipo_campo[0] ==13 )AND $contenido[0] != "") {
- $editar_contenido = editar_campo("form_datos","$id_dato[0]","contenido","");
- @$listado_campos .= "
$editar_contenido ";
- }
- else {
-@$listado_campos .= "
$contenido[0] ";
-}
-
- }
- if (!is_array($listado_campos)){$listado_campos="
$listado_campos ";}else {$listado_campos=$listado_campos;}
-
- $areas = resumen_identificador("$row[control]",'','','boton');
- $acceso = generar_acceso($row[control],"","");
- if($resaltado[0] =="$row[control]") {$iresaltar ="
Resaltado "; $alert="info";}
- else {
- $iresaltar = "
Resaltar
-
";
- $alert="";
-
- }
-
- $menu ="
-
-
-
-
-
- ";
-$lineas .= "
$menu$row[control] $listado_campos ";
-
- }
-
-$tabla ="
-
- $listado_nombres
-
- $lineas
-
-
";
-$resultado = "
-$encabezado
-
-
-
-$tabla
-
-
-";
- }
-else {
-$resultado ="
No hay resultados ";
-$respuesta->addAlert("No hay resultados ");
-return $respuesta;
-}
-if($tipo =="csv") {
-$html = str_get_html($tabla);
- // header('Content-type: application/ms-excel');
- // header('Content-Disposition: attachment; filename=sample.csv');
- $nombre_archivo ="tmp/Prueba_Formulario_".mktime()."_".$_SESSION['id'].".csv";
- //$fp = fopen("php://output", "w");
- $fp=fopen($nombre_archivo , "w");
- foreach($html->find('tr') as $element)
- {
- $td = array();
- foreach( $element->find('th') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- if (!empty($td)) {
- fputcsv($fp, $td);
- }
-
- $td = array();
- foreach( $element->find('td') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- fputcsv($fp, $td);
- }
-
- fclose($fp);
-$boton_descarga ="
Descargar ";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "
$datos
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- if($tipo =="modal") {
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-}
- return $respuesta;
-
-}
-$xajax->registerFunction("consultar_formulario");
-
-
-function datos_array($identificador) {
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$consulta ="SELECT * FROM form_datos WHERE control = '$identificador'
-GROUP BY id_campo ORDER BY timestamp DESC ";
-$sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
-$array = array();
-$array[identificador] = "$identificador";
-while($row = mysqli_fetch_array( $sql ))
- {
-
-
- //$contenido = remplacetas('form_datos','id',$row[id],'contenido',"") ;
-
- $id_campo = remplacetas('form_datos','id',$row[id],'id_campo',"") ;
- $contenido = remplacetas_orden('form_datos','id_campo',$row[id_campo],'contenido'," control = '$identificador'"," ORDER BY timestamp DESC ") ;
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- //$array[id_campo] = $row[id_campo];
-
-//// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$row[form_id]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
-/// PRIVACIDAD
-if($privado !='1') {
- $array[$nombre_campo[0]] = "$contenido[0]";
- //$array['consulta'] = "$contenido[2]";
- $array['timestamp'] = "$row[timestamp]";
- $array['proceso'] = "$row[proceso]";
- $array['id'] = "$row[id]";
- $array['orden'] = "$row[orden]";
- //$array[] = $row;
-
-}
- }
- return $array;
-}
-
-
-function parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item){
- if(isset($_SESSION['id_empresa']) ){$id_empresa= $_SESSION['id_empresa']; }else{$id_empresa="";}
- $respuesta = new xajaxResponse('utf-8');
-if($tabla =="") {
-$resultado = "
-
-
-
- Hiperparametrizador Experimental
-
-
-
-
- Tabla
-
- *Campo obligatorio
-
-
-
-
-
-
- Descripción
-
-
-
-
-
-";
-return $resultado;
-}
- $link=Conectarse();
-mysqli_query("SET NAMES 'utf8mb4'");
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = '".mysqli_real_escape_string($link,$tabla)."' AND campo ='".mysqli_real_escape_string($link,$campo)."' AND opcion ='".mysqli_real_escape_string($link,$opcion)."' AND id_empresa = '$id_empresa' AND item = '".mysqli_real_escape_string($link,$item)."' LIMIT 1 ";
-$sql=mysqli_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = '".mysqli_real_escape_string($link,$tabla)."' , campo ='".mysqli_real_escape_string($link,$campo)."', opcion ='".mysqli_real_escape_string($link,$opcion)."', descripcion ='".mysqli_real_escape_string($link,$descripcion)."', item ='".mysqli_real_escape_string($link,$item)."', visible='1' , id_empresa = '$id_empresa'";
-$sql=mysqli_query($consulta,$link);
-if($sql) {
- if($descripcion =="") {
- $respuesta->addAlert("ATENCION: Se grabó un campo vacío, esto no es necesariamente un error pero indica que el valor de parametrización se sobreescribió como vacío. ");
- }
- $id = mysqli_insert_id($link);
- if($script != "") {
- $respuesta->addScript("$script");
- return $respuesta;
-
- }
- if($div != "") {
- $resultado = " $descripcion ";
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }else {
- return $id;
- }
- }else {
-//$respuesta->addAlert("$consulta");
-}
-///$respuesta->addAssign("$div","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("parametrizacion_linea");
-
-
-/*
-function parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div){
- $respuesta = new xajaxResponse('utf-8');
-if($tabla =="") {
-$resultado = "
-
-
-
- Hiperparametrizador Experimental
-
-
-
-
- Tabla
-
- *Campo obligatorio
-
-
-
-
-
-
- Descripción
-
-
-
-
-
-";
-return $resultado;
-}
- $link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = '".mysqli_real_escape_string($link,$tabla)."' AND campo ='".mysqli_real_escape_string($link,$campo)."' AND opcion ='".mysqli_real_escape_string($link,$opcion)."' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1 ";
-$sql=mysqli_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = '".mysqli_real_escape_string($link,$tabla)."' , campo ='".mysqli_real_escape_string($link,$campo)."', opcion ='".mysqli_real_escape_string($link,$opcion)."', descripcion ='".mysqli_real_escape_string($link,$descripcion)."', visible='1' , id_empresa = '$_SESSION[id_empresa]'";
-$sql=mysqli_query($consulta,$link);
-if($sql) {
- if($descripcion =="") {
- $respuesta->addAlert("ATENCION: Se grabó un campo vacío, esto no es necesariamente un error pero indica que el valor de parametrización se sobreescribió como vacío. ");
- }
- $id = mysqli_insert_id($link);
- if($div != "") {
- $resultado = " $opcion : $descripcion ".time()." $id";
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }else {
- return $id;
- }
- }else {
-//$respuesta->addAlert("$consulta");
-}
-///$respuesta->addAssign("$div","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("parametrizacion_linea");
-
-*/
-
-
-function email_contenido($id,$control,$id_campo,$email_envio){
-
-if($email_envio =="") {
- $email = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$id' AND id_campo ='$id_campo' ") ;
- $formulario =
-
- "
-
";
-return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
-
- $validar = validar_email($email_envio);
- if($validar == '0') {
- $respuesta->addAssign("input_email_envio","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('email_envio').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email = remplacetas("empresa","id","1","email","");
- $email = remplacetas("empresa","id","$id_empresa","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
-
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $razon_social[0] <$reply[0]>\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $propietario[0]" . "\r\n";
-$impresion = formulario_imprimir("$id","$control","email");
-
-$impresion ="
-$encabezado
-
$impresion
";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-
-$impresion
-
-Se ha completado el formulario
$nombre_formulario[0]
-
Puede revisar los datos en $_SESSION[site]I$control
-
Saludos de MILFS
-";
- if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="
Se envió un email a $email_envio "; }else {$exito .="error enviando correo";}
-
-$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("email_contenido");
-
-
-function mapa_ficha($id) {
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $descripcion_limpia = strip_tags($descripcion[0]);
- $nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
- $id_empresa = $id_empresa[0];
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $imagen = "
";
- $datos ="
$nombre[0] $descripcion[0] ";
- $empresa = "
$razon_social[0] |
$web[0] | $direccion[0] | $email[0]
";
-
- //$prueba = json_decode($prueba);
-
- $resultado ="
-
-
-
-
- $imagen
-
-
-
$nombre[0]
- $descripcion_limpia[0]
-
-
-
-
$razon_social[0]
-
MILFS
-
-
-
- ";
- return $resultado;
-}
-
-function formulario_parametrizacion($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($accion =='categorias') {
-
- }
- elseif($accion =='grabar'){
-
- }
- else {
- $listado ="
-
-
-
-
-
-
Parametrización
-
Parametrización del formulario $nombre[0]. Por favor seleccione una opción
-
-
-
-
- ";
- $respuesta->addAssign($div,"innerHTML",$listado);
- return $respuesta;
- }
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
Filtro
-
- Todos ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= " ";
- }
-else{$resultado = 'nada';}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_parametrizacion");
-
-
-
-function lista_categorias($perfil,$categoria,$tipo) {
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
- $categoria_campo = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- if($categoria_campo >0 ) {
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$categoria_campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
";
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $icono = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$row[md5_contenido]'") ;
- if($icono[0] =='') {
- $icon = "$_SESSION[site]milfs/images/iconos/pin.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- $contenido= substr($row[contenido],0, $length = 15);
-$resultado .= "
$contenido ";
- }
-$resultado .= "
";
- }
-else{$resultado = '';}
-}
-return $resultado;
-}
-
-function parametrizacion_categoria($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-$categorias = lista_categorias($perfil,$categoria,$tipo);
-if($accion =='categorias') {
- $resultado = "
-
-
La categorización se usa para filtrar los datos de un formulario en categorias que pueden ser usadas por ejemplo para diferenciar los datos en un mapa.
- Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza
- $categorias
-
-
-
-
- Icono para la categoría
-
-
- URL
-
-
-
-
- Grabar
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- $respuesta -> addScript("xajax_formulario_campos_select('$perfil','parametrizacion')");
- return $respuesta;
- }
- elseif($accion =='grabar'){
- if($form[tipo] =='categoria') {
- $url_icon = "$form[icon]";
- $es_imagen = es_imagen("$url_icon");
- $altura = GetImageSize($url_icon);
- $altura= $altura[1];
- if($form[id_campo] =='') { $error = "Seleccione un campo";}
- elseif($form[campo_filtro] =='') { $error = "Seleccione Filtro";}
- elseif(!$es_imagen ) { $error = " [ $url_icon ] no es una imagen válida para el ícono";}
- elseif($altura > 500 ) { $error = " El ícono no debe tener mas de 300 pixeles de alto.";}
- elseif($form[icon] =='') {
- $error = "Escriba la dirección del ícono";
- }
- else {$error='';}
- if( $error !='') {
- $respuesta -> addAlert("$error $revisar_url ");
- return $respuesta;
- }else{
- $categoria_icono[tabla] = "form_id";
- $categoria_icono[campo] = "$form[perfil]";
- $categoria_icono[opcion] = "$form[tipo]:icon:$form[campo_filtro]";
- $categoria_icono[descripcion] = "$url_icon";
- $categoria_icono[visible] = "1";
- $categoria_icono[accion] = "grabar";
- $grabar_icono = parametrizacion($categoria_icono);
-
- $categoria_campo[tabla] = "form_id";
- $categoria_campo[campo] = "$form[perfil]";
- $categoria_campo[opcion] = "$form[tipo]:campo";
- $categoria_campo[descripcion] = "$form[id_campo]";
- $categoria_campo[visible] = "1";
- $categoria_campo[accion] = "grabar";
- $grabar_campo = parametrizacion($categoria_campo);
-
- $categoria_filtro[tabla] = "form_id";
- $categoria_filtro[campo] = "$form[perfil]";
- $categoria_filtro[opcion] = "$form[tipo]:filtro:$form[id_campo]";
- $categoria_filtro[descripcion] = "$form[campo_filtro]";
- $categoria_filtro[visible] = "1";
- $categoria_filtro[accion] = "grabar";
- $grabar_filtro = parametrizacion($categoria_filtro);
-
-
- $resultado ="
$form[campo_filtro] $form[id_campo] ($altura ) [$grabar_icono]";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-
- }/// fin de parametrizacion categorias
- }
-}
-$xajax->registerFunction("parametrizacion_categoria");
-
-
-function parametrizacion_plantilla_campos($formulario){
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen ="
"; $identificador="
";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "
$imagen $row[campo_nombre] [$row[id_campo]] ";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-
-
-
-
-
-
-
- $listado
- Fecha
-
-
-";
-}
-return $resultado;
-}
-
-
-function parametrizacion_plantilla_campos_inteligentes($formulario){
-$consulta ="SELECT distinct(`id_campo`) , campo_nombre FROM `form_datos`, form_campos WHERE form_datos.id_campo = form_campos.id AND `form_id` ='$formulario' ORDER BY campo_nombre ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen ="
"; $identificador="
";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "
$imagen $row[campo_nombre] [$row[id_campo]] ";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-
-
-
-
-
-
-
- $listado
- Fecha
-
-
-";
-}
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("div_campos","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla_campos_inteligentes");
-
-
-function parametrizacion_plantilla($formulario,$div,$valores) {
- $respuesta = new xajaxResponse('utf-8');
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$link=Conectarse();
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-mysqli_query("SET NAMES 'utf8'");
-if($valores =="boton") {
-$consulta ="SELECT * FROM form_parametrizacion WHERE campo = '$formulario' AND `opcion` REGEXP '^plantilla:' ORDER BY opcion";
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campos_opcion = explode(":",$row[opcion]);
- $plantilla_nombre = $campos_opcion[1];
-$listado .= "
$row[opcion] ";
-$li .= "
- $plantilla_nombre
- Editar
- Editar
-
- ";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-
-
-
-";
-$lista ="
-
-Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas HTML5 , CSS3 y clases de Bootstrap
-
-
- Nombre
- Editar
- Ver
-
-$li
-
-Nueva plantilla
-";
- $respuesta->addAssign("$div","innerHTML","$lista");
- return $respuesta;
-
-}
-else {
-
-$resultado ="
-
-
-
Aún no se han definido plantillas para este formulario
- Crear una plantilla
-
-
-";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-
-elseif($valores =="formulario" OR is_numeric($valores)) {
- $campos = parametrizacion_plantilla_campos("$formulario");
- $descripcion = remplacetas('form_parametrizacion','id',$valores,'descripcion',"") ;
- $opcion = remplacetas('form_parametrizacion','id',$valores,'opcion',"") ;
- $campos_opcion = explode(":",$opcion[0]);
- $plantilla_nombre = $campos_opcion[1];
- include("includes/bootsrap_class_list.php");
-$resultado ="
-
-
-
-
-
-
-
- A
A
')); \">
-
-
A
-
A
-
div
-
H1
-
H2
-
H3
-
-
<li>
-
-
MB
-
-
-
-
-
-
Editor HTML
-
$descripcion[0]
-
-
-
-
Campos inteligentes
- $campos
-
-
-
-
-
-";
-
-}
-
-elseif(is_array($valores)) {
- $texto=str_replace('"',"'",$valores[text_contenedor]);
-$plantilla = htmlentities($texto);
-if($valores[nombre_plantilla] == "") {
- $respuesta->addAlert("No ha especificado un nombre para la plantilla");
- $respuesta->addAssign("input_nombre_plantilla","className","input-group has-error");
- return $respuesta;
- }
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='plantilla:$valores[nombre_plantilla]' LIMIT 1 ";
-$sql=mysqli_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='plantilla:$valores[nombre_plantilla]', descripcion =\"$plantilla\", visible='1' ";
-$sql=mysqli_query($consulta,$link);
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-$datos = contenido_mostrar("$formulario","$ultimo[1]",'',"$valores[nombre_plantilla]");
-$preview = " $valores[nombre_plantilla] $datos ";
- $div_contenido = "$preview
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- $respuesta->addAssign("titulo_modal","innerHTML","$resultado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- return $respuesta;
-
-}
-else{
-$resultado ="";
-}
-$resultado .= "";
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla");
-
-
-function parametrizacion_titulo($formulario,$div,$valores) {
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_orden = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'orden'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$campo_orden_nombre = remplacetas('form_campos','id',$campo_orden[0],'campo_nombre',"") ;
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if($valores =="") {
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-
-$sql=mysqli_query($consulta,$link);
-
-
-
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "$row[campo_nombre] [$row[id_campo]] ";
-}
-
-//($tabla,$campo,$opcion,$descripcion,$div)
-
-$resultado = "
- Campos especiales
-
- Campo de Título actual $campo_titulo_nombre[0] [$campo_titulo[0]]
- Campo de Orden actual $campo_orden_nombre[0] [$campo_orden[0]] (Este campo debe ser del tipo numérico)
-
-
-
- Seleccione campo
-
-
- Borrar el valor actual
- $listado
-
-
-
-
-
- Usar como Título
-
-
-
- Usar como Orden
-
-
-
-
-
-
-
-";
-}
-}else {
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='titulo' LIMIT 1 ";
-$sql=mysqli_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='titulo', descripcion ='$valores', visible='1' ";
-$sql=mysqli_query($consulta,$link);
-if($sql){
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$resultado ="addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_titulo");
-
-
-function mostrar_modal($form,$control,$plantilla){
-$respuesta = new xajaxResponse('utf-8');
-if( $control == "") {
- $datos = formulario_areas($form,"");
-}else {
-$datos = contenido_mostrar("$form","$control",'',"$plantilla");
-}
-$div ="contenido_de_modal";
-
-$resultado = "
-
- $datos
-
-
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_modal");
-
-function portal_filtro_cadena($formulario,$id_campo,$control,$div,$plantilla){
-$cadena = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$formulario' AND id_campo ='$id_campo' ") ;
-$consulta ="SELECT * FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' AND contenido = '$cadena[0]'
- GROUP BY control ORDER BY contenido";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-
- $datos = contenido_mostrar("$formulario","$row[control]",'',"$plantilla");
- if($plantilla == "") {
-$listado .= "
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-
- $listado
-
-";
-}else{
-$resultado ="";
-}
-
-if ($div ==""){$div="mostrar_contenido";}
-else {$div = "$div";}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado ");
- return $respuesta;
-}
-$xajax->registerFunction("portal_filtro_cadena");
-
-
-
-function portal_filtro_campos($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-
-$resultado = "
-
- $formulario_nombre[0] / $campo_nombre[0]
- {json}
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_filtro_campos_select($formulario,$id_campo,$div,$plantilla){
-$listado="";
-if($id_campo =="") {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- if($id_campo =="") { $resultado = ""; return $resultado;}
- }
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT *
- FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario'
- AND form_campos.id = form_datos.id_campo
- AND form_datos.id_campo = '$id_campo'
- GROUP BY contenido
- ORDER BY contenido";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $campo_nombre[0]
- $listado
-
-";
-}
-$resultado ="
-
- Filtro
- $resultado
-
";
-return $resultado;
-}
-
-
-
-function portal_listado_campos($formulario){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_contenido_campos.orden";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- //href='?formulario=$formulario&campo=$row[id_campo]'
- //
{json}
- $estadisticas = formulario_estadistica("$formulario","$row[id_campo]","contenido","barras");
-$listado .= "
$row[id_campo] $row[campo_nombre] $row[campo_descripcion] $estadisticas ";
-}
-$resultado = "
-
-
-
-
-
- Id Nombre campo Descripcion
- $listado
-
-
-
-";
-}
-return $resultado;
-}
-
-
-function portal_listado_formularios($id_proyecto){
- if($id_proyecto=="") {
- return;
- }
-$listado="";
-$consulta ="SELECT * FROM form_id WHERE publico = '1' AND id_empresa='$id_proyecto'";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $nombre= strip_tags($row['nombre']);
- $descripcion= strip_tags($row['descripcion']);
-$listado .= "
$nombre ";
-}
-$resultado = "
-
-
-
-";
-}
-return $resultado;
-}
-
-
-
-function insertar_linea($tabla,$key,$campo,$valor,$control,$orden,$div){
- $respuesta = new xajaxResponse('utf-8');
- //$key = limpiar_caracteres($key);
- //$valor = limpiar_caracteres($valor);
-if($_SESSION[id_empresa] =="") {
- $empresa = remplacetas('form_id','id',"$key",'id_empresa','') ;
- $empresa = $empresa[0];
- }else {$empresa=$_SESSION[id_empresa];}
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
-if($tabla =="form_datos") {
-
-$consulta = "INSERT INTO form_datos ( orden, timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( '$orden',UNIX_TIMESTAMP(),'$_SESSION[id]','$empresa','$key',$ip ,'$control', '$campo' , '$valor')
- ";
-
-}
-mysqli_real_escape_string($link,$consulta);
-
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- if($valor !="") {
- $sql=mysqli_query($consulta,$link);
-}
-if($sql) {
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
- }
-else {
-return " ";
-}
-}else {
-return "No se inserto ";;
-}
-}
-$xajax->registerFunction("insertar_linea");
-
-
-function select_combo($id,$tabla,$campo_valor,$campo_descripcion,$tipo){
-
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$Campo_descripcion = ucwords($campo_descripcion);
-$Campo_valor = ucwords($campo_valor);
-$nombre=$tabla."_".$campo_valor;
-$div=$nombre."_hijo";
-$combo = $id."_".$tabla;
-if($tipo!=''){
-$respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE $campo_valor = '$tipo' AND id_empresa = '$id_empresa'";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado .= "
$Campo_descripcion
-
";
-$resultado .= " Seleccione $Campo_descripcion ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[$campo_valor] $row[$campo_descripcion] ";
- }
-$resultado .= " ";
- }
-
-
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;}
-ELSE{ /// si no especifica $tipo
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE id_empresa = '$id_empresa' GROUP BY $campo_valor ";
-$sql=mysqli_query($consulta,$link);
-///$Documento=mysqli_result($grupo,0,"documento_numero");
-$resultado = "
$Campo_valor
-
";
- $resultado .= " Seleccione $Campo_valor ";
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "$row[$campo_valor] ";
- }
- }
-$resultado .= "
";
- }/// FIN de $tipo no especifico
-
-return $resultado;
-}
-$xajax->registerFunction("select_combo");
-
-
-
-function crear_session ($form,$control) {
-
-$consulta = " SELECT distinct(id_campo),contenido FROM form_datos WHERE control = '$control' AND form_id = '$form' order by timestamp DESC ";
-$link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql = mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!=0){
- $resultado ="
";
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $id_form = $row[form_id];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre = strtolower( str_replace(' ','_',$campo_nombre[0]));
- $_SESSION[$nombre] = $row[contenido];
- $resultado .= "$_SESSION[$nombre] ";
- }
- $resultado .= " ";
- }
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla,$tipo,$timestamp){
- $datos_form="";
- $edicion="";
- $resultado="";
- $tipo="$tipo";
- if($form != "") {$id_form = "$form";
-
- $datos_form ="
-
$nombre[0]
-
$descripcion[0]
- ";
-
- }else {$id_form ="";}
-
- $impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp);
- if($impresion !="") {
- $visitas= contar_visitas($control,'identificador') ;
- $visitas= "
$visitas";
- //$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- //$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
- $interaccion = interaccion_identificador("$control",'');
- if($tipo=="") {
- $resultado = "
-
-
-
-
- $visitas
- $datos_form
-
-
- $impresion
-
-
-
-
-
-
-
- $interaccion
- $edicion
-
- "; }else {
-$resultado = "$impresion";
- }
- }else{
-$resultado ="
No hay resultados ";
- }
-
-return $resultado ;
-}
-
-function buscar_campo_nombre($form_id,$nombre) {
-
-$consulta ="SELECT form_campos.id FROM `form_campos` , form_contenido_campos WHERE `campo_nombre` = '$nombre' AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='$form_id' LIMIT 1";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql = mysqli_query($consulta,$link);
- $id_campo=mysqli_result($sql,0,"id");
-return $id_campo;
-}
-
-function conversorSegundosHoras($tiempo_en_segundos) {
- $horas = floor($tiempo_en_segundos / 3600);
- $minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
- $segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
-
- return $horas . ':' . $minutos . ":" . $segundos;
-}
-
-function mensajes($tipo,$campos_form,$datos,$control) {
- $campo_remitente = $campos_form['remitente'];
- $campo_destinatario = $campos_form['destinatario'];
- $campo_asunto = $campos_form['asunto'];
- $campo_mensaje = $campos_form['mensaje'];
- $form_id = $campos_form['formulario_id'];
- $form_usuarios = $campos_form['formulario_usuarios'];
- $campo_usuarios = $campos_form['campo_usuario'];
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='formulario') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
-
-//$campos = formulario_areas($form_id,'campos');
-$control_original = $control;
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
- $respuesta->addAssign("div_mensaje_$control_original","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo =='responder') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
- $remitente = buscar_campo_nombre("$form_id","Para");
- $destinatario = buscar_campo_nombre("$form_id","De");
- $mensaje = buscar_campo_nombre("$form_id","Mensaje");
- $asunto = buscar_campo_nombre("$form_id","Asunto");
-
- $asunto_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$asunto' AND control='$control'") ;
- $mensaje_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$mensaje' AND control='$control'") ;
- $remitente_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$remitente' AND control='$control'") ;
- $destinatario_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$destinatario' AND control='$control'") ;
-
-$formulario ="
-
-
-
-
-
-
-
-
- Asunto
-
-
-
- Mensaje
- $mensaje_value[0]
-
- ";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
-";
- $respuesta->addAssign("div_mensaje_$control","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo=="recuperar") {
-
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
-
- $consulta ="SELECT *, FROM_UNIXTIME(timestamp) as fecha , DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d') as dia, DATE_FORMAT(FROM_UNIXTIME(timestamp),'%H:%i') as hora FROM form_datos WHERE form_id ='$form_id' AND id_campo = '$campo_destinatario' AND contenido ='$_SESSION[usuario_milfs]' GROUP BY control, timestamp order by timestamp DESC ";
-
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-
- $mensajes = mysqli_query($consulta,$link);
-// $destinatario ="$campo_destinatario"."[0]";
-// $para = buscador_campo("$campo_destinatario","$form_id","","$destinatario","","");
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
-
-
-
-$lista ="
-
-
-
-";
-while( $row = mysqli_fetch_array( $mensajes ) ) {
- $asunto = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_asunto' AND control='$row[control]'") ;
- $mensaje = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_mensaje' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_remitente' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_usuarios",'contenido'," id_campo = '$campo_usuarios' AND control='$remitente[0]'") ;
- if($remitente[0] =='') {$remitente[0]="
Sistema";}
- $hoy=date('Y-m-d');
- $control = $row[control];
- if($hoy == $row[dia]){$momento = $row[hora];}else {$momento=$row[dia];}
-//function contenido_mostrar($id,$control,$div,$plantilla)
-//$contenido = contenido_mostrar("$form_id","$control","",'');
- $lista .="
-
- ";
-}
- // $respuesta->addAssign("div_mensaje","innerHTML",$lista);
- $lista .=" ";
- return $lista;
-
-}
-
-$resultado ="hola";
-
- $respuesta->addAssign("div_mensaje","innerHTML",$resultado);
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("mensajes");
-
-function revisar_campo_unico($id,$campo,$id_form,$valor) {
- $respuesta = new xajaxResponse('utf-8');
- $div= "div_$id";
- $existe = remplacetas('form_datos','form_id',"$id_form",'control'," BINARY contenido = '$valor' AND id_campo = '$campo'") ;
- if($existe[0] != "") {
- $texto ="El valor ya existe";
-$respuesta->addAssign("$div","className","text-danger");
-$respuesta->addAssign("input_$id","className","form-group has-error");
- }else{
- $texto ="";
-$respuesta->addAssign("$div","className","text-success");
-$respuesta->addAssign("input_$id","className","form-group has-success");
- }
-
- $respuesta->addAssign("$div","innerHTML",$texto);
- return $respuesta;
-}
-$xajax->registerFunction("revisar_campo_unico");
-
-
-function verificacion_email($control_usuario,$dato,$accion){
-require ("milfs/includes/parametrizacion.php");
-$div="div_aviso_validacion";
-$respuesta = new xajaxResponse('utf-8');
- $form_id =$login_formulario;
- $campo_usuario= $login_campo_usuario;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$control_usuario' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
-
- $validado = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$login_campo_validado' ") ;
- $rrn = rand(123,999);
- $rrncode = MD5("$rrn");
-
-if($accion=="enviar") {
-
- $id_empresa="1";
- $email_empresa = remplacetas("empresa","id","$id_empresa","email","");
- $administrador = remplacetas("empresa","id","1","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] < $email_empresa[0] >\r\n";
-$headers .= "Reply-To: $email_empresa[0]\r\n";
-$headers .= "Return-path: $email_empresa[0]\r\n";
-
-
-$cuerpo_email ="
-
-
-
Código de validación
-$rrn
-Por favor escribe este código en el campo correspondiente
-
-
- ";
- $asunto= "Recibiste un mensaje en [$portal_sigla] ";
- $titulo_email ="Necesitamos validar tu email $email[0]";
- $campo_imagen = buscar_campo_tipo("$id_form","15");
- $imagen_email = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$nuevo_identificador' ") ;
- $imagen_email = "https://$web[0]/milfs/images/secure/?file=600/$imagen_email[0]";
- $nombre_email = $razon_social[0];
-
-
-
- $plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:email_general",'descripcion',"id_empresa = '1'") ;
- $consulta_plantilla ="$plantilla[2]";
- $plantilla = html_entity_decode ( $plantilla[0] );
- eval("\$plantilla = \"$plantilla \";");
- $plantilla .="";
- $asunto= "Recibiste un mensaje en [$portal_sigla] ";
-
- if(mail("$dato","$titulo_email","$plantilla","$headers")){
- $exito .="
Tienes un email ! $headers $dato ";
-$resultado="
-
-";
- }
- else {$resultado .="
Error enviando correo";}
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
-
-}
-elseif($accion=="confirmar") {
-
- $rnncode = $dato['rrn'];
- $email = $dato['enviar_email'];
- $codigo_confirmacion= md5($dato['codigo_confirmacion']);
- $validado= md5($email);
- //$resultado ="$rnncode // $codigo_confirmacion";
- if($rnncode == $codigo_confirmacion) {
- $insertar_email = insertar_linea("form_datos","$login_formulario","$login_campo_email","$email",$usuario[0],"","");
- $insertar_email = insertar_linea("form_datos","$login_formulario","$login_campo_validado","$validado",$usuario[0],"","");
-
- $resultado="Validado $email";
- }
- else{
- $resultado="
El codigo no es valido, inténtalo de nuevo
";
- }
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-}
-else {}
-
- if($validado[0] != md5("$email[0]")) {
- $verificar_email = "
-
-
Vamos a validar tu email
-
Enviaremos un código de verificación a para validarlo.
-
-
-
-
-
-
-
- ";
- if($accion=="verificar") {
- $verificar_email = "";
- }
- }
- else{
- if($accion=="verificar") {
- $verificar_email = "$usuario[0]";
- }
- else {
- $verificar_email="";
- }
-
- //$verificar_email= "Ok";
- }
-
-return $verificar_email;
-}
-
-$xajax->registerFunction("verificacion_email");
-
-
-function milfs_session($form_id,$campo_usuario,$campo_password,$tipo,$datos){
- $accion="";
- $datos = mysql_seguridad($datos);
- $respuesta = new xajaxResponse('utf-8');
- require ("milfs/includes/parametrizacion.php");
-
-if($tipo =="") {
- if(isset($_SESSION['usuario_milfs'])) {
- //$control = remplacetas('form_datos','control',"$_SESSION[control_usuario_milfs]",'contenido'," id_campo = '$campo_password' ") ;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$_SESSION[nombre_usuario_milfs]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $validado = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$login_campo_validado' ") ;
- /*if($validado[0] != md5("$email[0]")) { $validar_email= "El email no ha sido validado $validado[0] //". md5("$email[0]")." // $email[0] ";}
- else{ $validar_email= "validado"; }
- */
- $validar_email = verificacion_email($_SESSION['nombre_usuario_milfs'],'','');
-
- //$email = "someone@somewhere.com";
- if(isset($_SESSION['avatar_usuario_milfs']) ) {
- $avatar = $_SESSION['avatar_usuario_milfs'];
- }else {
- $size="";
- $default = "https://tupale.co/milfs/images/avatar.png";
- $avatar = "https://www.gravatar.com/avatar/" . md5( strtolower( trim( $email[0] ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
- }
-
- $formulario = "
-
- Hola $_SESSION[nombre_usuario_milfs]
- $validar_email
-
SALIR
-
- ";
- return $formulario;
- }else {
-
- if($_SERVER['HTTP_HOST'] !="tupale.co" ) {
- $social_login="";
- $cols="12";
- }
- else {
- $cols="10";
- $social_login="
-
-
- ";
- //return $formulario;
- }
- $formulario ="
- $accion
-
-
-
- ";
- $respuesta->addAssign("formulario_login","innerHTML",$formulario);
-
- return $respuesta;
-
- }
-
-}
-elseif($tipo =='salir') {
- session_destroy();
- $respuesta->addScript("javascript:location.reload(true);");
-
-}
-elseif($tipo=='registrarse') {
- $modificable = remplacetas('form_id','id',$form_id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $formulario = "
Función no disponible, por favor comuníquese con el administrador código
";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
- }
- $campos = formulario_areas($form_id,'campos');
-
- $boton ="
-
- Registrarse
- ";
- $control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
- $campos
- $boton
-
-
- ";
-
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
- if($datos =="") {
- //$campos = formulario_areas($form_id,'campos');
- $campos ="
-
-
Usuario
-
-
-
Código de recuperación Deja este campo vacío si aun no tienes el código de recuperación
-
-
- ";
- $boton ="
-
Solicitar clave
- ";
- $control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
- $campos
-
- $boton
-
-
-
- ";
- }else{
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- if($usuario[0] !="") {
- $password = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_password' ") ;
- if($datos[codigo] !="") {
- if( $datos[codigo] =="$password[0]" ){
- $control = remplacetas('form_datos','control',"$usuario[0]",'control'," id_campo = '$campo_password' ") ;
- $campos ="
-
-
-
-
-
-
-
- ";
-
- $formulario ="$campos";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
-
- }else {
- $respuesta->addAlert("El código no es correcto, por favor rectifíquelo o solicítelo nuevamente dejando el campo VACIO");
- return $respuesta;
- }
- }
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $formulario="$usuario[0] $password[0] // $campo_email[0] $email[0]";
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email_empresa = remplacetas('empresa','id','1','email','') ;
- $email_empresa = remplacetas('empresa','id','1','email','') ;
- $sigla = remplacetas('empresa','id','1','sigla','') ;
- $razon_social = remplacetas('empresa','id','1','razon_social','') ;
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] <$email_empresa[0]>\r\n";
- $headers .= "Reply-To: $razon_social[0] $email_empresa[0]\r\n";
- $headers .= "Return-path: $email_empresa[0]\r\n";
- $asunto= "[ $sigla[0] ] Código para recuperar contraseña ";
- $cuerpo ="
-
Hola $datos[usuario]
- El código para recuperar tu contraseña es:
-
$password[0]
- Regresa pronto :-)
-
- ";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="
Te hemos enviado un correo a $email[0] con el código de recuperación "; }
- else {$formulario ="
Error enviando correo ";}
-
- }else{
-
- $formulario="
No encontramos tu usuario $datos[usuario] . Por favor rectifícalo y prueba nuevamente ";
-
- }
-
-
- }
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='confirmar_recuperar') {
-
- if($datos[password] != $datos[confirmar_password]) {
- $respuesta->addAlert("Los valores no son iguales");
- return $respuesta;
-
- }
- $link=Conectarse();
-
- mysqli_query("SET NAMES 'utf8'");
-
- $consulta="UPDATE form_datos SET contenido = MD5('$datos[password]')
- WHERE control ='$datos[control]'
- AND contenido ='$datos[codigo]'
- AND form_id ='$form_id'
- AND id_campo = '$campo_password' ";
-
- if (mysqli_query($consulta,$link)){
- $resultado ="
Se cambió el password Por favor ingrese con sus nuevos datos
aquí ";
- $respuesta->addAssign("formulario_session","innerHTML",$resultado);
- return $respuesta;
- };
-
-
-
-}
-
-elseif ($tipo=='ingreso'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $password = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = MD5('$datos[password]') AND id_campo = '$campo_password'") ;
-
- if ( $usuario[0] != "" AND $usuario[0] === $password[0]) {
- $respuesta->addAssign("login_milfs","className"," has-success ");
- // $control_servicio = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$servicio' AND control = '$control_uid[0]'") ;
- $_SESSION['usuario_milfs'] = $usuario[0];
- $_SESSION['id'] = $usuario[0];
- $_SESSION['nombre_usuario_milfs'] = $datos['usuario'];
- $_SESSION['control_usuario_milfs'] = $usuario[0];
- $resultado ="
Gracias por regresar $_SESSION[nombre_usuario_milfs] ";
- $respuesta->addScript("javascript:location.reload(true);");
- }else {$resultado ="
Error Los datos no son correctos :( ";
- $respuesta->addAssign("login_milfs","className"," has-error ");
- $respuesta->addAssign("resultado","innerHTML",$resultado);
- return $respuesta;
- }
-
- $respuesta->addAssign("formulario_session","innerHTML",$resultado);
- //$respuesta->addAlert("resultado");
-
-
-}
-elseif ($tipo=='nuevo'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-
-
- $campos_consulta_obligatorio="
- SELECT id_campo, obligatorio
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
- AND obligatorio='1'
- ";
-
-
- $campos_obligados= mysqli_query($campos_consulta_obligatorio,$link);
-
- while( $row = mysqli_fetch_array( $campos_obligados ) ) {
- $campo_valor=$datos[$row[id_campo]][0];
-
- if($row[obligatorio]=='1'){
- $obligatorios .= "$row[id_campo]";
- if($campo_valor == '' && $row[obligatorio]=='1'){
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $error = "Revise campos obligatorios $campo_nombre[0]";
-
- }else {$error ="";}
- if($error !=''){
- $respuesta->addAlert($error);
- $respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
- return $respuesta; }
- }
-
-
- }/// fin de registros obligatorios
-
-
-
- $campos_consulta="
- SELECT id_campo, obligatorio, id_empresa
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
-
- ";
- $campos= mysqli_query($campos_consulta,$link);
- $ip = obtener_ip();
- $control = $datos['control'];
-
- /// incluyo servicio
-
-
- while( $row = mysqli_fetch_array( $campos ) ) {
-
- $campo_valor=$datos[$row['id_campo']][0];
-
- $campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
- /// Si el campo es password (18) se guarda su equivalente en md5
- if($campo_tipo[0] =="18") {
- $campo_valor = MD5("$campo_valor");
- }
- // SI EL CAMPO ES UNICO O EMAIL SE REVISA QUE NO EXISTA
- elseif($campo_tipo[0] =="19" OR $campo_tipo[0] =="12" OR $campo_tipo[0] =="13" ) {
- $existe = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$campo_valor' AND id_campo = '$row[id_campo]'") ;
- if($existe[0] !='') {
- $respuesta->addAlert("ATENCION: El nombre de usuario o el Correo electrónico ya se encuentran registrados !");
- $respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
-
-
- return $respuesta;
- }else{
- //$respuesta->addAlert("$existe[2]"); return $respuesta;
- }
- }
- else {}
-
- if ($campo_valor !=''){
-
- $insertar_consulta = "
- INSERT INTO `form_datos`
- SET
- id_campo = '$row[id_campo]',
- contenido = '$campo_valor',
- control ='$control',
- timestamp = UNIX_TIMESTAMP(),
- form_id = '$form_id',
- ip = '$ip',
- id_empresa = '$row[id_empresa]'
- ";
-
-
- }else{
-
-
- }
-
- if ($error ==''){
- $sql_consulta=mysqli_query($insertar_consulta,$link);
- if($sql_consulta){
- $login = milfs_session("$form_id","$campo_usuario","$campo_password","","");
- $resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-
-
- }else{$resultado.= "
La consulta no se grabó
";}
- }else { }
-
- }
- require ("milfs/includes/parametrizacion.php");
- $insertar_servicio = insertar_linea("form_datos","$login_formulario","$social_login_servicio","$portal_sigla",$control,"","");
- $resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
- $respuesta->addAssign("formulario_session","innerHTML",$resultado);
- return $respuesta;
-
-
-}
-elseif ($tipo=='boton'){
- if(isset($_SESSION['usuario_milfs'])) {
- //$control = remplacetas('form_datos','control',"$_SESSION[control_usuario_milfs]",'contenido'," id_campo = '$campo_password' ") ;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$_SESSION[nombre_usuario_milfs]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $validado = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$login_campo_validado' ") ;
- /*if($validado[0] != md5("$email[0]")) { $validar_email= "El email no ha sido validado $validado[0] //". md5("$email[0]")." // $email[0] ";}
- else{ $validar_email= "validado"; }
- */
- $validar_email = verificacion_email($_SESSION['nombre_usuario_milfs'],'','');
-
- //$email = "someone@somewhere.com";
- if(isset($_SESSION['avatar_usuario_milfs']) ) {
- $avatar = $_SESSION['avatar_usuario_milfs'];
- }else {
- $size="";
- $default = "https://tupale.co/milfs/images/avatar.png";
- $avatar = "https://www.gravatar.com/avatar/" . md5( strtolower( trim( $email[0] ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
- }
-
- $formulario = "
-
- Hola $_SESSION[nombre_usuario_milfs]
- $validar_email
-
SALIR
-
- ";
-
- }else{
- $formulario ="
-
Login
- ";
- }
- return $formulario;
-}else{}
-return $respuesta;
-
-}
-$xajax->registerFunction("milfs_session");
-
-
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- $respuesta = new xajaxResponse('utf-8');
-if($valores =="") {
- $alerta = "
Por favor escriba que desea buscar ";
-$respuesta->addAssign("$div","innerHTML",$alerta);
- return $respuesta;
-}
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-
-
-
-
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form ( contenido COLLATE utf8_spanish2_ci like '%$valor%' ) group by control LIMIT 200 ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=2;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
- /* $contenido = htmlentities($row[contenido]);
- $p = stripos($contenido, $valor);
- $s1 = substr($contenido, 0, $p);
- $s2 = substr($contenido, $p, strlen($valor));
- $s3 = substr($contenido, ($p + strlen($valor)));
- $r = $s1."
$s2 ".$s3;
- */
- $datos = landingpage_contenido_identificador($row['control'],"","grid",'paginado');
- // $datos= landingpage_contenido_identificador($identificador,$form,$plantilla,$tipo);
- //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
";
-
- $encontrados .="$contenido ";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor
-
$encontrados
";
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-
-
-
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-//mysqli_real_escape_string($link,$consulta);
-$sql_total=mysqli_query($consulta_total,$link);
-$total = mysqli_num_rows($sql_total);
-$sql=mysqli_query($consulta,$link);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = $descripcion[0];
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion";
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
$buscador
-
-
-
- $contenido
-
- Mostrar mas resultados
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-
-function insertar_registro($tabla,$formulario,$div,$principal) {
- //$valores ="$formulario[0]";
- $formulario = limpiar_caracteres($formulario);
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
-
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($insertar,$link);
- $ultimo_id = mysqli_insert_id($link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $valores = limpiar_caracteres("$valores");
- $grupo = editar_campo("$tabla",$ultimo_id,"$principal","","","");
- $respuesta->addAssign($div,"innerHTML","
$formulario[$principal] ");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- //$respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_registro");
-
-
-
-function formulario_area_campos($perfil,$area,$control) {
- $tipo="";
- $control_edit ="$control";
- $solo_campos ="";
- $muestra_form ="";
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} $campos= "";
-
-$consulta = "
- SELECT * FROM form_campos , form_contenido_campos
- WHERE form_contenido_campos.id_form = '$perfil'
- AND form_contenido_campos.id_campo = form_campos.id
- AND campo_area='$area'
- ORDER BY form_contenido_campos.orden";
-
- $link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-
-
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- if( $row['obligatorio'] == '1'){$obligatorio="*";}else {$obligatorio='X';}
-
- if($row['campo_tipo'] =="24") { $row['multiple'] = "1";}else {}
- //if($row['multiple'] =="1" AND $tipo =='edit'){
- if($row['multiple'] =="1" ){
- $campos .= "($row[multiple] $row[id_campo])".formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }else{
- $campos .= "".formulario_campos_render($row['id_campo'],$perfil,$control_edit,'','');
- //$campos .= "".formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }
- $muestra_form .= "$campos $obligatorio ";
- $solo_campos .= "$campos $obligatorio ";
-
- }
-
-
-}
-
-
-$resultado = "$muestra_form ";
- return "$campos";
-
-}
-
-function formulario_areas($perfil,$tipo,$form_respuesta,$control_respuesta){
- $id="";
- $resultado_campos ="";
- $subir_imagen ="";
- $campo_imagen_nombre ="";
- if($form_respuesta =='respuesta'){$control = $control_respuesta;}
- //elseif($form_respuesta =='edicion'){$control = $control_respuesta;}
- else{
-$control = md5(rand(1,99999999).microtime());
-}
- $respuesta = new xajaxResponse('utf-8');
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- /*$consulta = "SELECT * FROM form_areas, form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
- AND form_areas.id = form_campos.campo_area AND form_areas.id_empresa = '$id_empresa'
- OR (form_contenido_campos.id_form = '$perfil' AND form_campos.campo_area ='0' )
- AND form_areas.estado = '1' GROUP BY form_areas.id ORDER BY form_areas.orden";
- */
- $consulta= "SELECT * FROM form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
-
- GROUP BY form_campos.campo_area
- ";
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- //$campo_titulo = remplacetas('parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
- $descripcion = remplacetas('form_id','id',$perfil,'descripcion','') ;
- $formulario_respuesta = remplacetas('form_id','id',$perfil,'formulario_respuesta','') ;
- $empresa = remplacetas('form_id','id',$perfil,'id_empresa','') ;
- $empresa = $empresa[0];
-
- $nombre= strtoupper($nombre[0]);
- $descripcion= $descripcion[0];
- $form_respuesta= $formulario_respuesta[0];
-
-
-//// encabezado form
-
- if($tipo =='edit') {$control= $control_respuesta;}
- elseif($form_respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- //$descripcion=mysqli_result($sql,0,"descripcion");
- //$nombre=mysqli_result($sql,0,"nombre");
- //$empresa=mysqli_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$empresa",'encabezado');
- $pie = empresa_datos("$empresa",'pie');
- $logo = remplacetas('empresa','id',"$empresa",'imagen','') ;
- $cabecera = "
-
-
-
-
-
-
-
-
-
$nombre$descripcion
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($perfil,"15");
-if($campo_imagen[0] !="") {
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen_nombre = ucwords($campo_imagen_nombre);
-$campo_imagen = $campo_imagen[0];
- }
-
-if ($campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$perfil","$campo_imagen"."[0]");
-if($tipo != "campos") {
- $imagen = "
-
-
- ";
-
- }else {$imagen =" ";}
- }
-
- $muestra_form = "
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
-
-////fin encabezado form
-
-
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row['campo_area']=="0"){$area_nombre ="";}
- else{
- $area_nombre = remplacetas('form_areas','id',$row['campo_area'],'nombre','') ;
- $area_nombre = $area_nombre[0];
- }
- $fila = $fila +1;
-
- //$producto = remplacetas('farmacia_cum','id',$row[id_producto],'fabricante_importador') ;
- ///// para pasar el parametro de medicamentos al formulario no pos se adiciona ".func_get_arg(2)."
- $campos = formulario_area_campos($perfil,$row['campo_area'],"$control_edit");
-$resultado_campos .= "
-
-$area_nombre
-$campos
- ";
- }
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos
-
-
-
- Continuar editando
-
-
-
-
- ";
-
-//// fin botonera form
-
- }
-
-//// cierre form
-
-$muestra_form .="
-
-
-
";
-if($tipo=='campos') {
-
- $resultado = "$resultado_campos $imagen ";
- return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-
-";
-return $resultado;
-
-/// fin cierre form
- // $resultado .= "$consulta";
-//$respuesta->addAssign($div,"style.display","block");
-//$respuesta->addAssign($div,"innerHTML",$resultado);
-//return $respuesta;
- //print $muestra_form;
-// return $muestra_form;
- }
-
- $xajax->registerFunction("formulario_areas");
-
-
-
-function tabla_areas($tabla,$value,$descripcion,$onchange,$where,$nombre,$div){
- $group ="";
- if($div =="") {
- $div="div_campos";
- $resultado = "
-
Modificar areas
- ";
- return $resultado;
- }
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$campo3 = $campos[2];
-$campo4 = $campos[3];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="group by $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT * FROM $tabla WHERE 1 $w AND id_empresa='$_SESSION[id_empresa]' $group ORDER BY orden ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-
-$resultado="
-$name
-Id $campo1 $campo2 $campo3 $campo4
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$editar_campo1= editar_campo("$tabla",$row['id'],"$campo1","","","","");
-$editar_campo2= editar_campo("$tabla",$row['id'],"$campo2","","","","");
-$editar_campo3= editar_campo("$tabla",$row['id'],"$campo3","","","","");
-$editar_campo4= editar_campo("$tabla",$row['id'],"$campo4","","","","");
-$eliminar = " ";
-$resultado .= "$row[$value] $editar_campo1 $editar_campo2 $editar_campo3 $editar_campo4 $eliminar ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-
-
-
-
-Agregar área
-
-
-
-
-
-
-
-
-
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("tabla_areas");
-
-
-
-
-function importar_coleccion($form){
-$div ="confirmar_importacion";
-//$archivos = listado_archivos("$form[path]");
-//$archivos = listar_archivos("$form[path]",'cantidad','',$form);
-
- $directorio = opendir("$form[path]"); //ruta actual
-$resultado = " ";
-while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
-{
- if (is_dir($archivo))//verificamos si es o no un directorio
- {
- // $resultado .= "[".$archivo . "]
"; //de ser un directorio lo envolvemos entre corchetes
- }
- else
- {$autor="";
- $ext = explode(".", $archivo);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {
- $cantidad_imagenes++ ;
-
- $exif = leer_exif("$form[path]/$archivo");
- //$name = $exif['exif']['FileName']." ".$form['38']['0']."*" ;
- $form['0']['0'] = "$archivo";
- $autor= $exif['exif']['Artist'];
- $creator = $form['40'][0];
- if($autor !="" ) { $remplazo = array('40' => array("$autor")); }else{ $remplazo; }
-
- }
- //$form = array_replace_recursive($form, $reemplazo);
- $resultado .= $archivo ." / $name ".$form['0'][0]."
";
- }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= "( $c : $V )
";
- if($V != '') {
- }
- }
-}
-}
-*/
-//$resultado="$archivos $campo";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("importar_coleccion");
-
-
-
-
-function listar_archivos( $path ,$opcion, $div,$datos){
- // Abrimos la carpeta que nos pasan como parámetro
-
- $resultado ="";
- //$link = Conectarse();
- $dir = opendir($path);
- $cantidad =0;
- $cantidad_imagenes =0;
-//$datos['61'] = array ( 0 => "otro valor");//"OTRO VALOR";
- if(is_file($path)) {$esarchivo="Escriba la ruta a un directorio en el servidor
"; }
- // Leo todos los ficheros de la carpeta
- //if($esarchivo =="") {
- // $elemento = readdir($dir);
- //}
- while ($elemento = readdir($dir) ){
-
- // Tratamos los elementos . y .. que tienen todas las carpetas
- if( $elemento != "." && $elemento != ".."){
- // Si es una carpeta
- if( is_dir($path.$elemento) ){
- // Muestro la carpeta
- // $resultado .= "
CARPETA: ". $elemento ."
";
- // Si es un fichero
- } else {
- $ext = explode(".", $elemento);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {$cantidad_imagenes++ ;
-
- $exif = leer_exif("$path/$elemento");
- $name = $exif['exif']['FileName'];
- $title= "$name ";
- $date= $exif['exif']['DateTimeOriginal'];
- $autor= $exif['exif']['Artist'];
- if(!isset($autor)) { $autor = $datos['40'][0]; }
- $licencia= $exif['exif']['Copyright'];
- if($licencia ==="") { }
- else{
-// $datos['61'][0]= " XX $licencia XXX";
- }
-
-
- //$datos['61'][0] = $licencia;
- if(isset($exif['exif']['UndefinedTag:0xC4A5'])) {
- $exif['exif']['UndefinedTag:0xC4A5']= base64_encode($exif['exif']['UndefinedTag:0xC4A5']);
- }
- if(isset($exif['exif']['MakerNote'])) {
- $exif['exif']['MakerNote']= base64_encode($exif['exif']['MakerNote']);
- }
- if ( $exif['lon'] =="" )
- {
- $geo = $datos['58'][0];
- $mundo ="";
- $datos['58'][0] = $datos['58'][0];
-
- }
- else {
- $geo = "$exif[lon] $exif[lat] 18" ;//$datos['58'][0];
- $mundo ="
";
- $datos['58'][0]= "$geo";
-
-
- }
-
- // $remplazos = array('40');
- // else { $mapa="";}
- //$json = json_encode($exif['exif'],JSON_PRETTY_PRINT);
- //if ( $exif['lon'] =="" ){$datos['58'][0] = $geo;}else {$datos['58'][0] = $datos['58'][0];}
- $resultado .= "
$geo $mundo / ".$datos['58'][0]." ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]." ";
-
- }
-
- $cantidad ++;
-
- $campo .= "";
-
-
- }
- }
-
- }
-
-
- if($div !="" ) {
- if($opcion == "cantidad") {
- $resultado = "
-
- $esarchivo $cantidad archivos, $cantidad_imagenes imágenes jpg, $mapa georeferenciadas
-
-
";
- }
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }else {
-
-
-
- return " $campo $resultado"; }
-}
-$xajax->registerFunction("listar_archivos");
-
-
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( "$file" );
- $resultado['exif'] = $exif;
- $resultado['file']= $file;
- $resultado['FileName']=$exif['FileName'];
-
-if($exif === false) {
-//return false;
-}
-
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado['lat'] = $gps_latitude;
- $resultado['lon'] = $gps_longitude;
-
- //$resultado = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
- }else{}
-
-}
-
-
- $resultado['DateTime'] = $exif['DateTimeOriginal'];
- $resultado['estado'] = "oK";
-
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-
-function relacion_render($form_id,$id_campo,$valor,$cantidad,$plantilla){
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit=='0' or $limit ==''){$limit = "";}
- else {$limit = "LIMIT $limit";}
-if($valor !="") {
- if($plantilla =="") {$plantilla= "relacion";}
-$valor_actual = contenido_mostrar("$formulario",$valor,'',"$plantilla");
-if($plantilla == 'relacion_drop') { $link ="";} else{
-$link = "
Ver referencia ";
-}
-}
-
- return " $valor_actual $link";
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','relacion')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_render");
-
-function buscador_base($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_base_$name";
-$onchange = " xajax_buscador_select_base('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select_base('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_base");
-
-
-function buscador_select_base($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_base_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $tabla = explode(':',$claves[0]) ;
- $tabla = $tabla[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion1 = explode(':',$claves[2]) ;
- $descripcion1 = $descripcion1[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $descripcion3 = explode(':',$claves[4]) ;
- $descripcion3 = $descripcion3[1];
- $where = explode(':',$claves[5]) ;
- $where = $where[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT * FROM $tabla WHERE $descripcion1 like '%%$valor%%' $where GROUP BY $key limit 50 ";
-
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-//$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-//$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select_base");
-
-
-
-function buscador_campo($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_$name";
-$onchange = " xajax_buscador_select('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_campo");
-
-
-function imprimir_buscador_campo($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir;
-}
-
-function imprimir_buscador_campo_key($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0]";
- return $imprimir;
-}
-
-function imprimir_base($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $campo1 = remplacetas("$formulario","$key","$valor","$descripcion","");
- $campo2 = remplacetas("$formulario","$key","$valor","$descripcion2","");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function buscador_select($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $limite='50';
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-$consulta_paginacion = "SELECT control FROM form_datos WHERE contenido LIKE '$valor%%' and form_id ='$formulario' and ( id_campo ='$key' OR id_campo = '$descripcion' ) GROUP BY control ";
-//$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and (id_campo ='$key' OR id_campo ='$descripcion' )AND contenido like '%%$valor%%' GROUP BY control limit 15 ";
-$consulta = "SELECT contenido, control ,id_campo FROM form_datos WHERE contenido LIKE '$valor%%' and form_id ='$formulario' and ( id_campo ='$key' OR id_campo = '$descripcion' ) GROUP BY control limit $limite ";
-
-$sql=mysqli_query($consulta,$link);
-$sql_paginacion=mysqli_query($consulta_paginacion,$link);
-$cantidad = mysqli_num_rows($sql_paginacion);
-
-if (mysqli_num_rows($sql)!='0'){
-
- if($limite < $cantidad) { $alert="warning"; $aviso ="Mostrando $limite de $cantidad registros";}else { $alert="success";}
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $lista.= "
- $campo_key[0] $campo_descripcion[0] ";
-
- }
-
-$resultado .= "
-
-
-
$aviso
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select");
-
-
-
-function relacion_select($id_campo,$form_id,$valor,$name,$control,$tipo){
-$link=Conectarse();
-$valor_actual ="";
-mysqli_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit=='0' or $limit ==''){$limit = "";}
- else {$limit = "LIMIT $limit";}
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','relacion')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_select");
-
-function combo_select($id_campo,$form_id,$valor,$name,$control,$control_combo){
- $selected="";
- $and="";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if($control_combo !="") {
- $div ="combo_$name";
-$and ="AND campo_valor LIKE '$control_combo:%%'";
-}else{
-$onchange ="xajax_combo_select('$id_campo','$valor','$valor','$name','$control',(this.value)) ";
-$div ="combo_$name";
-$name ="primario_$name";
-}
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' $and ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado=" $valor
-Seleccione
- " ;
- // $resultado = array_unique($entrada);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campos = explode(':',$row['campo_valor']);
-
- IF($control_combo ==""){
- $campo_primario[]=$campos[0];
- $campo_primario = array_unique($campo_primario);
- }
- else {
- $campo_primario[] = "$campos[0] $campos[1]";
- }
- //$identificador = $identificador[0];
-//if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-//$resultado .= " $campos[0] ";
- }
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "$V ";
-}
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-if($control_combo =='') {
- return $resultado;
- }
-else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-$xajax->registerFunction("combo_select");
-
-
-function aplicacion_carrusel($nombre,$id,$plantilla){
- if($id =='') {
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- }
- if($nombre =='') {
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre = $nombre[0];
- }
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
- $descripcion = $descripcion[0];
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
- $campo_titulo = $campo_titulo[0];
- $consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
- $link=Conectarse();
- $sql=mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysqli_data_seek($sql, 0);
-// $contenido = "
$nombre[0] ";
-// $contenido .= "
$descripcion[0] ";
-
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- if($orden === 0) {$activo = "active";}else{$activo="";}
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $campo = buscar_campo_tipo($id,"15");
- $id_campo = $campo[0];
- $imagen = remplacetas('form_datos','control',$row[control],'contenido',"id_campo = '$id_campo'") ;
- $items .= "
-
-
- $contenido_desplegado
-
-
";
- $indicador .= "
";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- //$contenido .= "$contenido_desplegado ";
- $orden = ($orden +1 );
- }
-$contenido .= "
-
-
-
$nombre[0] $descripcion[0]
-
-
-
- ";
- //$contenido = " $links
";
- }
-
-
-return $contenido;
-}
-
-
-function formulario_embebido($id){
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- if($publico[0] =="0" AND @$_SESSION['id_empresa'] != $empresa[0] AND $propietario[0] != @$_SESSION['control_usuario_milfs'] ) {
- $resultado = "
";
- //$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- // $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$empresa[0]",'pie');
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $resultado;
- }
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
- $impresion = formulario_areas($id,"embebido",'','');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
-
-
$visitas
- $formulario_nombre[0]$formulario_descripcion[0]
- $impresion
-
-
-
-
-
-
-
";
- return $muestra_form ;
-}
-
-
-function formulario_embebido_ajax($id,$opciones,$tipo){
- $respuesta = new xajaxResponse('utf-8');
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- if($publico[0] =="0" AND $_SESSION[id] =="") {
- $resultado = "
NO tiene permiso para usar este formulario ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "$permiso_identificador
Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
-
-
-
- if($tipo =='edit' AND ($_SESSION['id_empresa'] !== $id_empresa[0] AND $_SESSION['id'] != $propietario[0] )AND $permiso_identificador != $opciones) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado // $_SESSION[id] != $propietario[0] //";
- $seguridad ="
-
-
- ";
- $resultado ="
-
- $salir
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- if($tipo=="respuesta") { $form_respuesta = "respuesta";}
- $impresion = formulario_areas("$id","$tipo","$form_respuesta","$opciones");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
$visitas
-
-
- $impresion
-
-
-
- ";
- // return $muestra_form ;
-
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- //$div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- ///if($tipo =="edit") {return $muestra_form;}
- return $respuesta;
-
-}
-$xajax->registerFunction("formulario_embebido_ajax");
-
-function formulario_embebido_campos($id,$opcion){
- $impresion = formulario_modal("$id",$form_respuesta,$control,"$opcion");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $muestra_form = "
-
-
$formulario_nombre[0]
-
$formulario_descripcion[0]
- $impresion
-
-
-
";
- return $muestra_form ;
-}
-
-function json($datos){
-if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND
-form_id.publico = '1' "; $w_publico = "WHERE form_id.publico = '1'
-"; }
-else { $publico = "AND form_id.id_empresa = '$_SESSION[id_empresa]'
-"; $w_publico = "WHERE form_id.id_empresa = '$_SESSION[id_empresa]' ";
-}
-$datos = mysql_seguridad($datos);
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-if($datos[id] !=''){
-if($datos[tipo] =='simple') {
-$campos ="control " ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-GROUP BY form_datos.control
-ORDER BY form_datos.timestamp DESC";
-
-$sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysqli_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysqli_fetch_array( $sql ))
- {
-
-
-
- if($datos[tipo]=="simple"){
-
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
-
- //if($privado != '1') {
- //$contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- //$contenido = remplacetas_orden('form_datos','id',$row[id_dato],'contenido',""," ORDER BY timestamp DESC ") ;
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $nuevos_datos = $datos;
- $nuevos_datos[identificador]="$row[control]";
- $nuevos_datos[tipo]="array";
- //$features[$row[control]] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- $features[] = datos_array($row[control]) ;
- // $features[consulta] = "$consulta";
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
-//}//
- }
- else {
- // $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-
-if($tipo == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-return $resultado;
-
-}
-else {
-$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo , contenido ,timestamp, control as identificador ,
-form_datos.orden" ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-ORDER BY form_datos.control ,form_datos.timestamp ";
-}
-
-}
-elseif($datos[identificador] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo ,contenido ,timestamp, control as identificador ,
-form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (control = '$datos[identificador]' )
-$publico
-";
-}
-elseif($datos[dato] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, nombre as formulario,
-campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp,
-control as identificador, form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_datos.id = '$datos[dato]' )
-$publico
-";
-}
-else {
-$consulta = "SELECT id as form_id, nombre as form_nombre, descripcion
-as form_descripcion , creacion , publico AS contenido_publico ,
-modificable AS formulario_publico
-FROM form_id $w_publico";
-}
-
-
-$sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysqli_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysqli_fetch_array( $sql ))
- {
- //$nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $formulario = remplacetas('form_datos','id',$row[id_dato],'form_id',"") ;
- //// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$formulario[0]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
-/// PRIVACIDAD
- if($privado !='1') {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $features[] = "$nombre_campo[0] : $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-}
-
- $i++;
- }
-
-
-
-}
-
-if($datos[tipo] == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-
-return $resultado;
-}
-
-
-
-
-function imprime_geojson($id,$id2,$plantilla,$busqueda){
- $id_form = mysql_seguridad($id);
- $id_form2 = mysql_seguridad($id2);
- $campo = buscar_campo_tipo($id_form,"14");
- $campo2 = buscar_campo_tipo($id_form2,"14");
- $id_campo = $campo[0];
- $id_campo2 = $campo2[0];
- $busqueda = explode(':',$busqueda);
- if($busqueda[1] !="") {
- $consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data FROM `form_datos` WHERE (form_id = '$id_form' $w_id2 AND id_campo ='$busqueda[0]' AND contenido COLLATE utf8_spanish2_ci like '%$busqueda[1]%' ) group by control ORDER BY orden desc";
-
- }
-
- else{
-
-$consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data
-FROM `form_datos`
-WHERE (form_id = '$id_form' $w_id2 )
-AND ( id_campo ='$id_campo' $or_2 )
-group by control
-ORDER BY orden desc";
- }
-
- if($id_form2 !=""){$w_id2 =" OR form_id = '$id_form2'"; $or_2 ="or id_campo = '$id_campo2'";}
-
-$link=Conectarse();
-
-
-//return $consulta;
-
- mysqli_query("SET NAMES 'UTF8'");
- $sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysqli_num_rows($sql)!='0'){
- $id = 1;
- $features = array();
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $marcador = array();
- $propiedades = array();
- $identificador = explode(',',$row[data]);
- $localizacion = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo = '$id_campo'") ;
-
- $identificador = $identificador[0];
- //$campos = explode(" ",$identificador);
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- $formulario = formulario_imprimir($row[id],$row[control],"$plantilla");
-
- $marcador["type"] = "Point";
- $marcador["coordinates"] = array($lat,$lon);
- $propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
- //$propiedades[description] ="HOLA MUNDO";
- $propiedades[buscar] ="$consulta ";
- $propiedades[localizacion] ="$localizacion[0] ";
- $propiedades[description] ="
$formulario
";
- $propiedades[sounds] ="";
- $propiedades[url] ='';
- $propiedades[icon][iconSize] =[60];
- //$propiedades[icon][shadowSize] =[70,70];
- //$propiedades[icon][shadowUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
-
- //$propiedades[title] ='Hola mundo';
- if($propiedades[icon][iconUrl] =="") {
- $icono_imagen = buscar_imagen("$id_form",$row['control'],"","");
- //$propiedades[icon][iconUrl] = "$_SESSION[site]/milfs/images/iconos/negro.png";
- $propiedades[icon][iconUrl] = "$_SESSION[url]images/secure/?file=150/$icono_imagen";
- }
- $geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)."},";
- $features[] = $marcador;
-
- $id++;
- }
-
-}
-//-75.58295 6.25578 16
-
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
- \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
- \"type\": \"FeatureCollection\",
- \"features\": [$geometria ]}";
-return $geometria;
-}
-
-
-function aplicacion_presentacion($id,$div,$timeout){
- if($timeout < '1000') {$timeout =5000;};
- $respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT * FROM form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$control = mysqli_result($sql,0,control);
-$impresion = formulario_imprimir("$id","$control","");
-
- }
-$siguiente = "
SIGUIENTE ";
-if($div ==''){
- $presentacion = "
$siguiente $impresion
";
- }else{
- //$respuesta->addAlert("$consulta");
- $respuesta->addScript("setTimeout(function(){xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout')},$timeout)");
- $respuesta->addAssign("$div","innerHTML","$siguiente $impresion");
- return $respuesta;
- }
-return " $presentacion";
-
-
-}
-$xajax->registerFunction("aplicacion_presentacion");
-
-function aplicaciones_listado($id_empresa,$id_form,$tipo,$div){
- $onclick ="";
- $contenido = "";
- $accion = "";
- $resultado_li = "";
- $resultado = "";
- $resultado_banner = "";
- $resultado_inicial = "";
- $resultado_final = "";
- $resultado_grid = "";
- $contenido_listado = "";
- $resultado_nav = "";
- $w_form = "";
- $divider = "";
- $categoria = "";
- if($id_empresa !=''){
- if($id_form !="") {$w_form = " AND id = '$id_form'";}
- $w_publico =" publico ='1'";
- $w_empresa = " AND id_empresa = '$id_empresa' ";
- $consulta = "SELECT * , form_id.id as id_formulario FROM form_id WHERE $w_publico $w_form $w_empresa ORDER BY orden asc limit 10 ";
- //xajax_contenido_parallax('$row[id]');
- }
- else {
- $consulta = "SELECT *, razon_social as nombre , form_id.id as id_formulario FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC ";
-
- }
- //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";}
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado_li .= "
";
- }else {$resultado_li = "";}
-
-if($tipo =='li') { return $resultado_li.$resultado;}
-elseif($tipo =='nav') { return $resultado_nav;}
-elseif($tipo =='grid') {
-if($div !="") {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado_grid");
- return $respuesta;
- }else{
- return $resultado_grid;
- }
-}
-elseif($tipo =='banner') { return $resultado_banner;}
-elseif($tipo =='carrusel') { return $resultado_carrusel;}
-elseif($tipo =='sitemap') { return $resultado."sitemap";;}
-else {return $resultado;}
-}
-$xajax->registerFunction("aplicaciones_listado");
-
-
-function contenido_aplicacion($id,$plantilla){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
- $control = mysqli_result($sql,0,"control");
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysqli_data_seek($sql, 0);
-
- //$contenido = "
$nombre[0] ";
- $contenido = "
$descripcion[0] ";
-
- $orden = 0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- //return "$row[form_id] $row[control] $plantilla";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado
";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- if($id[0] =="") {$aviso = "
No se ha definido una aplicación con el nombre $nombre ";
- return $aviso;}
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
-
- mysqli_data_seek($sql, 0);
- $contenido = " ";
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado ";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-
-
-function contenido_parallax($id){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- $contenido = "";
- mysqli_data_seek($sql, 0);
-
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- //$orden = $orden+500;
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'','contenido');
-
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $nav_li .="
-
- ";
- $style .=" a[id= '$row[control]']:target ~ #main_$id article.article
- {
- -webkit-transform: translateY(-$orden"."px);
- transform: translateY( -$orden"."px );
- } ";
- $links .= "
";
- $contenido .= "
-
- $contenido_desplegado
-
- ";
- $orden = $orden +800;
- }
- $contenido = "
-
-
- $links
-
-
-
-
- ";
- }
-
-//return " $contenido";
- $respuesta->addAssign("$div","innerHTML","$contenido");
- return $respuesta;
-
-}
-$xajax->registerFunction("contenido_parallax");
-
-function contenido_timeline($id){
-$div = "contenedor";
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- //$contenido = "
";
-//}else {$resultado ="
No se encontraron resultados "; return $resultado;}
-//if($id=="6" OR $id=="10") {
- $plantilla="";
- $class="";
- if($tipo !="" AND (!is_numeric($tipo)) AND $tipo !="metadatos" ) {
-////Usa una plantilla apra cada id
-
-$plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
-$plantilla = $plantilla[0];
-if($plantilla =="") {
-///Usa una plantilla generica por nombre
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = ''") ;
-$plantilla = $plantilla[0];
-//$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = '$id' ") ;
-}
-if($plantilla !='') { $plantilla = html_entity_decode ( $plantilla );}
-/*else {
-$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"") ;
-$plantilla= $plantilla[0];
- }
- */
- }
-if($plantilla != ""){
-@eval("\$plantilla = \"$plantilla \";");
- $full ="$plantilla";
- /// $full = preg_replace("/<[^\/][^<>]*> *<\/[^<>]*>/", "", $full );
-
- }else {
- $full= "
$resultado
";
- }
-
- $resultado ="$full";
- return $resultado;
-
-// }else {$resultado ="
No se encontraron resultados "; return $resultado;}
- }else {$resultado =""; return $resultado;}
-}
-
-
-function subir_imagen($respuesta,$id){
-$resultado ="";
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//this.form.taget= 'ventana'; this.form.action = 'destinoEspecial.html'; this.form.submit()"
-if($id =="") {
- $empresa = $_SESSION['id_empresa'];
- $javascript = "includes/upload.php";
- $path = "";
-}
-else {
-$id_empresa = remplacetas('form_id','id',"$respuesta",'id_empresa','');
-$empresa= $id_empresa[0];
-$web = remplacetas('empresa','id',"$empresa",'web','');
- $javascript = "https://$web[0]/milfs/includes/upload.php";
- $path = "https://$web[0]/milfs/";
-}
-
-/*
-if(file_exists(milfs/includes/upload.php)) {$javascript="milfs/includes/upload.php"; $path ="milfs/";}
-else{$javascript="includes/upload.php"; $path ="";}
-*/
-
-//$javascript="milfs/includes/upload.php";
-//$javascript="milfs/includes/upload.php";
-//$path ="milfs/";
-$campo_mapa = buscar_campo_tipo($respuesta,"14");
-$campo_mapa = $campo_mapa[0];
-if ($id ==''){$id='imagen';}
-$size = ($_SESSION['upload_size']*1024*1024)." bytes";
-$resultado ="
-
-
-
-
-
-
-
-La imagen debe estar en formato .jpg y de tamaño máximo $_SESSION[upload_size] MB ( $size)
-
-";
-return $resultado;
-
-}
-
-
-function formulario_importador($accion) {
-
- if($accion =='') {
- $resultado="
Importador";
-
- return $resultado;
- }
- $respuesta = new xajaxResponse('utf-8');
- $formulariox =formulario_importar('','menu','');
- $resultado="$formulariox
";
- $respuesta->addAssign("contenido","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("formulario_importador");
-
-
-function subir_archivo($perfil){
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//$empresa = remplacetas('form_id','id',"$perfil",'id_empresa','');
-//$web = remplacetas('empresa','id',"$empresa[0]",'web','');
-
-
-$id_empresa = remplacetas('form_id','id',"$respuesta",'id_empresa','');
-$empresa= $id_empresa[0];
-$web = remplacetas('empresa','id',"$empresa",'web','');
- $javascript = "includes/upload_archivo.php";
- $path = "//$web[0]/milfs/";
-
-///$javascript="https://tupale.co/milfs/includes/upload_archivo.php";
-$resultado ="
-
-
-
-
-
-Máximo 1MB
-
- ";
-
-
-return $resultado;
-
-}
-
- /*
-function formularios_muestra_listado($formulario){
-
- if($formulario==''){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ";
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado .="
";
- $resultado .= "Seleccionar formulario a importar ";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= " $row[nombre] ";
- }
-
- $resultado .=" ";
- }else {$resultado = "";}
-
- return $resultado;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $subir = subir_archivo($formulario) ;
- $div="importador_select";
- $resultado .= "$subir";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-$respuesta->addAssign("importador_archivo","innerHTML","");
-
-
-
-return $respuesta;
-}
-}
-$xajax->registerFunction("formularios_muestra_listado");
- */
-
-function formulario_importar_subir($formulario){
- $pie="";
- $respuesta = new xajaxResponse('utf-8');
- $formulario_nombre = remplacetas('form_id','id',$formulario,'nombre','') ;
- //$formulario_descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
- $encabezado = "
Importar $formulario_nombre[0] ";
- $subir = subir_archivo($formulario) ;
- $div="contenido";
-
- $muestra_form = "
-
- $subir
-
-
- ";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$encabezado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-return $respuesta;
-
-}
-$xajax->registerFunction("formulario_importar_subir");
-
-
-function formulario_importar($filename,$accion,$perfil){
-$formulario = "";
-$consulta = "";
-$div = "importador_archivo";
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$resultado = "
-
-
-
-
- Importando formulario ";
-$nombre = "/tmp/$filename";
-if($accion == "grabar") {
-}
-if (($handle = fopen($nombre, 'r')) !== FALSE)
- {
- $fila= 0;
- set_time_limit(0);
-while (($datos = fgetcsv($handle,0,"|")) !== FALSE) {
-$numero = count($datos);
-if($fila >=1) {
-$resultado .= "";
-$numero_columna = 0;
-for ($c=0; $c < $numero; $c++) {
-$columna = $datos[$c];
-if($columna !=""){
-if($accion === "grabar"){
-$control=md5($perfil.$fila.time());
-$ip = obtener_ip();
-$graba_ip = " ip = INET_ATON('".$ip."') ";
-$consulta_campos = "INSERT INTO form_datos SET timestamp= '".time()."', id_usuario='$_SESSION[id]',id_empresa='$_SESSION[id_empresa]',form_id ='$perfil',
-$graba_ip ,
-control = '$control', $consulta id_campo = '$campo[$numero_columna]' , contenido = '$columna'";
- // $verificar_campo = formulario_verificar_campo($perfil,$campo[$numero_columna]);
- $elregistro= $campo[$numero_columna];
- //if($verificar_campo == NULL){}else{
- if(is_numeric($elregistro)) { $elregistro =$elregistro;}else {$elregistro = -9;}
- //$verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$elregistro,'campo_nombre','');
- if($campo_existe[0] == ""){}else{
- $sql = mysqli_query($consulta_campos,$link);
- if($sql) {
- $class='success';
- $resultado = "GRABADO $fila".time();
- //$sql_resultado = "oK";
- }
- else {
- $class='danger';
- }
- }
- }
-}
-//$resultado .= "$columna $sql_resultado ";
-$numero_columna ++;
- }
- $resultado .= " ";
- }
- else {
- $resultado .= "";
-
- $posicion = 0;
- for ($c=0; $c < $numero; $c++) {
- $titulo = $datos[$c] ;
- $campo[$posicion] = $datos[$c];
- if(is_numeric($titulo)) { $titulo =$titulo;}else {$titulo = -9;}
- $verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$titulo,'campo_nombre','');
- if($verificar_campo == NULL){$verificar_campo_aviso =" No existe "; $class='danger';
- if($campo_existe[0] !='') { $verificar_campo_aviso =" No está en el formulario ";$class='warning';}
- }
-
- else{$verificar_campo_aviso =""; $class='success';}
-
- $resultado .= "$titulo $campo_existe[0]$verificar_campo_aviso ";
- $posicion ++;
- }
-
-
- $resultado .= " ";
- }
- $fila++;
- }
-
-
- $resultado .= "
-
$fila ".time()." " ;
- }
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}
-
-$xajax->registerFunction("formulario_importar");
-
-
-
-function formulario_verificar_campo($perfil,$id_campo){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM `form_contenido_campos` WHERE `id_form` = '$perfil' AND id_campo='$id_campo'";
-$sql =mysqli_query($consulta,$link);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
-$existe = NULL;
-
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$obligatorio=mysqli_result($sql,0,"obligatorio");
-$existe[]= $control;
-$existe[]= $obligatorio;
-$existe[]= $consulta;
-
-}
-
-return $existe;
- }
-
-function borrar_tmp($div) {
-if($div =='') {
- $div="borra_tmp";
-$resultado ="
Limpiar ";
-
-return $resultado ;
-}
-$dir = "tmp/";
-$ficheroseliminados= 0;
-$handle = opendir($dir);
-while ($file = readdir($handle)) {
- if (is_file($dir.$file)) {
- if ( unlink($dir.$file) ){
- $ficheroseliminados++;
- }
- }
-}
-$fecha = time ();
-$ahora = date ( "Y-m-d h:i:s" , $fecha );
-$resultado ="
$ahora
";
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("borrar_tmp");
-
-
-function formulario_imprimir_linea($id,$control,$tipo) {
- $id = mysql_seguridad($id);
- //if($id !='') {$w_id = "AND form_id = '$id'";}
- $control = mysql_seguridad($control);
-/* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC
- ";
- */
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
-
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
-
-
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysqli_result($sql,0,"form_id");}
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
-
- $titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo = $titulo[0];
-
-$timestamp=mysqli_result($sql,0,"timestamp");
-$fecha = date ( "Y-m-d h:i:s" , $timestamp);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-// $resultado ="
";
- $imagen = formulario_valor_campo("$id","0","","$control");
- $imagen = $imagen[3];
- if($imagen[3] != null AND $tipo !='titulos') {
- $array[image]=$imagen;
- $imagen_icon="secure/?file=150/$imagen";
- $imagen= " ";
-
- }else {$imagen='';}
-$td .= "$imagen ";
-
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- $campo_tipo = remplacetas('form_campos','id',$row[id_campo],'campo_tipo');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $md5_contenido = $contenido[4];
- //md5(binary contenido) as md5_contenido,
- $contenido_original = $contenido;
- //$control = $contenido[0];
- $contenido = $contenido[3];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $campo_nombre[0] =" $campo_nombre[0]";
- if($tipo=="titulos") {
- $contenido = "$campo_nombre[0] ";
- }
- elseif($tipo=="titulos_csv"){
- $csv .= '"'.$campo_nombre[0].'";';
- }
- elseif($tipo=="linea_csv"){
- $csv .= '"'.$contenido.'";';
- }
- elseif($tipo=="array"){
-
- if($row[id_campo] == $titulo){$array[title]=$contenido;}
- if($row[id_campo] == $categoria_campo){
- $array[category]=$contenido;
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- //$icono[0] = $imagen_icon;
- if($icono[0] =='') {
- //$icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $array[icon][iconUrl] = "$icon";
- //$array[icon][iconSize] ="[50,50]";
- //$array[icon][shadowSize] =[70,70];
- //$array[icon][shadowUrl] = "http://$_SERVER[HTTP_HOST]/milfs/images/iconos/sha.png";
-
- }else{}
- $array[$row[id_campo]] = $contenido;
- }
- else{
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
- if($size > $limite) {
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' AND $tipo==""){if($contenido !=""){$contenido = " "; }else{$contenido="";}}
- if($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- require("includes/datos.php");
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/pin.png");
- $contenido = "
-
- ";
- } else { $contenido ='';}
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
- else {$contenido = Markdown("$contenido");}
-
- }
-
-
- if($tipo=="titulos") {
-$td .= " $contenido ";
-
- }else{
-
- $td .= " $contenido ";
- }
- }
-
-if($tipo=="titulos") { $identificador ="Identificador "; }else {$identificador ="$control ";}
- $resultado .="$td $identificador ";
-}
- if($tipo =='titulos_csv' or $tipo=='linea_csv') {
-
-return $csv;
- }
- if($tipo =="array") {
- //$array["title"]="hola mundos";
- return $array;
- }
- return $resultado;
-}
-
-
-// $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-function mostrar_coincidencias_plantilla($id_form,$filtro,$valor,$plantilla) {
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-//mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($consulta,$link);
-$control=mysqli_result($sql,0,"control");
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) )
- {
-$resultado .= contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- }
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias_plantilla");
-
-
-function mostrar_coincidencias($id_form,$filtro,$valor) {
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-//mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) )
- {
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $campos .= " $depliegue ";
-
- }
- $resultado = "
";
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias");
-
-
-function matriz_formulario($formulario,$div,$registros,$pagina,$formato){
- $respuesta = new xajaxResponse('utf-8');
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$md5_filtro = $formulario["campo_filtro"];
-//$formulario = mysql_seguridad($formulario);
-mysqli_real_escape_string($link,$formulario);
-$perfil = $formulario["form_id_id"];
-$filtro = $formulario["campo_filtro"];
-$control = md5(rand(1,99999999).microtime());
-
-$cantidad = formulario_contar($perfil);
-$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_filtro'";}
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{
- $resultado ="
Por favor seleccione un formulario";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-if($cantidad < 1) {
- $resultado ="
-
- El formulario \"$formulario_nombre[0]\" no tiene registros
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
-}
-
-$fecha_inicio = $formulario["inicio"];
-if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
-$fin = $formulario["fin"];
-$id_campo = $formulario["id_campo"];
-$busqueda = $formulario["busqueda"];
-
-if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";}
-if($id_campo ==''){
- $campo ='';
-
- }else{
- if($busqueda =='') {
- $resultado ="
Por favor escriba una palabra para buscar";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
- $campo ="AND id_campo = '$id_campo'";
-
- }
-
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';}
-
-
-
-$consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
- FROM form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_datos.id_empresa = '$_SESSION[id_empresa]'
- $busca
- $perfil
- $campo
- $w_filtro
- AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio')
- AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden";
-
-
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)==0){
- $resultado ="
No hay resultados para la consulta ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
-if (mysqli_num_rows($sql)!=0){
- $total_registros = mysqli_num_rows($sql);
- if($formato=='csv'){
- $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv";
- $boton_descarga ="
Descargar ";
- $archivo_reporte=fopen($nombre_archivo , "w");
- $encabezado =";;Periodo\n;;$inicio\n;;$fin \n ";
- fputs ($archivo_reporte,$encabezado);
- $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n";
- fputs ($archivo_reporte,$titulo);
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) )
- {
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv');
- $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv');
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $linea = $linea."\n";
- $lineas .= $linea;
- }
- $contenido ="$titulo \n $lineas";
- //rewind($archivo_reporte);
- fputs ($archivo_reporte,$contenido);
- $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga);
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
- }
- else{
- $respuesta ="
No hay resultados
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
-
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($consulta_limite,$link);
- if (mysqli_num_rows($sql)!='0'){
- $botones .= "
Limpiar ";
- if($formato!='csv'){
- $botones .= "
- Exportar
- ";
- }
- $paginacion ="";
- $paginacion .= $indice;
- $encabezado = "
-
-
-
$botones $paginacion $total_registros registros
-
-
";
-$fila=0;
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $menu ="
-
-
-
- ";
- $campos .= "
$menu $depliegue ";
- }
- $resultado .="
";
- }else{
- $resultado .="
No hay resultados para la consulta ";
- }
- //$resultado .="$consulta";
-$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado);
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-} $xajax->registerFunction("matriz_formulario");
-
-
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($consulta,$link);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
-$resultado[] = @mysqli_result($sql,0,"timestamp");
-$resultado[] = @mysqli_result($sql,0,"form_id");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- $resultado[4] = NULL;
- $resultado[4] = NULL;
- }
-return $resultado;
-}
-
-function remplacetas_orden($tabla,$campo,$valor,$por,$and,$orden){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND $orden limit 1";
-$sql=mysqli_query($consulta,$link);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
-$resultado[] = mysqli_result($sql,0,"timestamp");
-$resultado[] = mysqli_result($sql,0,"form_id");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- $resultado[4] = NULL;
- $resultado[4] = NULL;
- }
-return $resultado;
-}
-
-function formulario_campos_select($perfil,$div,$onchange){
- $listado ="";
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-
- $categoria = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," opcion = 'categoria'") ;
- $categoria = $categoria[0];
-$resultado = "
Campo
-
- Todos los campos ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-if($div =='') {
- if ($row['id_campo'] == "$categoria"){
- $class="active";
- $filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
- }else { $class=""; $filtro ='';}
- $listado .="$row[id_campo] $row[campo_nombre] $filtro ";
- }
- }
-$resultado .= "
-
"; }
-else{$resultado = '';}
-
-if($div =='') {return $listado;}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("formulario_campos_select");
-
-
-function formulario_campos_filtro($perfil,$campo,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
- Filtro
-
- Seleccione ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
";
- }
-else{$resultado = "
No se encontraron resultados
";}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_campos_filtro");
-
-
-//$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo","$id_campo");
-function formulario_consultar($div){
- if($div==''){
- $div = "contenido";
- $resultado = "
Consultas";
- return $resultado;
- }
- $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'",'');
- $fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $peticion = "
-
-
-
-
-
-
-
-
- Formulario
- $formulario
-
-
-
-
-
-
-
-
Consultar
-
-
-";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$peticion);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_consultar");
-
-
-function formulario_campos_procesar($form,$tipo_accion){
- //$form = mysql_seguridad($form);
- $campos_formulario ="";
-$grabar_campos_valores ="";
-$respuesta = new xajaxResponse('utf-8');
-$campo_nombre = $form["campo_nombre"];
-if($campo_nombre =='') {
-$respuesta->addAlert("El Nombre del campo no puede estar vacío");
-$respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
-return $respuesta;
-}
-
-//$campo_nombre = ucfirst(strtolower($campo_nombre));
-@$campo_descripcion = $form["campo_descripcion"];
-@$campo_tipo = $form["campo_tipo"];
-@$campo_area = $form["campo_area"];
-if($campo_area =="") { $campo_area="1";}
-@$misma_area = $form["misma_area"];
-@$campo_orden = $form["campo_orden"];
-@$campo_identificador = $form["campo_identificador"];
-@$activo = $form["activo"];
-@$tipo = $form["tipo"];
-@$editar = $form["editar"];
-@$id_campo_editar = $form["id_campo_editar"];
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-if ($editar == 'editar' AND $tipo_accion =='editar'){
-mysqli_query("
- UPDATE `form_campos`
- SET `campo_nombre` = '$campo_nombre',
- `campo_descripcion` = '$campo_descripcion',
- `orden` = '$campo_orden' ,
- `campo_area` = '$campo_area',
- `campo_tipo` = '$campo_tipo',
- `id_empresa` = '$_SESSION[id_empresa]',
- `activo` = '$activo'
- WHERE `form_campos`.`id` ='$id_campo_editar'
- LIMIT 1");
-$w_campo = "id = '$id_campo_editar'";
-
- }else {
-$id_empresa = $_SESSION['id_empresa'];
-$id_especialista = $_SESSION['id'];
- $buscar_campo_nombre = remplacetas('form_campos','campo_nombre',$campo_nombre,'campo_nombre'," id_empresa = '$id_empresa' AND campo_area = '$campo_area' ") ;
- if($buscar_campo_nombre[0] == $campo_nombre) {
- $respuesta->addAlert("El Nombre del campo ( $campo_nombre ) ya existe en la misma área ");
- $respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
- return $respuesta;
- }
-if($campo_identificador == "") { $campo_identificador = md5($_SESSION['id_usuario']."-".microtime()); }
-$consulta = "
- INSERT INTO `form_campos`
- (`id_especialista`, `campo_nombre`,`campo_descripcion`,`campo_tipo`, `campo_area`, `orden`, `activo`, `identificador`, `id_empresa`)
- VALUES ('$id_especialista','$campo_nombre','$campo_descripcion','$campo_tipo','$campo_area','$campo_orden','1','$campo_identificador','$id_empresa')";
- $sql =mysqli_query($consulta,$link);
- $ultimo_id = mysqli_insert_id($link);
-$w_campo= "identificador = '$campo_identificador'";
-if($sql) {
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'div_campos')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
- $campos_formulario ="
-
-
- El campo se creó con éxito
- Crear un nuevo campo
- Modificar campo $listado_campos
- ";
- if(@$form['agregar_id_form'] !="") {
- $respuesta->AddScript("xajax_agregar_campos('grabar_campos','contenido','$ultimo_id','$form[agregar_id_form]') ");
- ///$respuesta->addAssign("$div","innerHTML",$resultado);
- //return $respuesta;
- }
- }else {$campos_formulario = "
Problemas al grabar el campo $consulta";}
- }
-
-if($id_campo_editar !='' AND $tipo_accion =='editar'){$id_form_campo = $id_campo_editar;}else {
-//$id_form_campo = mysql_insert_id($link);
-$id_form_campo = $ultimo_id;
-}
-//$respuesta->addAlert("( $campo_tipo / $id_form_campo / $ultimo_id / $form[opciones] ) $consulta");
-//$respuesta->addAssign("contenido","innerHTML","$consulta_campos_valores");
-//return $respuesta;
-if($campo_tipo == '23' ){
-$grabar_campos_valores = "(".$id_form_campo.",'".$form[opciones]."')";
-}
-/// separacion por comas
-else {
-$opciones=str_replace(', ',',',"$form[opciones]");
-$opciones = explode(",",$opciones);
-
-foreach($opciones as $c=>$v){
-
- //if($v !='') {$v = ucfirst(strtolower($v));
- if($v !='') {$v = $v;
-
-$grabar_campos_valores .= "( $id_form_campo ,'$v'),";
- }
-
- }
-$grabar_campos_valores =substr ("$grabar_campos_valores",0,-1);
-} /// fin de separacion por comas
-
-$borrar_campos_valores = "DELETE FROM `form_campos_valores` WHERE `id_form_campo` = '$id_form_campo'";
-$consulta_campos_valores = "INSERT INTO form_campos_valores (id_form_campo,campo_valor) VALUES ".$grabar_campos_valores."";
-
- $sql_borrar_campos_valores =mysqli_query($borrar_campos_valores,$link);
- $sql_campos_valores =mysqli_query($consulta_campos_valores,$link);
-
- $campos=mysqli_query("
- SELECT id_form_campo, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, orden
- FROM `consulta_campos` , `tipo_campo`
- WHERE $w_campo
-
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- LIMIT 1");
-
-
-$campos_formulario .= "
";
-while( @$row = mysqli_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "
".$row['orden']."";}
-else{
-$campos_formulario .= "
".$row['orden']." ";
- } }
-
-$respuesta->addAssign("formulario_campos_$misma_area","innerHTML",$campos_formulario);
-return $respuesta;
-}$xajax->registerFunction("formulario_campos_procesar");
-
-function formulario_opciones_select($tipo,$id_campo){
- $valores="";
- $respuesta = new xajaxResponse('utf-8');
- $div = 'opciones_select';
-if($id_campo !=''){
-$consulta= "SELECT * FROM form_campos_valores WHERE id_form_campo = '$id_campo'";
-$link = Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-while( $row = mysqli_fetch_array( $sql ) ) {
- $valores .= "$row[campo_valor],";
- }
- $valores = substr($valores,0,-1);
- }
- }
-if($tipo =='8'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='9'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='16'){
- if($valores =='') {$valores = "1,10";}
-$resultado = "
$valores ";
- }
-elseif($tipo =='17'){
- $resultado ="
";
-}
-else{
-$resultado = "
$valores ";
-}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_opciones_select");
-
-
-
-function crear_campos_formulario($form,$id_form){
- $id_form=$id_form;
- $area="";
- $Campo_tipo_definido="";
- $Tipo_campo="";
- $campo_nombre ="";
- $campo_descripcion ="";
- $editar ="";
-
-$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-if($form['div'] !="") { $div = $form['div'];}else{$div="div_campos";}
-
-@$especialista = $form["id_especialista"];
-@$id_campo_editar = $form["id_campo_editar"];
-$resultado = "
-
-$id_campo_editar";
-$link = Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$capa = "crear_campos_consulta_$area";
-$formulario ="manejo_campos_$area";
-
-if ($id_campo_editar > 0){
-$sql=mysqli_query("SELECT * FROM form_campos WHERE id = '$id_campo_editar' AND activo ='1'");
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .="";
-$campo_descripcion =$row['campo_descripcion'];
-$campo_nombre =$row['campo_nombre'];
-$orden =$row['orden'];
-$especialista =$row['id_especialista'];
-
-$formulario ="manejo_campos_$id_campo_editar";
-$editar="
-
-
-
";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
- }
-
-$Tipo_campo ="
Tipo:
-
";
-$tipos=mysqli_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1' ORDER BY tipo_campo_nombre
- ");
-while( $row = mysqli_fetch_array( $tipos ) ) {
-
-if($row['id_tipo_campo'] == $Campo_tipo_definido){
-$Tipo_campo .= " > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row['tipo_campo_nombre']." [".$row['id_tipo_campo']."] ";
-}
-$Tipo_campo .="
";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-
-
-
- Incluir este campo en el formulario actual
-
-
- ";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-
-
";
-$resultado = "
-
-
- Crear un nuevo campo
- $resultado
-
-";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("crear_campos_formulario");
-
-function formulario_crear_campo($area,$campo,$div){
- $campos_formulario="";
- $misma_area="";
-$respuesta = new xajaxResponse('utf-8');
- if($div==''){
- $div = "contenido";
- $cerrar = "
[X] ";
-$resultado = "
Campos ";
-
- return $resultado;
- }
- //$div="div_campos";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta_campos ="SELECT id, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, form_campos.activo, form_campos.campo_tipo
- FROM `form_campos` , `form_tipo_campo`
- WHERE id_empresa = '$_SESSION[id_empresa]' AND id = $campo
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- ORDER BY orden ASC";
- $campos=mysqli_query($consulta_campos,$link);
-if($campo ==''){
-
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'$div')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
-$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-$tabla_campos = campos_tabla('id_especialista','','20','0');
-$campos_formulario = "
-
-
-
-
-
-
-
-
-
-
-
-
-
$tabla_campos
-";
-}else{
-$campos_formulario .= "
";
-while( $row = mysqli_fetch_array( $campos ) ) {
-// if($row[campo_tipo] =='8'){
- $respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-// }
- $Tipo_campo ="
Tipo:
-
";
-$tipos=mysqli_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ");
-while( $row_tipo = mysqli_fetch_array( $tipos ) ) {
-
-if($row_tipo['id_tipo_campo'] == $row['campo_tipo'] ){
-$Tipo_campo .= " > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-if($row['activo'] =='1'){$activo = "
Activo: el campo puede ser usado en formularios ";}
-else{$activo = "
Inactivo: El campo NO se usará ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-
-
-
-
-
-
-
";
-
- }
- }///fin de edicion
-
-
-
-$respuesta->addAssign($div,"innerHTML",$campos_formulario);
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_crear_campo");
-
-function agregar_campos($tipo,$div,$id,$formulario){
-$respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-if($tipo==''){
- $div="contenido";
-$resultado = "
Editar";
-print $resultado;
-return;
- }
- if($tipo=='consultar_listado'){
- $consulta="SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ASC";
- $sql =mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado .="Formulario:
";
-$resultado .= "Selecciona ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "$row[nombre] ";
- }
-$resultado .=" $cerrar";
- }else {
-$resultado = "
No hay formularios para editar
";
- }
- }
-
-if ($tipo=='consultar_campos'){
- /// restringe campo a propios form_campos.id_empresa = '$_SESSION[id_empresa]' AND
- $consulta="
- SELECT form_contenido_campos.id_campo, form_contenido_campos.id,
- campo_nombre, obligatorio,control,multiple,form_contenido_campos.orden
- FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_form = $id
- AND form_contenido_campos.id_campo = form_campos.id
- ORDER BY form_contenido_campos.orden";
- $sql =mysqli_query($consulta,$link);
- $consulta_nombre="SELECT * FROM form_id WHERE id ='$id'";
- $sql_nombre =mysqli_query($consulta_nombre,$link);
- $nombre =mysqli_result($sql_nombre,0,"nombre");
- $id_formulario = $id;
- //if (mysqli_num_rows($sql)!='0'){
-$resultado ="$cerrar
$nombre
- ";
-$resultado .= "
-
- Campo
-
-
-
-
-
- Orden
-
-
- Multiple
-
-
- Borrar
-
-
-
";
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- /* $multiple = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = '$row[id]' AND descripcion REGEXP '^multiple:' ") ;
- $multiple = explode(":",$multiple[0]);
- $multiple = $multiple[1];*/
-
- //$multiple = $multiple[0];
-
- $privado = remplacetas('form_parametrizacion','campo',"$id_formulario",'opcion'," tabla='form_id' AND descripcion ='$row[id_campo]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
- if($privado == "") { $privado="0";}
-
-
- //$multiple = $multiple[0];
-$resultado .= "
-
- $row[id_campo] $row[campo_nombre]
-
-
- Obligatorio
-
-
- 0
-
- 1
-
-
- Privacidad
-
- 0
-
- 1
-
-
-
-
-
-
-
-
";
- }
-
-$consulta_campos_todos ="SELECT form_campos.id, form_campos.campo_nombre, form_campos.campo_descripcion FROM form_campos WHERE form_campos.id_empresa = '$_SESSION[id_empresa]'
- ORDER BY campo_nombre ";
-$sql_consulta_campo =mysqli_query($consulta_campos_todos,$link);
-
-$crear_nuevo ="
-
-
-
-
-
-
-";
- while( $row = mysqli_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "
$row[campo_nombre] [$row[id]] ";
- }
-$resultado .="
-
-
-
-$crear_nuevo ";
-
- }/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
- if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="
Seleccione un campo";}
-else {
-$id_form=func_get_arg(3);
-$consulta = "SELECT id_campo FROM form_contenido_campos WHERE id_empresa = '$_SESSION[id_empresa]' AND id_campo= '$id' AND id_form= $id_form";
-$sql_consulta =mysqli_query($consulta,$link);
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if(mysqli_num_rows($sql_consulta) =='0') {
-$microtime = microtime();
-$orden = remplacetas('form_contenido_campos','id_form',$id_form,'orden',"") ;
-$nuevo_orden = $orden[0]+1;
-$consulta_grabar=" INSERT INTO form_contenido_campos (
-`id_campo` ,
-`id_empresa` ,
-`orden` ,
-`id_form` ,
-`obligatorio`,
-`control`
-)
-VALUES (
-'$id', '$id_empresa','$nuevo_orden', '$id_form', '0', md5('$microtime' + rand())
-)";
-$sql_consulta_grabar =mysqli_query($consulta_grabar,$link);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_form')");
-return $respuesta;
- }else{
-$div='atencion';$resultado="
El campo ya pertenece a esta consulta ";
- }
- }
-
- }///fin de grabar_campos
-
-if($tipo=='eliminar'){
-$confirmar=func_get_arg(3);
-
-
-if($id==''){
-$id_c=func_get_arg(4);
-$capa_original=func_get_arg(5);
-$resultado = "
- Seguro que desea eliminar el campo de esta consulta?
-
[SI]
-
[NO]
-
- ";}
- else{
- if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "
-
- ";
- }else{
-$consulta="DELETE FROM `form_contenido_campos` WHERE `control` = '$confirmar' LIMIT 1";
-$sql_consulta_eliminar = mysqli_query($consulta,$link);
-$div=func_get_arg(5);
-$id_consulta=func_get_arg(4);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_consulta')");
-
- }
- }
-
- }/// fin de eliminar
-if($tipo == 'obligatorio'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `obligatorio` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($consulta,$link);
-$a ="
$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-if($tipo == 'orden'){ /// orden
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `orden` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($consulta,$link);
-$a ="
$id
- ";
-
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-
-if($tipo == 'prellenado'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `consulta_tipo_campos` SET `prellenado` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($consulta,$link);
-$a ="
$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de oprellenado
-$respuesta->addAssign($div,"style.display","block");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("agregar_campos");
-
-function formulario_nuevo($formulario,$div){
- $resultado ="";
- $formulario = mysql_seguridad($formulario);
- $respuesta = new xajaxResponse('utf-8');
- //$formulario=mysqli_real_escape_string($link,$formulario);
- $id_empresa= $_SESSION['id'];
- if($div==''){
- $div = "contenido";
-
-$resultado .= "
Formulario ";
-
- return $resultado;
- }
-if($formulario ==''){
- $formulario_nombre = "nuevo_formulario";
- $formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-
-Crear un formulario
-
- Nombre para el formulario
-
-
-
- Descripción
-
-
-
- Formulario anidado con:
- $formulario_respuesta
-
-
- Grupo:
-
-
-
-
- Privado
-
- Público
-
-
-
-
-
- Grabar
-
-
- ";
-
- }else{
-$control = md5(rand(1,99999999).microtime());
-
-$nombre = $formulario['nombre']; // aa
-$descripcion = $formulario['descripcion']; // dxddc
-$publico = $formulario['publico']; // dxddc
-$grupo = $formulario['grupo'];
-$id_empresa = $_SESSION['id_empresa'];
-
-if($publico =='') {$publico ='0';}
-$propietario= $_SESSION['id'];
-$formulario_respuesta = $formulario['formulario_respuesta']; // dxddc
-$link=Conectarse();
-@$formulario=mysqli_real_escape_string($link,$formulario);
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-VALUES ('$nombre', '$descripcion', '1', '1', '$publico', '$propietario','$formulario_respuesta','$id_empresa');";
-$sql=mysqli_query($consulta,$link);
-$ultimo_id = mysqli_insert_id($link);
- if($grupo !="") {
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo' ,id_empresa= '$id_empresa'";
- $sql_grupo=mysqli_query($consulta_grupo,$link);
- }
-
-$respuesta->addscript("xajax_formulario_listado('','contenido'); ");
-}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_nuevo");
-
-
-function formulario_listado($filtro_grupo,$div){
- $item="";
- $grupo_formularios="";
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} if($div==''){
- $div = "contenido";
- if(isset($_SESSION['grupo_formularios'])) { $sesion_grupo_formularios = $_SESSION['grupo_formularios'];}else { $sesion_grupo_formularios = "";}
-$resultado = "
Formularios ";
-
- return $resultado;;
- }
-$control = md5(rand(1,99999999).microtime());
-$respuesta = new xajaxResponse('utf-8');
-$_SESSION['grupo_formularios'] = $filtro_grupo;
-
-$link=Conectarse();
- $id=mysqli_real_escape_string($link,'$id');
-mysqli_query("SET NAMES 'utf8'");
-if($filtro_grupo =="") {
-$consulta = "SELECT * FROM form_id WHERE id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
- }
-else {
-$consulta = "
-SELECT * FROM form_id, form_grupo
-WHERE form_grupo.id = form_id.id
-AND form_grupo.grupo = '$filtro_grupo'
-AND form_id.id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
-}
-$sql=mysqli_query($consulta,$link);
-if($filtro_grupo !="") {
- $leyenda_filtro_grupo ="
Grupo $filtro_grupo ";
-
- }else{ $leyenda_filtro_grupo ="
Administración de Formularios ";
- unset($_SESSION['grupo_formularios']);
- }
-$resultado_link = "
Formularios ";
-$respuesta->addAssign("link_formulario","innerHTML",$resultado_link);
-
-
-$divider = 1;
-$columnas = intval(12/$divider);
-// $listado_grupos = select_empresa('form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","AGRUPADO",'','',"$id_empresa");
- $listado_grupos = select_empresa('form_id, form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","form_grupo.id = form_id.id",'','',"$id_empresa");
- $listado_grupos ="
-
- Seleccione un grupo de formularios
- $listado_grupos
-
-
- ";
- $clonar = clonar_formulario($formulario,$id_empresa,"","","formato");
- $mover = mover_formulario($formulario,$id_empresa,"formato");
- $nuevo_formulario = "
-
";
- $resultado = "
-
- $nuevo_formulario
-
-
- $listado_grupos
-
- $leyenda_filtro_grupo
-
-
-
- ";
-
-if (mysqli_num_rows($sql)!='0' ){
- $i =0;
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- $id= $row['id'];
- $C = $id;
-
- $cantidad = formulario_contar($row['id']);
- if($cantidad >0) {$cantidad ="
Llenado: $cantidad veces ";}else{$cantidad = "";}
- $propietario = remplacetas('usuarios','id',$row['propietario'],'email',"") ;
- $estado = remplacetas('form_id','id',$id,'publico',"") ;
- $nombre_formulario = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion_formulario = remplacetas('form_id','id',$id,'descripcion',"") ;
- $estado = "
-
- Contenido privado
-
- Público
-
- ";
- $modificable = remplacetas('form_id','id',$id,'modificable',"") ;
- $modificable = "
-
- Formulario privado
-
- Público
-
- ";
-
-
- $primer = formulario_uso("$id",'','primer') ;
- if(@$primer[0] !='') {$primer = "
Primer registro: ".date ( "Y-m-d h:i:s" , $primer[0])." ";}else{$primer='';}
- $ultimo = formulario_uso("$id",'','ultimo') ;
- @$ultimo_control = $ultimo[1];
- if(@$ultimo[0] !='') {$ultimo = "
Último registro: ".date ( "Y-m-d h:i:s" , $ultimo[0])." ";}else{$ultimo='';}
-
- $nombre = editar_campo("form_id",$row['id'],"nombre","","","","");
- $orden = editar_campo("form_id",$row['id'],"orden","","","","");
- $descripcion = editar_campo("form_id",$row['id'],"descripcion","","","","");
- $geo = buscar_campo_tipo($id,"14");
- $email_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- $mensaje_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
- if($geo[0] !='') { $mapa= "
Mapa";}else {$mapa='';}
-
- if($i % $divider==0) {
-
-//$item .= "";
- }
- $i++;
- $grupo_actual = remplacetas('form_grupo','id',$row['id'],'grupo',"") ;
- if(is_null($grupo_actual[3])) {
- $valores_grupo['id']=$row['id'];
- $valores_grupo['grupo']="";
- $grupo = "
-
- ";
- // $grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }else
- {
- $grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
- }
-
-$item .= "
-
-
-
-
-
-
-
- Creación: $row[creacion] / $propietario[0]
- $cantidad
- $ultimo
- $primer
- $mapa
-
-
-
-
-
$row[id]
-
-
-
-
-
-
-
-
-
-
-
-
Agregar o quitar campos
-
-
-
-
-
-
-
- Nombre: $nombre
- Descripción: $descripcion
- Orden: $orden Grupo: $grupo
-
-
-
Mensaje de respuesta
-
-
$mensaje_envio[0]
-
Soporta CSS3, HTML5 y Bootstrap
-
Grabar y previsualizar
-
-
-
-
-
Previsualización
-
- $mensaje_envio[0]
-
-
-
-
-
-
-
-
-
-
- $estado
-
-
- $modificable
-
-
-
-
-
- ";
-
-
- if($i%$divider==0) {
- $item .= "
";
- }
-
- }
-
-
- //$resultado .="";
- }
-
-
-else{ $resultado .= "
Aún no se han diseñado formularios ";}
-
- $resultado_formulario ="
-
-
- ";
-/*
-
- */
- $resultado = "$resultado $resultado_formulario ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_listado");
-
-function formulario_eliminar($id,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre_form = $nombre[0];
- if($tipo =='') {
-$resultado ="
";
-}elseif($tipo=='cancelar') {
- $resultado ="
Eliminar";
-}elseif($tipo =='eliminar'){
-$consulta = "DELETE FROM form_id WHERE form_id.id = '$id' ";
-$link=Conectarse();
- $sql=mysqli_query($consulta,$link);
- if($sql) {
- $respuesta->addAlert("Se eliminó el formulario \" $nombre_form \" ");
- $respuesta->addAssign("panel_$id","innerHTML","");
- return $respuesta;
-
- }
-}
-else {}
-$respuesta->addAssign("eliminar_$id","innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_eliminar");
-
-
-function campo_multiple($id_campo,$id_form,$control,$item){
-//if ( !isset ( $_SESSION['id'] ) ) { return;}
-
- if($item==''){$item=1;}
- $id= $item;
-$render = formulario_campos_render($id_campo,$id_form,$control,$item+1);
- $ingredientes = "
-
- $render
-
-
-
-
- ";
- $boton= "
".($item+1)."
- Agregar campo
-
";
-$div = "id_campo_$id_campo"."_".$id;
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$ingredientes);
-$respuesta->addAssign("boton_".$id_campo."","innerHTML","$boton ");
-return $respuesta;
-
-}
-$xajax->registerFunction("campo_multiple");
-
-
-function formulario_campos_render($id_campo,$id_form,$control,$item,$id_dato){
-$cols ="";
-$style="";
-$campo_multiple="";
-$render="";
- if($id_form !="") {
- $w_form = " AND form_contenido_campos.id_form = '$id_form' ";
- }
- else{
- $w_form ="";
- }
-
-$consulta ="
- SELECT *
- FROM form_contenido_campos,form_campos, form_tipo_campo
- WHERE form_contenido_campos.id_campo = '$id_campo'
- $w_form
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = form_campos.campo_tipo ";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0'){
- if($id_dato !='') {
- $value = remplacetas('form_datos','id',$id_dato,'contenido'," control = '$control'") ;
- $multiple='0';
- $esta_editando =1;
- }
- else {
- $value = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$control'") ;
- $multiple=mysqli_result($sql,0,"multiple");
- }
- if($item=='') {$item ="0";}else {$item=$item;}
- $clase_item="clase_$id_campo";
-
- if($value[0] !='') {$value= "$value[0]";}ELSE{$value='';}
- $campo_nombre=mysqli_result($sql,0,"campo_nombre");
- $campo_descripcion=mysqli_result($sql,0,"campo_descripcion");
- $campo_tipo_accion=mysqli_result($sql,0,"tipo_campo_accion");
- $campo_obligatorio=mysqli_result($sql,0,"obligatorio");
- if($campo_obligatorio =='1') {$obligatorio ="danger";}else{$obligatorio ="default";}
-
- if($campo_tipo_accion == 'text'){$render = "
";}
- elseif($campo_tipo_accion == 'date'){$render = "
";}
- elseif($campo_tipo_accion == 'rango'){
- $rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = "$rango
$campo_descripcion ";}
- elseif($campo_tipo_accion == 'mapa'){
- $lat="";
- $lon="";
- $zoom="";
- if($value !=""){
-
- $campos = explode(" ",$value);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- if($lat =="") {
- $localizacion = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- //$render= $localizacion[0];
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
-
- }
- }
-
- $render .= "
-
-
-
-
-
- ";
- $cols='12';
- }
-elseif($campo_tipo_accion == 'email'){$render = "
-
-
Escriba un email válido
";}
- elseif($campo_tipo_accion == 'envio'){$render = "
-
-
Se enviará un email
";}
- elseif($campo_tipo_accion == 'textarea'){
- $render = "
-
-
-
$value ";
- $cols='12';
- }
- //$subir_imagen = subir_imagen('');
- elseif($campo_tipo_accion == 'imagen'){
- $style ="display:hidden";
- // $gps = leer_exif($file);
- $render= "
"; //subir_imagen('',$id_campo[$item]);
- $cols='12'; }
-
- elseif($campo_tipo_accion == 'html'){
- $render = "
-
-
Editor HTML
-
-
$value
-
-
-
- ";
- $cols='12';
- /*$respuesta = new xajaxResponse('utf-8');
- $respuesta->addscript("$(document).ready(function() {
- $('.$clase_item').summernote();
- });");
- */
- }
- elseif($campo_tipo_accion == 'limit'){
- $limite = limite("".$id_campo."[".$item."]",'','limite');
- $rows = ceil($limite / 50 )+1;
- $render = "$limite /
-
-
-
$value ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'select'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_edit($id_campo,$id_form,"$value",$id_campo."[".$item."]",$control);
- $render = "$select
$campo_descripcion "; $cols='12'; }
- elseif($campo_tipo_accion == 'radio'){
- $select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select
$campo_descripcion ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_campos'){
- //radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control)
- $campos_valores = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $mensaje = remplacetas('form_campos','id',$id_campo,'campo_descripcion',"") ;
- $campos = explode(":",$campos_valores[0]);
- $titulos = explode(";",$campos[0]);
- $campos_incluidos = explode(";",$campos[1]);
- for($i=0;$i
$campos_incluidos[$i] ";
- //$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "
-
-
-
- $mensaje[0]
- $listado_titulos
- $listado_campos
-
-
-
";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_linea'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = " ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'checkbox'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = checkbox_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select $campo_descripcion ";}
- elseif($campo_tipo_accion == 'combo'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = combo_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'relacion'){
- $select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'buscador'){
- $select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'base'){
- $select = buscador_base($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";}
- elseif($campo_tipo_accion == 'vinculado'){
- $vinculado = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $select = formulario_areas($vinculado[0],'campos');
- $render = "
- $select
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'number'){
- $render = "
-
- (solo números)
";
- $cols='12';
- }
-
- elseif($campo_tipo_accion == 'password'){
- if( $control != "") {
- $render="";$label=""; $campo_tipo_accion="oculto";
- }else {
- $render = "
-
- ";
- }
- //else {}
- $cols='12'; }
- elseif($campo_tipo_accion == 'unico'){
- $render ="
-
";
- }
- else{$render = " ";}
- if($multiple =='1'){
-
-
- $campo_multiple = "
-
- ";
-}
- if($item == 0) { $label = " $campo_nombre ";}
- else {$label = "$campo_nombre $campo_obligatorio ";}
- ///// CAMPOS QUE NO SE MOSTRARAN
- if($campo_tipo_accion == 'imagen'){
- $label="";
- $campo_descripcion="";
- }
- if($cols =="") {$cols = "6";}
- $input = "
-
-
-$campo_multiple
-
- ";
-
-
-if($campo_tipo_accion != "oculto") {
- $input= $input;
- }else { $input ="";}
-
- }
- return $input;
-}
-
-function validar_email($email) {
-
-if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
- return 1;
-}else{
- return 0;
-}
-}
-
-function formulario_valor_campo_ORIGINAL($perfil,$id_campo,$valor,$id_control){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$valor=mysqli_real_escape_string($link,$valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-$consulta = "SELECT * FROM `form_datos` WHERE `form_id` = '$perfil' AND id_campo='$id_campo' $valor AND `control` = '$id_control' ORDER BY timestamp DESC limit 1";
-$sql =mysqli_query($consulta,$link);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$timestamp=mysqli_result($sql,0,"timestamp");
-mysqli_data_seek($sql, 0);
-if($cant === 1) {
- $contenido=mysqli_result($sql,0,"contenido");
- }else {
-while( $row = mysqli_fetch_array( $sql ) ) {
- $contenido .= "$row[contenido]\n ";
- }
- }
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = $contenido;
-}
-return $existe;
- }
-
-
-
-function formulario_valor_campo($perfil,$id_campo,$valor,$id_control,$orden,$timestamp){
-$contenido="";
-if ($timestamp != ""){$where_timestamp = "AND form_datos.timestamp = '$timestamp' ";}ELSE { $where_timestamp = ""; }
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-$campo_multiple = remplacetas("form_contenido_campos","id_campo",$id_campo,"multiple"," id_form ='$perfil'");
-$tipo_campo = remplacetas("form_campos","id","$id_campo","campo_tipo","");
-$campo_multiple = $campo_multiple[0];
-if($tipo_campo[0] =="24") {$campo_multiple = "1";}
-/// SI EL CAMPO ES MULTIPLE O CHECK BOX MUESTRA LAS MULTIPLES ENTRADAS
-if($campo_multiple !="1" ){ $limite =" asc limit 1 ";}else {$limite =" asc ";}
-if(@$orden !=""){ $campo_orden =" AND orden ='$orden' ";}else {$campo_orden ="";}
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$valor=mysqli_real_escape_string($link,$valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-/*
-$consulta = "SELECT * FROM `form_datos`
-WHERE `form_id` = '$perfil'
-AND id_campo='$id_campo' $valor
-AND `control` = '$id_control' $campo_orden
-GROUP BY orden
-ORDER BY timestamp $limite ";
-*/
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$perfil'
- AND id_campo ='$id_campo' $valor
- AND control ='$id_control' $campo_orden
- $where_timestamp
- group by orden
- ORDER BY orden $limite";
-
-$sql =mysqli_query($consulta,$link);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$timestamp=mysqli_result($sql,0,"timestamp");
-$orden=mysqli_result($sql,0,"orden");
-$id_usuario=mysqli_result($sql,0,"id_usuario");
-$ip=mysqli_result($sql,0,"ip");
-mysqli_data_seek($sql, 0);
-$md5_contenido = "";
-if($cant === 1) {
- //$contenido=mysqli_result($sql,0,"contenido");
- $identificador=mysqli_result($sql,0,"identificador");
- $identificador = explode(',',$identificador);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $md5_contenido = $contenido_campo[3];
- //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
- //$md5_contenido = $md5_contenido[0];
- $contenido = "$contenido_campo[0] ";
- }else {
-while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_campo[0]\n";
- }
- }
-// $contenido .="$consulta";
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = "$contenido";
-$existe[] = $md5_contenido;
-$existe[] = $orden;
-$existe[] = $id_usuario;
-$existe[] = $ip;
-}
-return $existe;
- }
-
-function formulario_grabar($formulario) {
- $debug="";
- $respuesta = new xajaxResponse('utf-8');
- $datos="";
- $envio="";
- //$formulario = mysql_seguridad($formulario);
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
- $consulta_grabada ='0';
- $control = $formulario['control']; //
- $form_id = $formulario['form_id']; //
- $tipo = $formulario['tipo']; //
- if(@$formulario['imagen'] !=''){$formulario[0][0] = $formulario['imagen'];}
-
- $consulta_form = "SELECT * FROM form_contenido_campos,form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$form_id' ";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-// $sql=mysqli_query($consulta_form,$link);
-
-// if (mysqli_num_rows($sql)!='0'){
-// mysqli_data_seek($sql, 0);
-// while( $row = mysqli_fetch_array( $sql ) ) {
-
-
-//////
- if(isset ( $_SESSION['id_empresa'])){$id_empresa = $_SESSION['id_empresa']; }else{
- $id_empresa = remplacetas('form_id','id',$formulario['form_id'],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- }
-foreach($formulario as $c=>$v){
-
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if($V != '') {
-
-
-
-$datos .= "$$c = \$formulario['$c'][$C]; // $V /$campo_tipo[0]
";
- if($campo_tipo[0] =='12' OR $campo_tipo[0] =='13') {
- $validar = validar_email($V);
- if($validar == '0') {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }else {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- }
- }
- if($campo_tipo[0] =='3' ) {
- $validar = is_numeric($V);
- if(is_numeric($V) ) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
- }else{
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] solo acepta valores numéricos");
- return $respuesta;
- }
- }
-
- if($campo_tipo[0]=='17') {
- $limite = limite("$c",'','limite');
- $size= strlen($V);
- $restante = ($limite - $size);
- if( $restante < 0) {
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] no debe tener mas de $limite caractéres, sobran $restante");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
- }
-
-
-
- }
-else{ //busca campos vacios
-
-$campo_obligatorio = remplacetas("form_contenido_campos","id_campo",$c,"obligatorio","id_form = '$formulario[form_id]'");
-if($campo_obligatorio[0] =='1'){
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] es obligatorio");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
-
-}
-
-$md5 = md5($V);
-$igual = formulario_valor_campo("$form_id","$c","$md5","$formulario[control]","$C");
-$existe = formulario_valor_campo("$form_id","$c","","$formulario[control]","$C");
-//$valor_anterior .= $existe[3]."| ";
-$debug .= "$existe";
-if(!is_null($existe) AND $tipo =='edit' AND $V =='') {
- $consulta_vacio ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysqli_query($consulta_vacio,$link);
- if($sql) {
- $consulta_grabada ='1';
- }
-}
-if(is_null($igual) ){$repetido = 0;}else{
-$repetido = 1;
-}
-
-
-//return $respuesta;
-//$respuesta->addAlert("$debug");
-//return $respuesta;
-$debug .= "V = $V /$c /$repetido / $igual ";
-//$V = str_replace("
", "", $V );
-if(($V !='' ) && (is_numeric($c)) AND $repetido !=1 ) {
-//$debug = "Hola mundo";
- $V = mysqli_real_escape_string($link,$V);
- ///
-
- $V = htmlentities($V);
-
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
-
-if(@$campo_tipo[0] =="18") {
- $V = md5("$V");
-}else{$V=$V;}
-
-
- $consulta ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '".@$_SESSION[id]."', '$V', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysqli_query($consulta,$link);
- $debug .= "$consulta = $sql ,";
- if($sql) {
- $consulta_grabada ='1';
- }
- }
-
- } ///fin del array
-
- }///fin del array primario
- else {
- if($v !='') { //$datos .= "$$c = \$formulario['$c']; // $v
";
- }
- }
- }
-
-
-
-
-// }
-// }
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
- if($formulario['continuar']=='1') {
-// xajax_formulario_embebido_ajax($form[0],'$identificador','edit')
- //$respuesta->addscript("$('#muestraInfo').modal('hide')");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("xajax_formulario_embebido_ajax('$formulario[form_id]','$formulario[control]','edit') ");
- return $respuesta;
- }
-
-if($tipo == "embebidoX" )
-{
- $exito ="
-
- $formulario[mensaje]
-
- ";
- $mail = '1';
- }
- elseif($tipo == "solocampos" ){
-
-
- $exito ="
-
- $formulario[mensaje]
-
- ";
-
- $mail='0';
- }
- else{
- $campo_envio = buscar_campo_tipo($formulario['form_id'],"13");
- if($campo_envio[0] != "") {
-$envio = email_contenido("$formulario[form_id]","$formulario[control]","$campo_envio[0]",'');
- }
-
-if($tipo = "embebido") {
-$otro_formulario ="
-
- Llenar otro formulario
-
-";
-}else {
- $otro_formulario = "
-
- Llenar otro formulario
-
-
- ";
-}
-$impresion = formulario_imprimir("","$formulario[control]","preview");
-$mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
-//$impresion = mostrar_identificador($formulario['control']);
- $exito ="
-
- $mensaje_agradecimiento[0]
-
-
- $impresion
-
-
- Gracias por aportar $formulario[form_nombre]
-
-
- $otro_formulario
-
-
- $envio
-
-
-
";
-
-// $mail ='1';
- }
-
-//if($mail =='1') {
-
- //$propietario = remplacetas('form_id','id',$formulario[form_id],'propietario',"") ;
- //$propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $email_envio = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($email_envio[0] !="") {
- $impresion = formulario_imprimir("","$formulario[control]","preview");
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email = remplacetas("empresa","id","1","email","");
- $email = remplacetas("empresa","id","$id_empresa","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$formulario[form_id],"nombre","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $razon_social[0] <$reply[0]>\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0]" . "\r\n";
-
-$asunto= "$nombre_formulario[0]";
-$cuerpo ="
-$mensaje_agradecimiento[0]
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]I$formulario[control]
-
-Descargo de responsabilidades
-Esta herramienta es creada y proporcionada por Tupale.co, como portal para el activismo de datos no nos hacemos responsables por el uso de la herramienta y cuando utilizas esta herramienta para enviar una carta firmas la petición con tu nombre personal, de esta forma es responsabilidad de cada persona que diligencie el formulario así como los comentarios escritos y los datos personales, por motivos de seguridad almacenamos temporalmente algunos metadatos como tu dirección IP y la hora de diligenciamiento de la carta, los demás datos personales son aquellos pedidos en el formulario que se encuentran protegidos por las politicas que puedes leer a continuación: Políticas de privacidad y protección de datos.
-
";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $exito .=""; }else {$exito .="error enviando correo";}
- //$exito .= "$email[0] $headers ";
- }
- /// }
- $respuesta->addAssign("div_$control","innerHTML","$exito ");
- return $respuesta;
- }else{
- $mensaje ="
-
-
Todo bien pero al parecer no se modicaron registros ";
- $respuesta->addAssign("div_$control","innerHTML","$mensaje");
- }
-//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
-return $respuesta;
-}
-$xajax->registerFunction("formulario_grabar");
-
-function mysql_seguridad($inp) {
- if(is_array($inp))
- return array_map(__METHOD__, $inp);
-
- if(!empty($inp) && is_string($inp)) {
- return str_replace(array('\\', "\0", "'", '"', "\x1a"), array('\\\\', '\\0', "\\*", "\\*", '\\Z'), $inp);
- }
-
- return $inp;
-}
-
-function formulario_campos_render_multiple($id_campo,$id_form,$control,$item) {
-
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$id_form'
- AND id_campo ='$id_campo'
- AND control ='$control'
- group by orden ORDER BY orden asc";
- $link=Conectarse();
- //$resultado .= "$consulta";
- mysqli_query("SET NAMES 'utf8'");
- $sql =mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0' ){
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- //$identificador = $row[identificador];
- $resultado .= $identificador;
- $resultado .= formulario_campos_render($row[id_campo],$id_form,$control,$row[orden],$identificador);
- $item = $item + 1;
- }
- }
- $resultado .= formulario_campos_render($id_campo,$id_form,'',$item,'')."";
-
- return $resultado;
-}
-
-
-
-function formulario_modal($id,$form_respuesta,$control,$tipo) {
-
- $respuesta = new xajaxResponse('utf-8');
- $solo_campos ="";
- $subir_imagen ="";
-
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
- $formulario_respuesta = formulario_respuesta("$id","$control");
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"",'') ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = "$formulario_respuesta";
- $pie .= empresa_datos("$id_empresa",'pie');
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $cabecera ="".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
-
- $nuevo_formulario = "Llenar otro formulario ";
-if($control !='' AND $tipo =='' ) {
- $impresion = formulario_imprimir("$id","$control","");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $muestra_form = "$impresion
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $modificable = remplacetas('form_id','id',$id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
-
-$consulta = "
- SELECT * FROM form_id, form_contenido_campos
- WHERE form_id.id = form_contenido_campos.id_form
- AND form_id.id = '$id' ORDER BY form_contenido_campos.orden ASC
- ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- $descripcion=mysqli_result($sql,0,"descripcion");
- $nombre=mysqli_result($sql,0,"nombre");
- $id_empresa=mysqli_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera = "
- $salir
-
-
-
-
-
-
-
-
-
$nombre $descripcion
-
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($id,"15");
-@$campo_imagen_nombre = $campo_imagen[1];
-@$campo_imagen = $campo_imagen[0];
-
-
-if (@$campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$id","$campo_imagen"."[0]");
- }
- $muestra_form = "
-
-
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {
-
- //if(null === @$_SESSION['id'] AND $permiso_identificador != $control) {
- if($_SESSION['id_empresa'] !== $id_empresa AND $permiso_identificador != $control) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
-
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //// si no esta logueado nose puede editar ////
- $control_edit = "$control";
-
- }else {$control_edit = "";}
-
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas("form_campos","id","$row[id_campo]","campo_tipo","");
- //if($tipo_campo[0] =="24") { $row[multiple] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos = formulario_campos_render_multiple($row['id_campo'],$id,$control_edit);
- }else{
- $campos = formulario_campos_render($row['id_campo'],$id,$control_edit,'','');
- }
- $muestra_form .= "$campos ";
- $solo_campos .= "$campos ";
- }
- $muestra_form .="
-
- ";
- }
-
-$muestra_form .="
-
-
-
";
- $muestra_form = "$muestra_form
";
-if($tipo=='campos') {
- return $solo_campos;
-}
-if($tipo=='embebido') {
- return $muestra_form;
-}
-
-$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
-$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
-$respuesta->addAssign("pie_modal","innerHTML","$pie");
-$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-//$respuesta->addscript("$('textarea').markdown({autofocus:false,savable:false})");
-//$respuesta->addscript("$(document).ready(function () { $(\"#24[0]\").cleditor(); })");
-//$(document).ready(function () { $("#input").cleditor(); });
-
-
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_modal");
-
-
-
-function limpia_div($capa){
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($capa,"style.padding","0px");
-$respuesta->addClear($capa,"innerHTML");
-
-return $respuesta;
-}$xajax->registerFunction("limpia_div");
-
-function contenido_ocultar($capa){
-$respuesta = new xajaxResponse('utf-8');
-//$respuesta->addAssign($capa,"innerHTML","$contenido");
-$respuesta->addAssign("$capa","className","hidden");
-
-return $respuesta;
-}$xajax->registerFunction("contenido_ocultar");
-
-function contenido_show($capa){
-$respuesta = new xajaxResponse('utf-8');
-//$respuesta->addAssign($capa,"innerHTML","$contenido");
-$respuesta->addAssign("$capa","className","show");
-
-return $respuesta;
-}$xajax->registerFunction("contenido_show");
-
-
-function select_key($tabla,$key,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$key;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-$resultado="
-Seleccione
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
-if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_empresa($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor,$id_empresa){
- $w ="";
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$tablas= explode(",",$tabla);
-$tabla1= $tablas[0];
-@$tabla2= $tablas[1];
-
-$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- if($where =='AGRUPADO'){$group="GROUP BY $value ";}
- elseif($where != ''){$w = "AND ".$where; $group="GROUP BY $value "; }
- else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE $tabla1.id_empresa = '$id_empresa' $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-function sin_acentos($cadena) {
-$no_permitidas= array ("á","é","í","ó","ú","Á","É","Í","Ó","Ú","ñ","À","Ã","Ì","Ò","Ù","Ù","à ","è","ì","ò","ù","ç","Ç","â","ê","î","ô","û","Â","Ê","ÃŽ","Ô","Û","ü","ö","Ö","ï","ä","«","Ò","Ã","Ä","Ë");
-$permitidas= array ("a","e","i","o","u","A","E","I","O","U","n","N","A","E","I","O","U","a","e","i","o","u","c","C","a","e","i","o","u","A","E","I","O","U","u","o","O","i","a","e","U","I","A","E");
-$texto = str_replace($no_permitidas, $permitidas ,$cadena);
-return $texto;
-}
-
-function select_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado="
-Seleccione
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
- //$coll = collator_create( 'en_US' );
- //$res = collator_compare( $coll, $row['campo_valor'], $valor );
-if( $row['campo_valor'] == "$valor"){$selected="selected";}else{$selected ="";}
-//if($res === 0){$selected="selected";}else{$selected ="";}
-//if(strcmp($row['campo_valor'], $valor) === 0 ){$selected="selected";}else{$selected ="";}
-$resultado .= " $row[campo_valor] ";
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-
-
-function radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-$valor = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-$nombre_linea = mysqli_result($sql,0,"campo_nombre");
-$descripcion_linea = mysqli_result($sql,0,"campo_descripcion");
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor[0]"){$selected="checked";}else{$selected ="";}
-$lineas .= " $row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function radio_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-$nombre_linea = mysqli_result($sql,0,"campo_nombre");
-$descripcion_linea = mysqli_result($sql,0,"campo_descripcion");
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$lineas .= "$row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-function radio_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado="
-
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$resultado .= " $row[campo_valor]
";
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function checkbox_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
- $name = explode("[",$name);
- $name = $name[0];
- $fila="0";
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' and contenido ='$row[campo_valor]' ");
-
- $nombre= "$name"."[".$fila."]";
-//if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-if($value[0] ==="$row[campo_valor]"){$selected="checked";}else{$selected ="";}
-$resultado .= "
-
-
- $row[campo_valor] $selected
-
-
";
- $fila++;
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function rango($tabla,$campo,$key,$valor,$selected,$nombre,$onchange){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT min($campo) as min , max($campo) as max FROM $tabla WHERE $key ='$valor' ";
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
- $min=mysqli_result($sql,0,"min");
- $max=mysqli_result($sql,0,"max");
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-$resultado="
- $min
-
- $max $selected
-
" ;
-
-
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function limite($id_campo,$contenido,$tipo){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT campo_valor FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
- $limite=mysqli_result($sql,0,"campo_valor");
-
- }else{}
- if($tipo =='limite') { return $limite;}
-$respuesta = new xajaxResponse('utf-8');
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("limite");
-
-function confirma_campo($valor_1,$valor_2,$campo,$campo_confirmacion){
- $respuesta = new xajaxResponse('utf-8');
- $pos = strpos($campo,"email");
-
-if($pos == "") { //// si no es un email
- }
- else {//// si es un email se revisa
- $email = validar_email("$valor_1");
- if($email === 0 ) {
- $respuesta->addAssign("$campo","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("El email no es valido ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- return $respuesta;
- }
- else{
- }
- }
-
-
-
- if($valor_1 != $valor_2){$resultado = "Los valores NO son iguales";
- $respuesta->addAlert("$resultado");
- /// $respuesta->addAssign("$campo","style.color","red");
-
-
- $respuesta->addAssign("$campo","value","$pos");
- $respuesta->addAssign("$campo_confirmacion","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- // document.getElementById('mobileno').focus();
-
-
- }else{
- //$respuesta->addAssign("$campo_confirmacion","style.color","green");
-
- $respuesta->addAssign("$campo","className"," form-control ");
- $respuesta->addAssign("$campo_confirmacion","className"," form-control ");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-success ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-success ");
- }
- return $respuesta;
-}
-$xajax->registerFunction("confirma_campo");
-
-
-function validar_campo($valor,$campo,$tabla,$div,$id){
-$valor = mysql_seguridad($valor);
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta="SELECT $campo FROM $tabla WHERE $campo = '$valor' LIMIT 1";
-$sql =mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0' ){
-$verificacion = "atencion"; $existe='';
-
-$respuesta->addAssign($campo,"value","");
-///$respuesta->addAlert("El valor $valor $existe existe");
-$resultado = "Grrr $valor $existe existe ";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else {$verificacion ="check"; $existe='NO';}
-$resultado = "Ok, buen $campo ! ";
-$respuesta->addAssign("$id","style.backgroundColor","#CBE7CB");
-//$resultado .= "$valor,$campo,$tabla,$div";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-
-return $respuesta;
-}
-$xajax->registerFunction("validar_campo");
-
-
-function comprobar_email($email,$tipo,$campo){
-$email = mysql_seguridad($email);
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='tercero') {$id_campo='tercero_email';}
-
-
-else{$id_campo = 'email';}
-
-if($campo !=''){
-$id_campo="$campo";
-}
-
-
-if ($email == "" AND $tipo==''){
- $respuesta->addAlert("El campo email es obligatorio ");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- return $respuesta;
- }
-
- $mail_correcto = 0;
- //compruebo unas cosas primeras
- if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
- if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
- //miro si tiene caracter .
- if (substr_count($email,".")>= 1){
- //obtengo la terminacion del dominio
- $term_dom = substr(strrchr ($email, '.'),1);
- //compruebo que la terminación del dominio sea correcta
- if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
- //compruebo que lo de antes del dominio sea correcto
- $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
- $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
- if ($caracter_ult != "@" && $caracter_ult != "."){
- $mail_correcto = 1;
- }
- }
- }
- }
- }
- if ($mail_correcto AND $tipo=='' )
- {
-$consulta= "SELECT email FROM usuarios WHERE email = '$email' LIMIT 1 ";
- $link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-$revisa=mysqli_result($sql,0,"email");
-if ($revisa != ''){
-
- $respuesta->addAlert("$email: ya está registrado ");
- $respuesta->addAssign("email","style.color","red");
- $respuesta->addAssign("email","value","");
- return $respuesta;
- }
- $respuesta->addAssign("email","style.color","green");}
- elseif ($mail_correcto AND $tipo==='revisar' ) {
- $revisar = remplacetas("usuarios","email",$email,"email","");
- if($revisar[0] != '') {
-
- $respuesta->addAssign("$campo","style.color","white");
- $respuesta->addAssign("$id_campo","style.backgroundColor","green");
- }else{
- $respuesta->addAlert("$email: No existe en el sistema)");
- $respuesta->addAssign("$campo","value","");
- }
- return $respuesta;
- }
-
- elseif ($mail_correcto AND $tipo==='tercero' ) {
- $documento = remplacetas("terceros","email",$email,"documento","");
- if($documento[1] =='') { /// si el tercero NO existe
-
- }else { /// si el tercero existe en el sistema
-
- $tipo_persona = remplacetas("terceros","id",$documento[1],"tipo_persona","");
-
- if($tipo_persona[0] =='1') {
- $razon_social = remplacetas("terceros","id",$documento[1],"razon_social","");
- $resultado .= " $razon_social[0]] Nit: $documento[0]";
- } else {
- $primer_nombre = remplacetas("terceros","id",$documento[1],"p_nombre","");
- $segundo_nombre = remplacetas("terceros","id",$documento[1],"s_nombre","");
- $primer_apellido = remplacetas("terceros","id",$documento[1],"p_apellido","");
- $segundo_apellido = remplacetas("terceros","id",$documento[1],"s_apellido","");
- $resultado .=" \r $primer_nombre[0] $segundo_nombre[0] $primer_apellido[0] $segundo_apellido[0] \r Documento: $documento[0]";
- }
-
- $respuesta->addAlert("$email: $resultado");
- $respuesta->addAssign("tercero_documento","value","$documento[0]");
- $respuesta->addAssign("tercero_primer_nombre","value","$primer_nombre[0]");
- $respuesta->addAssign("tercero_segundo_nombre","value","$segundo_nombre[0]");
- $respuesta->addAssign("tercero_primer_apellido","value","$primer_apellido[0]");
- $respuesta->addAssign("tercero_segundo_apellido","value","$segundo_apellido[0]");
- $respuesta->addAssign("tercero_razon_social","value","$razon_social[0]");
- $respuesta->addAssign("tercero_id","value","$documento[1]");
-
- }
-
- }
- else
- {$respuesta->addAlert("$email: no es un correo válido");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("comprobar_email");
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-
-function milfs(){
-
- if($_SESSION['grupo'] != "1") {
- $menu = "Continuar... ";// header("Location: ../");
- }else{
-
- $crear_campos = formulario_crear_campo('','','');
- $listado = formulario_listado('','');
- //$consultas = formulario_consultar('','');
- //$importador = formulario_importador('');
- //$limpiar_cache = borrar_tmp('');
- $configuracion= configuracion('');
-
- $login = login_boton('');
- $usuarios = "
-
-
- Gestión de usuarios
- ";
- $menu =
-"
-
-
-
- $crear_campos
-
- $listado
- $usuarios
- $configuracion
-
-
-
-
-
";
- }
- return $menu;
-}
-
-function url_existe($url)
-{
- $handle = @fopen($url, "r");
- if ($handle == false)
- return NULL;
- fclose($handle);
- return $url;
-}
-function es_imagen($url)
- {
- $imageSizeArray = getimagesize($url);
- $imageTypeArray = $imageSizeArray[2];
- return (bool)(in_array($imageTypeArray , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG )));
- }
-function parametrizacion($array) {
- //return $array;
- $link=Conectarse();
- mysqli_real_escape_string($link,$array);
- $accion = $array[accion];
- $tabla = $array[tabla];
- $campo = $array[campo];
- $opcion = $array[opcion];
- $descripcion= $array[descripcion];
- $visible= $array[visible];
- $id= $array[id];
-
- if($accion =='grabar'){
- $consulta= "INSERT INTO form_parametrizacion set tabla='$tabla', campo ='$campo',opcion ='$opcion' , descripcion ='$descripcion' ,visible='$visible'";
- }
- // return $consulta;
- $sql=mysqli_query($consulta,$link);
- if($sql){return "Campo grabado"; }else{return "";}
-
-}
-
-
-
-function registro_express($formulario,$accion) {
- //$formulario = mysql_seguridad($formulario);
- require("includes/datos.php");
- require ("includes/parametrizacion.php");
-
- if($nombre_formulario =="") {$nombre_formulario = "login";}
- $boton ="Grabar
";
-$respuesta = new xajaxResponse('utf-8');
-
-
- if($accion =='confirmar')
- {
- $div = "registro_confirmacion_email";
- $email_existe = remplacetas("$tabla_autenticacion","email",$formulario[email_express_confirmar],"email","");
- $documento_existe = remplacetas("$tabla_autenticacion","documento_numero",$formulario[documento_express],"documento_numero","");
- if($email_existe[0] !="" or $formulario[email_express_confirmar] ==="") {
- $respuesta->addAlert("No se ha especificado un email o ya está en uso ");
- $respuesta->addAssign("email_express_grupo","className"," input-group has-error ");
- ///$respuesta->addAssign("debug","innerHTML"," $email_existe[2]");
- $respuesta->addScript("document.getElementById('email_express').focus(); ");
- return $respuesta;
- }
- if($documento_existe[0] !="" OR $formulario[documento_express] === "") {
- $respuesta->addAlert("No se ha proporcionado un documento único // $formulario[documento_express] // ");
- $respuesta->addAssign("documento_express_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('documento_express').focus(); ");
- return $respuesta;
- }
- if( !isset($formulario[password_express_confirmar]) ){
- $resultado ="Por favor escribe una clave. $formulario[password_express_confirmar] // $formulario[password_express]
$boton";
- $respuesta->addAssign("password_express"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("Por favor escribe una la clave ");
- $respuesta->addScript("document.getElementById('password_express').focus(); ");
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }
- if($formulario[password_express_confirmar] =="" or $formulario[password_express_confirmar] !== $formulario[password_express] ){
- $resultado ="Por favor escribe y confirma una clave. $formulario[password_express_confirmar] // $formulario[password_express]
$boton";
- $respuesta->addAssign("password_express"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("Por favor escribe y confirma la clave XXX");
- $respuesta->addScript("document.getElementById('password_express').focus(); ");
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }
- if($formulario[email_express_confirmar] ==="") {
- $resultado .= "$boton No hay un email válido // $formulario[email_express_confirmar]
";
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }else{
- $email_envio = $formulario['email_express_confirmar'];
-
- $rrn = rand(123,999);
- $rrncode = MD5("$rrn");
-// $aviso= aviso('','mail privacidad','');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-
-$asunto= "Código de validación";
-$cuerpo ="
-
-
Registro
-
-
-
Código de validación
-
Bienvenido a nuestra aplicación. Por favor digita el siguente código para validar tu cuenta.
-
$rrn
-
-
-
- $aviso
- ";
-
-mail("$email_envio","$asunto","$cuerpo","$headers") ;
- $boton ="Confirmar
";
- $control = MD5(mktime().$rrncode);
- $resultado .="
-
- $boton
- ";
- }
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
- }elseif($accion =="elegir") {
- $form = "
-
-
-
-
-
-
Ya estoy registrado
-
-
-
-
-
-
Antes de continuar, por favor revisa nuestras Políticas de privacidad y protección de datos.
- ";
- return $form;
- }
-elseif($accion =="validar") {
- $boton ="
Confirmar
";
- $div = "registro_confirmacion_email";
-
-
-if($formulario[password_express_confirmar] =="" OR $formulario[password_express_confirmar] != $formulario[password_express] ){
- $resultado ="
Por favor escribe y confirma una clave.
$boton";
- $respuesta->addAssign("password_express"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("Por favor escribe y confirma la clave");
- $respuesta->addScript("document.getElementById('password_express').focus(); ");
- $respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
- }
-$codigo_confirmacion = $formulario[codigo_confirmacion]; //
-$rrn = $formulario[rrn]; //
-$codificado = md5("$codigo_confirmacion");
-if($rrn == $codificado) {
-$control = $formulario[control]; // nuevo_
-$id_empresa = $formulario[id_empresa]; // nuevo_
-if($id_empresa =="") {$id_empresa= $_SESSION['id_empresa'];}
-$nombre_formulario = $formulario[nombre_formulario]; // nuevo_
-$email_express = $formulario[email_express]; // aa@gmail.com
-$email_express_confirmar = $formulario[email_express_confirmar]; // aa@gmail.com
-$nombre_express = $formulario[nombre_express]; // nombre
-$apellido_express = $formulario[apellido_express]; // apellido
-$telefono_express = $formulario[telefono_express]; // 324343
-$password_express = $formulario[password_express]; // 1234
-$documento = $formulario[documento_express]; // 1234
-$password_express_confirmar = $formulario[password_express_confirmar]; // 23456
- $ip = obtener_ip();
-
- $link = Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "INSERT INTO $tabla_autenticacion (username,p_nombre,p_apellido,email,passwd,control,status,lastip,id_empresa,documento_numero)
- VALUES ('$email_express_confirmar','$nombre_express','$apellido_express','$email_express_confirmar','".MD5($password_express_confirmar)."','$control','1','$ip','$id_empresa','$documento')";
-//$respuesta->addAssign("debug","innerHTML",$consulta);
-//return $respuesta;
- $sql_consulta=mysqli_query($consulta,$link);
- if($sql_consulta) {
- $id = mysqli_insert_id($link);
-
- $consulta_localizacion = "INSERT INTO localizacion (id_localizado,telefono,id_grupo) VALUES ('$id','$telefono_express','1')";
- $consulta_empresa = "INSERT INTO empresa SET razon_social = '$nombre_express $nombre_express', regimen_tributario = 'simplificado' ,id_responsable='$id'";
- $sql_localizacion=mysqli_query($consulta_localizacion,$link);
- //$sql_empresa=mysqli_query($consulta_empresa,$link);
- if($sql_empresa) {
- $id_empresa = mysqli_insert_id($link);
- $_SESSION[id_empresa] = $id_empresa;
- $_SESSION[id] = $id;
- }
- //// faltan variables de session
-
- }
-$resultado = "
Bienvenido
-
Felicitaciones, tu registro se efectuó correctamente, ahora puedes usar nuestros servicios.
-
";
-$div = "contenido";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}else{
-$resultado = "
Error El Código de confirmación no es correcto, por favor inténtalo nuevamente.";
-}
-
-$resultado .= "$boton";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
-}
-elseif($accion =="nuevo") {
-//$respuesta = new xajaxResponse('utf-8');
- $div="contenido";
- if($_SESSION['id'] == 1 AND $soporte_multiempresa !== 0) {
-
-$empresa = select('empresa','id','razon_social','',"estado = '1'",'id_empresa');
-$empresa ="
-
- Empresa
- $empresa
-
-
-";
-}
-$listado_usuarios = usuarios_listado($tabla_autenticacion,"");
-$mailer = mailer('','','','');
-$form = "
-
-
-
-
- Usuario
- $empresa
-
-
-
-
-
-
-
-
-
-
-$mailer
-$listado_usuarios
-
-
-";
-$respuesta->addAssign("$div","innerHTML",$form);
-return $respuesta;
-
- }
-
-
-elseif($accion =="boton"){
-
-$modal ="
-
-
-
-
-
-
-
-
- ";
-return; //$modal;
- }
- else{}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-}
-$xajax->registerFunction("registro_express");
-
-
-function cambiar_grupo($id_usuario,$id_grupo){
- $respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $consulta = "UPDATE $_SESSION[tabla_autenticacion]
- SET `id_grupo` = '".mysqli_real_escape_string($link,$id_grupo)."'
- WHERE `id` = '".mysqli_real_escape_string($link,$id_usuario)."' ";
- $sql = mysqli_query($consulta,$link);
-$respuesta->addScript("");
- return $respuesta;
-
-}
-$xajax->registerFunction("cambiar_grupo");
-
-
-function buscar_funcionario($formulario,$tipo,$div){
-
- $tabla_autenticacion = $_SESSION['tabla_autenticacion'];
- $respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-
- if($tipo =="buscador"){
- $div ="div_mostrar_funcionario";
- $resultado= "
-
-
-
-
- Documento
-
-
-
-
-
-
-
-
-
- ";
-
-print $resultado; return;
- }
- elseif( $tipo =='busqueda') {
- $id = $formulario;
-//$consulta= "SELECT * FROM $tabla_autenticacion ,usuarios_grupo WHERE $tabla_autenticacion.id_grupo = usuarios_grupo.id_grupo AND documento_numero ='".$documento."' LIMIT 1";
-$consulta= "SELECT *, usuarios_grupo.id AS id_grupo , $tabla_autenticacion.id AS id_usuario
- FROM $tabla_autenticacion ,usuarios_grupo
- WHERE $tabla_autenticacion.id_grupo = usuarios_grupo.id AND $tabla_autenticacion.id ='".$id."' LIMIT 1";
-
-
- //$respuesta->addAlert(" ya $consulta");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
-
- //return $respuesta;
- $sql = mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!=0){
- $resultado ="
";
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($_SESSION['grupo'] === "1") {
- //($tabla,$key,$campo,$valor,$accion,$div,$indice)
- $username = editar_campo("$tabla_autenticacion",$row['id_usuario'],"username","","","","");
- $email = editar_campo("$tabla_autenticacion",$row['id_usuario'],"email","","","","");
- $p_nombre = editar_campo("$tabla_autenticacion",$row['id_usuario'],"p_nombre","","","","");
- $s_nombre = editar_campo("$tabla_autenticacion",$row['id_usuario'],"s_nombre","","","","");
- $p_apellido = editar_campo("$tabla_autenticacion",$row['id_usuario'],"p_apellido","","","","");
- $s_apellido = editar_campo("$tabla_autenticacion",$row['id_usuario'],"s_apellido","","","","");
- $fecha_nacimiento = editar_campo("$tabla_autenticacion",$row['id_usuario'],"fecha_nacimiento","","","","");
- $telefono_celular = editar_campo("$tabla_autenticacion",$row['id_usuario'],"telefono_celular","","","","");
- $titulo_profesional = editar_campo("$tabla_autenticacion",$row['id_usuario'],"titulo_profesional","","","","");
- $ocupacion = editar_campo("$tabla_autenticacion",$row['id_usuario'],"ocupacion","","","","");
- $cargo = editar_campo("$tabla_autenticacion",$row['id_usuario'],"cargo","","","");
- if($row['imagen'] =="") { $imagen = "images/profile.jpg"; }
- else{$imagen= "images/secure/?file=300/$row[imagen]";}
-
- //$grupo = seleccionar_grupo('id_grupo',"$row[id_grupo]");
- $grupo = select('usuarios_grupo','id','grupo_nombre',"xajax_cambiar_grupo('$row[id_usuario]',(this.value))",'',"","$row[id_grupo]");
- //select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor)
- $grupo ="
-
-
- Grupo:
-
- $grupo
-
-
- ";
- }
-
- //$ = editar_campo("$tabla_autenticacion",$row['id_usuario'],"","","","");
- $listado_formularios = formulario_permisos_usuario("","$id",'');
- $subir_imagen = subir_imagen("","");
- $resultado .= "
-
-
-
Perfil de usuario
-
-
-
-
-
-
- $subir_imagen
-
-
Cambiar imagen
-
-
-
- Nombre de usuario: $username
- Primer nombre: $p_nombre
- Otros nombres: $s_nombre
- Primer apellido: $p_apellido
- Otros apellidos: $s_apellido
- Fecha de nacimieno: $fecha_nacimiento
- Teléfono: $telefono_celular
- Titulo profesional: $titulo_profesional
- Ocupación: $ocupacion
- Cargo: $cargo
-
- $listado_formularios
-
-
-
-
-
-
-
-
- ";
-
-
- }
-
- $resultado .= " ";}else {
-
- $resultado ="
No existe el usuario
";
- }
-
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$regresar");
- //$respuesta->addAssign("titulo_modal","innerHTML","$datos_usuario");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-
- }
- elseif( $tipo =='nuevo') {
- ///$grupo = select('usuarios_grupos','id','nombre,regimen','xajax_eapbs((this.value))',"",'');
- $grupo = seleccionar_grupo('id_grupo');
- $resultado ="
-
-
- ";
-
- }
- elseif( $tipo =='grabar') {
- $password = generar_password();
- $password_md5 = md5($password);
- $consulta ="INSERT INTO $tabla_autenticacion SET
-
-
- username='$formulario[username]',
- email='$formulario[email]',
- p_nombre='$formulario[p_nombre]',
- s_nombre='$formulario[s_nombre]',
- p_apellido='$formulario[p_apellido]',
- s_apellido='$formulario[s_apellido]',
- fecha_nacimiento='$formulario[fecha_nacimiento]',
- telefono_celular='$formulario[telefono_celular]',
- titulo_profesional='$formulario[titulo_profesional]',
- documento_numero='$formulario[documento_numero]',
- ocupacion='$formulario[ocupacion]',
- cargo='$formulario[cargo]',
- id_grupo='$formulario[id_grupo]',
- passwd ='$password_md5'
-
- ";
- $insertar = mysqli_query($consulta,$link);
- $resultado = "$consulta";
- }
-else {}
-
- $resultado .="";
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAlert(" ya $resultado");
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("buscar_funcionario");
-
-
-
-function usuarios_listado($tabla,$div){
-
- if($_SESSION['id'] == 1) { } else {$w_empresa = "WHERE id_empresa= '$_SESSION[id_empresa]' ";}
-
-$link=Conectarse();
-
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM $tabla $w_empresa ORDER BY username ";
-$sql=mysqli_query($consulta,$link);
-
-$resultado="
-$name
-Id Username Nombre Email Documento Empresa
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$username= editar_campo("$tabla",$row['id'],"username","","","");
-$p_nombre= editar_campo("$tabla",$row['id'],"p_nombre","","","");
-$p_apellido= editar_campo("$tabla",$row['id'],"p_apellido","","","");
-//$empresa_id= editar_campo("$tabla",$row['id'],"id_empresa","","","");
-$empresa_id= $row['id_empresa'];
-$grupo = remplacetas('usuarios_grupo','id',"$row[id_grupo]","grupo_nombre","") ;
-$empresa = remplacetas('empresa','id',"$row[id_empresa]","sigla","") ;
-
-
- require ("includes/parametrizacion.php");
- if($_SESSION['id'] == 1 AND $soporte_multiempresa !== 0) {
- $empresa_id= editar_campo("$tabla",$row['id'],"id_empresa","","","");
- }else {$empresa_id= $row['id_empresa'];}
-if($row[id] !="1") {
- $acciones = " ";}
- else {$acciones="";}
-$resultado .= "$row[id] $username $p_nombre $p_apellido $row[email] $row[documento_numero] $empresa[0] $grupo[0] Editar
$acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
- if($div =="") {
- $div="contenido";
- // $resultado ="Configuración multiempresa ";
- return $resultado;
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("usuarios_listado");
-
-
-function XXX($identificador,$tipo,$usuario,$div){
- if($tipo=="todo") {
- $w_tipo ="";
- }else {
- $w_tipo ="AND tipo= '$tipo'";
- }
-$consulta = "SELECT * FROM form_interacciones WHERE identificador = '$identificador' $w_tipo ORDER BY timestamp DESC ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
- mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = mysqli_num_rows($sql);
-
-require ("milfs/includes/parametrizacion.php");
-
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $usuario = remplacetas('form_datos','control',"$row[usuario]","contenido","id_campo = '$login_campo_nombres'") ;
- $nombre_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido"," id_campo = '$login_campo_nombres'") ;
- $avatar_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_avatar'") ;
- if($tipo =="todo") {
- if($row[tipo] =="Mensaje"){ $alerta='default'; }
- elseif($row[tipo] =="Si"){ $alerta='success'; }
- elseif($row[tipo] =="No"){ $alerta='warning'; }
- elseif($row[tipo] =="Comentar"){ $alerta='info'; }
- else{ $alerta=''; }
-
- }
-
- $listado .= "
-
-
- ".strip_tags($row['mensaje'])."
- $usuario[0] $row[timestamp]
-
-
- ";
-
- }
-$resultado= "
-
-
-
- Interacciones
-
-
-
-
-
";
-}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("XXX");
-
-
-?>
diff --git a/milfs/funciones/funciones.php b/milfs/funciones/funciones.php
deleted file mode 100644
index b730303..0000000
--- a/milfs/funciones/funciones.php
+++ /dev/null
@@ -1,18027 +0,0 @@
-$titulo[0]
- $descripcion[0]
-
- ";
-
- }else{$formulario="";}
-
- $razon_social = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
- $slogan = remplacetas('empresa','id',"$id_empresa",'slogan','') ;
- $web = remplacetas('empresa','id',"$id_empresa",'web','');
- $logo = remplacetas('empresa','id',"$id_empresa",'imagen','') ;
-
- $resultado="
-
-
-
- ";
-return $resultado;
- }
-
-
-function vista_favorita($form_id){
- $favorita="";
- $vista_favorita = remplacetas('form_parametrizacion','campo',$form_id,'descripcion'," tabla='form_id' AND opcion='vista_favorita'") ;
- $vista=$vista_favorita[0];
- if($vista=='libro') { $favorita="b$form_id?registros=10";}
- elseif($vista=='aplicacion') { $favorita="a$form_id";}
- elseif($vista=='set') { $favorita="s$form_id";}
- elseif($vista=='mapa') { $favorita="mapero.php?id=$form_id";}
- elseif($vista=='presentacion') { $favorita="c$form_id";}
- elseif($vista=='timeline') { $favorita="timeline.php?id=$form_id";}
- elseif($vista=='formulario') { $favorita="f$form_id";}
- elseif($vista=='informe') { $favorita="l$form_id";}
- elseif($vista=='planilla') { $favorita="p$form_id";}
- elseif($vista=='agenda') { $favorita="?eventos=$form_id";}
- elseif($vista=='checklist') { $favorita="m$form_id";}
- elseif($vista=='notas') { $favorita="n$form_id";}
- elseif($vista=='landingpage') { $favorita="o$form_id";}
- else{ $favorita="b$form_id?registros=10";}
-
- return $favorita;
- }
-
-
-function limpiar_cadena($cadena) {
- return (preg_replace('[^ A-Za-z0-9_-ñÑ]', '', $cadena));
- // return preg_replace('/\&(.)[^;]*;/', '\\1', $cadena);
-}
-
-function notas_papelera($form,$accion){
-
- $id_campo = remplacetas('form_parametrizacion','campo',$form,'descripcion'," tabla='form_id' and opcion = 'descripcion'") ;
- $id_campo = $id_campo[0];
- if($id_campo =="") {
- $id_campo = campo_titulo($form) ;
- }
-$parametrizaciones_listado ="Restaurar ";
-$parametrizaciones = mostrar_parametrizaciones("array","form_id","$form",$item,"mostrar","hidden",$timestamp);
-//$parametrizaciones = print_r($parametrizaciones,true);
-//note yellow ui-draggable ui-draggable-handle
- foreach($parametrizaciones as $clave => $v){
- $contenido = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$clave' ") ;
- $parametrizaciones_listado .= " ";
-
- }
-
- if ($accion ==""){
-$boton =" Papelera
";
- return $boton;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("papelera_$form","innerHTML","$parametrizaciones_listado");
- // $respuesta->addAlert("Hola mundo!");
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("notas_papelera");
-
-
-function aplicacion_configuracion($tipo,$div,$form) {
-
-
-$parametrizaciones_listado = notas_papelera($form,$accion);
-$contenido ="
-
-
-
Configuración
-
-
-
-
-
-
$parametrizaciones_listado
-
-
-
-
-
-
-
-
-
-
-";
-
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$contenido");
- // $respuesta->addAlert("Hola mundo!");
- return $respuesta;
-}
-
-$xajax->registerFunction("aplicacion_configuracion");
-
-
-function cadena_array($text,$tipo,$cantidad,$form,$div) {
- $limpios="";
- $compuestos="";
- $array_compuestos =array();
- $wordCounter =array();
- $cantidades =array();
- if($cantidad =="") {$cantidad="10";}
- $extras = array(
- 'p'=>array('de','la','que','el','en','y','a','los','del','se','las','por','un','para','con','no','una','su','al','es','lo',
- 'como','más','pero','sus','le','ya','o','fue','este','ha','sí','porque','esta','son','entre','está','cuando','muy','sin','sobre',
- 'ser','tiene','también','me','hasta','hay','donde','han','quien','están','estado','desde','todo','nos','durante','estados','todos',
- 'uno','les','ni','contra','otros','fueron','ese','eso','había','ante','ellos','e','esto','mí','antes','algunos','qué','unos','yo'
- ,'otro','otras','otra','él','tanto','esa','estos','mucho','quienes','nada','muchos','cual','sea','poco','ella','estar','haber',
- 'estas','estaba','estamos','algunas','algo','nosotros','mi','mis','tú','te','ti','tu','tus','ellas','nosotras','vosotros','vosotras',
- 'os','mío','mía','míos','mías','tuyo','tuya','tuyos','tuyas','suyo','suya','suyos','suyas','nuestro','nuestra','nuestros','nuestras',
- 'vuestro','vuestra','vuestros','vuestras','esos','esas','estoy','estás','está','estamos','estáis','están','esté','estés','estemos',
- 'estéis','estén','estaré','estarás','estará','estaremos','estaréis','estarán','estaría','estarías','estaríamos','estaríais',
- 'estarían','estaba','estabas','estábamos','estabais','estaban','estuve','estuviste','estuvo','estuvimos','estuvisteis','estuvieron',
- 'estuviera','estuvieras','estuviéramos','estuvierais','estuvieran','estuviese','estuvieses','estuviésemos','estuvieseis','estuviesen',
- 'estando','estado','estada','estados','estadas','estad','he','has','ha','hemos','habéis','han','haya','hayas','hayamos','hayáis',
- 'hayan','habré','habrás','habrá','habremos','habréis','habrán','habría','habrías','habríamos','habríais','habrían','había','habías',
- 'habíamos','habíais','habían','hube','hubiste','hubo','hubimos','hubisteis','hubieron','hubiera','hubieras','hubiéramos','hubierais',
- 'hubieran','hubiese','hubieses','hubiésemos','hubieseis','hubiesen','habiendo','habido','habida','habidos','habidas','soy','eres',
- 'es','somos','sois','son','sea','seas','seamos','seáis','sean','seré','serás','será','seremos','seréis','serán','sería','serías',
- 'seríamos','seríais','serían','era','eras','éramos','erais','eran','fui','fuiste','fue','fuimos','fuisteis','fueron','fuera','fueras',
- 'fuéramos','fuerais','fueran','fuese','fueses','fuésemos','fueseis','fuesen','siendo','sido','tengo','tienes','tiene','tenemos',
- 'tenéis','tienen','tenga','tengas','tengamos','tengáis','tengan','tendré','tendrás','tendrá','tendremos','tendréis','tendrán',
- 'tendría','tendrías','tendríamos','tendríais','tendrían','tenía','tenías','teníamos','teníais','tenían','tuve','tuviste','tuvo',
- 'tuvimos','tuvisteis','tuvieron','tuviera','tuvieras','tuviéramos','tuvierais','tuvieran','tuviese','tuvieses','tuviésemos',
- 'tuvieseis','tuviesen','teniendo','tenido','tenida','tenidos','tenidas','tened',
- 'ante', 'bajo', 'con', 'contra', 'desde', 'durante', 'entre',
- 'hacia', 'hasta', 'mediante', 'para', 'por', 'pro', 'según',
- 'sin', 'sobre', 'tras', 'vía', 'también','parecen','toca','numero','número','video','vídeo','fotos','asi','así','miles'
- ,'cientos','imágenes','imagenes','años','sentido','ultimos','últimos','mano','dicen','casi','servicio','vice','pero','Pero','trata','decir'
- ),
- 'a'=>array('el','él','los', 'las', 'una', 'unos', 'unas', 'este', 'estos', 'ese',
- 'esos', 'aquel', 'aquellos', 'esta', 'estas', 'esa', 'esas',
- 'aquella', 'aquellas', 'usted', 'nosotros', 'vosotros',
- 'ustedes', 'nos', 'les', 'nuestro', 'nuestra', 'vuestro',
- 'vuestra', 'mis', 'tus', 'sus', 'nuestros', 'nuestras',
- 'vuestros', 'vuestras', 'de', 'la', 'su', 'La', 'No', 'rcn', 'RCN', 'El', 'una', 'Una'
- ),
- 'o'=>array('esto', 'que', 'del', 'es', 'en', 'ha', 'al', 'lo', 'un','si','sí','no','se','art','luego','solo','más','como','cómo','dijo',
- 'buena','buen','algunos','algunas','el','donde','fueron','más','varios','personas','uno','dos','tres','cuatro','cinco','seis','siete','ocho','nueve','diez'
- ,'causa','cien','mil','millon','millones','pesos','quien','que','fecha','tiene','vez','hay','horas','fue','com','var','uri','mas','quot','minuto','the','event',
- 'param','pero','and','split','ciento','san','son','aacute','colombia','pais','un','Un','youtube','estaba','ayer','hoy','anoche',
- 'adelante','ahora','allá','anoche','antaño','anteanoche','antenoche','antes','aquí','aún','ayer','constantemente','cuando','despacio',
- 'después','durante','enantes','encima','endenantes','enseguida','hasta','hogaño','horita','hoy','luego','mañana','mientras','mucho',
- 'nunca','primero','pronto','recientemente','recién','siempre','tarde','temprano','todavía','ya','parte','procedieron','están','Ver'),
- );
-
-$texto = $text;
-$text = html_entity_decode($text);
-
-//$text = limpiar_cadena("$text");
-
-///$text = str_replace(array('\r\n', '\n', ' ', ' '),'', $text);
-$text = str_replace(array('?','¿','¡','!',' ','"'," ",">","El"), ' ', $text);
-//$text = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', $text);//reemplazar el carácterno es válido
-//$regex_nombres_compuestos = array('(\s[A-Z][\w-áéíóú]*(\s+[A-Z][\w-áéíóú]+)+)');
-$no_validos = array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>",">");
-//$regex_nombres_compuestos = '(.[A-Z][\w-áéíóú]*(\s+[A-Z][\w-áéíóú]+)+)';
-//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(\s+[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)';
-//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(\s((de)(( la))?)?\s?[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)';
-$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ]+[\wáéíóúñ]*(\s((de)(( la ))?)?\s?[A-ZÁÉÍÓÚ]+[\wáéíóúñ]+)+)';
-//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(.((de)(( la)?))?.?[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)';
-///$text = preg_replace($mayuscula_inicial,"$0_compuesto_$1_$2", $text);
-
-preg_match_all("$regex_nombres_compuestos", $text, $array_nombres_compuestos);
-//$array_nombres_compuestos[0] = str_replace($no_validos, '',$array_nombres_compuestos[0]);//reemplazar el carácterno es válido
-
-$array_nombres_compuestos_unicos[0]=array_unique($array_nombres_compuestos[0]);
-
- foreach($array_nombres_compuestos[0] as $clave => $v){
- $tags = str_replace(array(' '), '_', $v);
- $compuestos .="$v ";
- //$array_compuestos[] = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', strip_tags($tags));;
- $array_compuestos[] = strip_tags($tags);
- }
-$text = strip_tags($text);
-$text = str_replace(array('?','¿','¡','!',' ','\r\n', '\n','�'), ' ', $text);
-$text = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', $text);//reemplazar el carácterno es válido
-
-$text = str_replace(array(' ','.'), ',', $text);//sustituir por comas
-$array=explode(",",$text);//Crear un array con las palabras
-$array = array_merge($array_compuestos,$array);
-//// debug
-$array = array_diff($array, $extras['p'], $extras['a'], $extras['o']);
-
-
-foreach ($array as $clave => $value) {
-$title="";
-$tag_adicional="";
- $value=trim($value);//bye spaces
-if ( strlen($value)>3) {//no smaller than X and not in banned
- //$value = stemm_es::stemm($value);
- //I can count how many time we ad and update the record in an array
- if (@array_key_exists($value,$wordCounter)){//if the key exists we ad 1 more
- $wordCounter[$value]=$wordCounter[$value]+1;
-
- }
- else $wordCounter[$value]=1;//creating the key
-
- }
-
- }
-
- unset($arrText);
- //$lema=stemm_es::stemm($wordCounter);
- uasort($wordCounter,"cmp");//short from bigger to smaller
-
-
- $keywords="";
- $cantidades="";
- $count = 0;
-foreach ($wordCounter as $key => $value){
-
- if($value >1){
- if($count < $cantidad){
- //$keywords[] =$key;
- $keywords[] ="$key";
- $cantidades[$key] ="$value";
- }else{break;} $count++;
-}
- }
-
-$tags=$keywords;
- $resultado = $title;
-if($tags !=''){
-
-
-$nube ="";
-$min = min($cantidades);
-$max = max($cantidades);
- $diferencia = $max - $min;
-foreach($tags as $c=>$valor){
-//foreach($wordCounter as $c=>$valor){
- //$valor = $tags[0];
-
- //$valor ="$valor ";
- $p = stripos($resultado, $valor);
- if($p !==false ){
- $s1 = substr($resultado, 0, $p);
- $s2 = substr($resultado, $p, strlen($valor));
- $s3 = substr($resultado, ($p + strlen($valor)));
- $resultado = $s1."#$s2".$s3;
- //$r= $s1;
- }else{
- $c = str_replace(array('_'), ' ', $valor);
- $camel[] = str_replace(array(' '), '', $c);
- $palabras[]=explode(" ",$c);//Crear un array con las palabras
- foreach($palabras as $valor){
- $listado_palabras[] = $valor;
-
- }
- $ht = str_replace(array(' '), '', $c);
- $limpios[] = $c;
-
- $cant = $cantidades[$c];
- $valor_relativo = round((($cant - $min) / $diferencia) * 10);
-
- $size = ($cant/4);
- $tag_adicional .= "$c " ;
- $array_prueba = print_r($wordCounter,true);
- if($div !=""){ $accion="xajax_buscar_datos('$c','$form','$plantilla','$div'); "; }else{$accion="";}
- $nube .= "$c " ;
- }
- }
- }
- $resultado = " $compuestos $tag_adicional ";
- if($tipo=="tags") {
- return $tag_adicional;
- }elseif($tipo=="personajes") {
- //return $compuestos;
- return $array_nombres_compuestos[0];
- }elseif($tipo=="nube") {
- //return $compuestos;
- $etiquetas="
-
-
-
-
- ";
- return "$etiquetas";
- }elseif($tipo=="limpio") {
- //return $compuestos;
- return $limpios;
- }elseif($tipo=="camel") {
- //return $compuestos;
- return $listado_palabras[0];
- }else {
- return $resultado;
-}
-///return $array;
-///debug
-
-}
-
-function array_tabla($contenido,$campo){
- //return $contenido[0];
- foreach ($contenido as $id_campo => $valor) {
- $linea .= "$id_campo $valor esto
";
-
- }
-
-
-
-
-return $linea ;
-}
-
-function formulario_corpus($id_form,$id_campo,$group,$tipo,$div){
-
-
-$consulta = "SELECT count(control) as cantidad , id_campo ,contenido , campo_nombre FROM `form_datos`, `form_campos` WHERE `form_datos`.id_campo = `form_campos`.id AND `id_campo` = '$id_campo' AND `form_id` = '$id_form' GROUP BY $group order by cantidad";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
-
- if (mysqli_num_rows($sql)!='0'){
-$array = array();
- while( $row = mysqli_fetch_array( $sql ) ) {
- $etiquetas .="".html_entity_decode($row['contenido'])." ";
- $array[] = html_entity_decode($row['contenido']);
- $colores .= "'#".substr(md5(rand()), 0, 6)."',";
- }
-
- $etiqueta = "".substr (preg_replace("[\n|\r|\n\r|\t]",'', $etiquetas), 0, -1)."";
-
- }else { $grafica= $consulta;
- }
- $etiqueta = limpiar_cadena($etiqueta);
-
- $etiqueta= cadena_array("$etiqueta","nube","50","$id_form","$div");
-
- ///$etiqueta = array_tabla($etiqueta,"tags");
-
- //$etiqueta = json_encode($etiqueta);
- return $etiqueta;
-
-}
-
-
-function formulario_autores($form,$id_usuario) {
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
-//$consulta ="SELECT COUNT(control) AS cantidad,id_usuario FROM `form_datos` WHERE `form_id` = '$form' GROUP BY `id_usuario` ORDER BY cantidad DESC ";
-$consulta ="SELECT *,count(distinct control) as cantidad FROM form_datos WHERE form_id = '$form' GROUP BY id_usuario order by cantidad DESC ";
-/*
- if($autor=="") {
-
- $id_autor="$row[id_usuario]";
- $autor = remplacetas("$tabla_autenticacion","id",$id_autor,"username",'') ;
- $autor= "$autor[0]";
- }else{$autor=$autor;}
-*/
- $sql=mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0'){
- include("./milfs/includes/datos.php");
- include("./milfs/includes/parametrizacion.php");
- $cantidad=mysqli_num_rows($sql);
- while($row=mysqli_fetch_assoc($sql))
- {
- $nombre_autor = remplacetas("$tabla_autenticacion","id",$row['id_usuario'],"username",'') ;
- if($nombre_autor[0] !="") { $Autor = $nombre_autor[0];}
- else {
- $Autor = remplacetas('form_datos','form_id',"$login_formulario",'contenido'," id_campo = '$login_campo_usuario' AND control = '$row[id_usuario]'") ;
- $Autor= "$Autor[0]";
-
- //$Autor ="$row[id_usuario]";
- }
- if($Autor !="") {
- $autor .= "$Autor $row[cantidad] ";
- }else { $otros .= "Otro $row[cantidad] ";}
- }
- $resultado = "$cantidad ";
-
- }else {$resultado =0;}
-return $resultado ;
-}
-
-
-
-function formulario_contar_parametrizacion($tabla,$campo,$item,$opcion,$descripcion,$id_empresa,$timestamp) {
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
- if($id_empresa ==""){$empresa="";}else{$empresa ="AND id_empresa = '".mysqli_real_escape_string($link,$id_empresa)."'";}
-// if($tabla ==""){$tabla="";}else{$tabla ="AND tabla = '".mysqli_real_escape_string($link,$tabla)."'";}
- if($campo ==""){$campo="";}else{$campo ="AND campo = '".mysqli_real_escape_string($link,$campo)."'";}
- if($item ==""){$item="";}else{$item ="AND item = '".mysqli_real_escape_string($link,$item)."'";}
- if($opcion ==""){$opcion="";}else{$opcion ="AND opcion = '".mysqli_real_escape_string($link,$opcion)."'";}
- if($descripcion ==""){$descripcion="";}else{$descripcion ="AND descripcion = '".mysqli_real_escape_string($link,$descripcion)."'";}
-
-
-$consulta ="SELECT id FROM form_parametrizacion WHERE tabla = '".mysqli_real_escape_string($link,$tabla)."' $campo $empresa $item $opcion $descripcion ";
-
- $sql=mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0'){
- $resultado=mysqli_num_rows($sql);
- }else {$resultado =0;}
-return $resultado;
-}
-
-
-
-function mostrar_parametrizaciones($tipo,$tabla,$campo,$item,$opcion,$descripcion,$timestamp){
- $resultado ="";
- if($tipo =='categorizacion') {
- $consulta = "SELECT *,count(id) as cantidad FROM `form_parametrizacion` WHERE opcion ='$opcion' and tabla='$tabla' AND campo='$campo' group by descripcion order by cantidad DESC";
- } else {
- if($opcion !=""){ $w_opcion = " AND opcion = '$opcion'";}
- if($descripcion !=""){ $w_descripcion = " AND descripcion = '$descripcion'";}
- if($id_form !=""){ $w_form = " AND id_form = '$id_form'";}
- if($tipo !=""){ $w_tipo = " AND tipo= '$tipo'";}
- if($identificador !=""){ $w_identificador = " AND identificador= '$identificador'";}
-
- $consulta = "SELECT * FROM form_parametrizacion WHERE tabla ='$tabla' AND campo='$campo' $w_opcion $w_descripcion ";
- }
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
- mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-//$resultado = mysqli_num_rows($sql);
-//$resultado = mysqli_result($sql,0,"cantidad");
-while($row=mysqli_fetch_assoc($sql))
- {
- if($tipo == "array") {
- $resultado[$row['item']] = $row['descripcion'];
- }
- elseif($tipo == "categorizacion") {
- $resultado[$row['descripcion']] = $row['cantidad'];
- }else{
- $resultado .= " $row[descripcion] $row[cantidad] ";
- }
- }
-}
-
-
-return $resultado;
-}
-
-
-function notas_estadisticas($form,$div,$tipo) {
-$cantidad_notas= formulario_contar("$form");
-$cantidad_autores= formulario_autores("$form","");
-$total_gusta= contar_interacciones("","Gusta","","$form");
-$total_compromisos= contar_interacciones("","Comprometo","","$form");
-$total_comentarios= contar_interacciones("","Comentar","","$form");
- $id_campo = remplacetas('form_parametrizacion','campo',$form,'descripcion'," tabla='form_id' and opcion = 'descripcion'") ;
- $id_campo = $id_campo[0];
- if($id_campo =="") {
- $id_campo = campo_titulo($form) ;
- }
-$corpus = formulario_corpus("$form","$id_campo","contenido","barras");
-$clasificacion = mostrar_parametrizaciones("categorizacion","form_id","$form","","clase","","");
-
-$cantidad_clasificacion = array_sum($clasificacion);
-$diferencia = ($cantidad_notas - $cantidad_clasificacion );
-$clasificacion['yellow'] = ($clasificacion['yellow']+$diferencia);
-asort($clasificacion);
-foreach($clasificacion as $clave => $v){
-
- $tabla_clasificacion .= "$v ";
- }
- $tabla_clasificacion = "";
-$contenido ="
-
-
-
- Estadísticas
- Total notas: $cantidad_notas
- Autores: $cantidad_autores
- Me gusta: $total_gusta
- Compromisos: $total_compromisos
- Comentarios: $total_comentarios
- Clasificación $tabla_clasificacion
-
-
-
-
-
-
-Palabras mas usadas
-$corpus
-
-
-
-
-";
-
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$contenido");
- // $respuesta->addAlert("Hola mundo!");
- return $respuesta;
-}
-
-$xajax->registerFunction("notas_estadisticas");
-
-
-function formulario_mini($datos,$id,$opciones,$tipo){
-
- $respuesta = new xajaxResponse('utf-8');
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- $equipo = remplacetas('form_datos','control',$opciones,'equipo',"") ;
- if($publico[0] =="0" AND $_SESSION['id'] =="") {
- $resultado = " Ingresa Para agregar datos a esta aplicación. ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- elseif($publico[0] =="2" AND ($_SESSION['id'] =="" AND !isset($_SESSION['nombre_usuario_milfs'] ))) {
- $login = milfs_session("","","","boton","",'formulario_login');
- $resultado = "
- Ingresa con tu usuario para agregar datos a esta aplicación.
- $login
";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "$permiso_identificador Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
-
-if($equipo[0] =="" OR is_null($equipo[0]) ) {}else{
-if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0] )){
- $aviso = "
-
ATENCIÓNNo está autorizado Para modificar esta información pertenece a un grupo de trabajo diferente ";
- $resultado = "
-
- $salir $aviso
-
- ";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-}
-}
- if($tipo =='edit' AND ($_SESSION['id_empresa'] !== $id_empresa[0] AND $_SESSION['id'] != $propietario[0] )AND $permiso_identificador != $opciones) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
-
- $resultado ="
-
- $salir
- $aviso
- $seguridad
-
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //$data= print_r($datos,true);
- $x = $datos[1][1];
- $y = $datos[2][1];
- $z = $datos[3][1];
- $metadatos = json_encode($datos);
- $control = md5(rand(1,99999999).microtime());
- $id_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'descripcion'") ;
- $id_campo = $id_campo[0];
- if($id_campo =="") {
- $id_campo = campo_titulo($id) ;
- }
- $boton="";
- $nota="
- "; //$respuesta->addScript("javascript:viewport.style.transform='scale(1,1)';");
- $respuesta->addAppend("main","innerHTML","$nota");
- ///$respuesta->addScript("make_draggable($('.note'));");
- $respuesta->addScript("javascript:document.getElementById('$id_campo"."[0]').focus();");
- //$respuesta->addScript("javascript:location.href='#nuevanota'");
-
-
-
- //$respuesta->addAlert("$x $y $z - $data");
-return $respuesta;
-
- if($tipo=="respuesta") { $form_respuesta = "respuesta";}else {$form_respuesta="";}
- $impresion = formulario_areas($datos,"$id","$tipo","$form_respuesta","$opciones",'','');
- $cantidad_areas = formulario_areas('',"$id","cantidad","$form_respuesta","$opciones",'','');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $muestra_form = "
-
-
-
- $impresion
-
-
- ";
-
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("
-$('.next').click(function(){
-
- var nextId = $(this).parents('.tab-pane').next().attr('id');
- $('[href=#'+nextId+']').tab('show');
- return false;
-
-})
-
-$('.prev').click(function(){
-
- var prevId = $(this).parents('.tab-pane').prev().attr('id');
- $('[href=#'+prevId+']').tab('show');
- return false;
-
-})
-
-$('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {
-
- //update progress
- var step = $(e.target).data('step');
- var percent = (parseInt(step) / $cantidad_areas ) * 100;
-
- $('.progress-bar').css({width: percent + '%'});
- $('.progress-bar').text('Paso ' + step + ' de $cantidad_areas' );
-
- //e.relatedTarget // previous tab
-
-})
-
-$('.first').click(function(){
-
- $('#myWizard a:first').tab('show')
-
-})
-
- ");
-
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("formulario_mini");
-
-
-
-function notas_tablero($form) {
-
- $titulo = remplacetas('form_id','id',$form,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$form,'descripcion',"") ;
- $zoom = remplacetas('form_parametrizacion','campo',"$form",'descripcion'," opcion= 'zoom' AND item = 'tablero' ") ;
- $empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $propietario = remplacetas('form_id','id',$form,'propietario',"") ;
- if ( $propietario[0] == $_SESSION['id']){
-
- $administracion = "";
- }else{
- $administracion = "";
- }
- $notes = notes("$form",'','','');
-
- $footer="
-
-
-
-
-";
-if(isset($_REQUEST['social'])) {
-
-
-}else{}
-$login = milfs_session("","","","boton","",'div_session');
-if($_SESSION['username'] !='') { $autor = $_SESSION['username'];}
-elseif($_SESSION['usuario_milfs'] !='') { $autor = $_SESSION['nombre_usuario_milfs'];}
-else {$autor='';}
-//$estadisticas = portal_listado_campos("$form");
-$tablero="
-$footer
-
-
-
-
-
-
-
-
$titulo[0] $descripcion[0]
-
$form-titulo
-
-
- $login
-
-
-
-
- $notes
-
-
-
-
-
- ";
-
-return $tablero;
-
-}
-
-
-function ultimos_registros($id,$form) {
- //$id= ($id -100000);
- //$ultimo = time();
- $registros="";
- $respuesta = new xajaxResponse('utf-8');
- $consulta ="SELECT * , md5(binary control ) as md5_control FROM form_datos WHERE form_id = '$form' AND timestamp > '$id' GROUP BY control order by timestamp DESC LIMIT 100";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0'){
- while($row=mysqli_fetch_assoc($sql))
- {
- $registros .= notes("$form",'','',"$row[control]")." ";
-
-
- }
-
- $respuesta->addAppend("prueba","innerHTML","$registros");
- $respuesta->addScript("make_draggable($('.note'));");
- }
- $ultimo = mktime();
- $respuesta->addScript("javascript: document.getElementById('ultimo_id').value='$ultimo'");
- //$notes = notes("$form",'','','');
- ///$respuesta->addAlert("$id $ultimo $consulta");
- //$respuesta->addPrepend("prueba","innerHTML","$registros");
-
-
-
- return $respuesta;
-}
-
-$xajax->registerFunction("ultimos_registros");
-
-
-
-function campo_titulo($id){
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !=""){
- return $campo_titulo[0];
- }else{
-
-
-
-$consulta ="SELECT form_contenido_campos.id_campo , orden FROM form_contenido_campos WHERE form_contenido_campos.id_form = '$id' ORDER BY form_contenido_campos.orden desc LIMIT 1";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-return mysqli_result($sql,0,'id_campo');
-}
-
-}
-
-}
-
-function nota_nueva(){
-
- }
-
-function notes($id,$accion,$datos,$registro){
-
-if($accion =="") {
- if($registro !="") {
- //$color='blue';
- $consulta = "SELECT * FROM form_datos WHERE form_id = '$id' AND control ='$registro' Limit 1";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE form_id = '$id' GROUP BY control ORDER BY id desc limit 100 ";
- }
-// return $consulta;
-$link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
-
- if (mysqli_num_rows($sql)!='0'){
-$notes = '';
-$left='';
-$top='';
-$zindex='';
-
-//$id_campo = campo_titulo($id) ;
- $id_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'descripcion'") ;
- $id_campo = $id_campo[0];
- if($id_campo =="") {
- $id_campo = campo_titulo($id) ;
- }
-$orden =1;
-$orden_left =1;
-mysqli_data_seek($sql, 0);
-while($row=mysqli_fetch_assoc($sql))
-{
-
-
-
- $titulo = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$row[control]' ") ;
- $posicion = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'posicion' ") ;
- $metadatos = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'metadatos_iniciales' ") ;
- $color = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'clase' ") ;
- $mostrar = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'mostrar' ") ;
-
- $gusta = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'voto' ") ;
- $comprometo = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'voto' ") ;
-
- $color=$color[0];
- $mostrar =$mostrar[0];
-
-list($left,$top,$zindex) = explode('-',$posicion[0]);
-list($left_inicial,$top_inicial,$zindex_inicial,$autor) = explode('-',$metadatos[0]);
- if($autor=="") {
- include("./milfs/includes/datos.php");
- $id_autor="$row[id_usuario]";
- $autor = remplacetas("$tabla_autenticacion","id",$id_autor,"username",'') ;
- $autor= "$autor[0]";
- }else{$autor=$autor;}
-
-if($left=="") {
- $top = ($orden+100);//random_int(1,5000);
- $left = ($orden_left+100);//random_int(1,5000);
- $zindex = $orden;
-}else{
-
-$left=$left;
-$top=$top;
-$zindex=$zindex;
-
-}
-
-if($_SESSION['username'] !='') { $autor_logueado = $_SESSION['username'];}
-elseif($_SESSION['usuario_milfs'] !='') { $autor_logueado = $_SESSION['nombre_usuario_milfs'];}
-else {$autor_logueado='';}
-
-if($color =="") { $color="yellow";}else { $color=$color;}
-if($mostrar =="") { $mostrar="";}else { $mostrar=$mostrar;}
-
-if($gusta[0] !="") { $gustax="text-success";}else { $gustax="";}
-if($comprometo[0] !="") { $comprometox="text-success";}else { $comprometox="";}
-
- $caracteres = strlen("$titulo[0]");
- $texto= substr($titulo[0],0, $length = 200);
- if($caracteres > 200) { $texto .= "... [+] "; }
-
- $interaccion = interaccion_identificador("$row[control]",'','simple','','');
- $notes.= "
-
-
-
-
-
-
-
$texto
-
-
$id-$row[control]
-
-
-
-
-
- ";
- // parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item)
-
- $orden = ($orden+2);
- $orden_left = ($orden+1);
- $ultimo = mktime();
- $ultimo_id = $ultimo;
-}
-
-return "$notes ";
-
-}else {return "";}
-}elseif($accion =='mover') {
- $id = explode("-", $datos[0][1]);
- $form=$id[0];
- $control= $id[1];
- $respuesta = new xajaxResponse('utf-8');
- /// $resultado = print_r($datos,true);
- $x= $datos[1][1];
- $y= $datos[2][1];
- $z= $datos[3][1];
-
- $resultado = parametrizacion_linea('form_id',"$form",'posicion',"$x-$y-$z",'mensaje_$control','',"$control");
- $respuesta->addAssign("mensaje_$control","innerHTML","");
-
- return $respuesta;
-}else{
-
- $respuesta = new xajaxResponse('utf-8');
-
- $resultado = print_r($accion,true);
- $resultado = $accion[3][1];
-
- $respuesta->addAlert("Hola mundo// $resultado // !");
- return $respuesta;
-
-}
-
-
-
-
-}
-
-$xajax->registerFunction("notes");
-
-
-
-function suite_listado($id_empresa,$suite){
- if($id_empresa=="") { $id_empresa="1";}
- $suite=urldecode($suite) ;
- if($suite!="") { $campo='id as campo, grupo'; $w_grupo ="AND grupo ='$suite'";}else {$w_grupo="GROUP BY grupo "; $campo ='grupo , count(grupo) as campo '; }
-$consulta= "SELECT *, $campo FROM form_grupo WHERE id_empresa= '$id_empresa' $w_grupo ";
-$miniatura ="";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- mysqli_real_escape_string($link,$consulta);
- $sql=mysqli_query($link,$consulta);
- $linea="";
- $linea_consultar="";
- $linea_editar="";
- $razon_social = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
- $slogan = remplacetas('empresa','id',"$id_empresa",'slogan','') ;
- $web = remplacetas('empresa','id',"$id_empresa",'web','');
- $logo = remplacetas('empresa','id',"$id_empresa",'imagen','') ;
-
-if (mysqli_num_rows($sql)!='0'){
-
- $fila = 1;
- //include("includes/datos.php");
- $error_token = "";
- $contenido = "";
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- //$link = " Consultar ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- $mostrar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='mostrar_portal'") ;
- $llenar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='llenar_portal'") ;
- $ver_data = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='ver_data_portal'") ;
- $vista_favorita = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='vista_favorita'") ;
- $vista=$vista_favorita[0];
- if($vista=='libro') { $favorita="b$row[id]?registros=10";}
- elseif($vista=='aplicacion') { $favorita="a$row[id]";}
- elseif($vista=='set') { $favorita="s$row[id]";}
- elseif($vista=='mapa') { $favorita="mapero.php?id=$row[id]";}
- elseif($vista=='presentacion') { $favorita="c$row[id]";}
- elseif($vista=='timeline') { $favorita="timeline.php?id=$row[id]";}
- elseif($vista=='formulario') { $favorita="f$row[id]";}
- elseif($vista=='informe') { $favorita="l$row[id]";}
- elseif($vista=='planilla') { $favorita="p$row[id]";}
- elseif($vista=='agenda') { $favorita="?eventos=$row[id]";}
- elseif($vista=='landingpage') { $favorita="o$form_id";}
- elseif($vista=='notas') { $favorita="n$form_id";}
-
- elseif($vista=='checklist') { $favorita="?m$row[id]";}
- else{ $favorita="b$row[id]?registros=10";}
-
-;
-
- $titulo = remplacetas('form_id','id',$row['id'],'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$row['id'],'descripcion',"") ;
-
- if($geo[0] !='') { $mapa= " Mapa ";}else {$mapa='';}
- $descripcion_limpia = strip_tags($row['descripcion']);
- if($imagen !="") {
- $imagen ="
-
-
-
-
-
-
-
- ";
- }
- $contenido ="
- $row[grupo] $row[cantidad]
-
-
- $descripcion_limpia
";
-
-// if ( $fila%2==0){
-
-
-
-if($llenar[0] !="0") {$boton_agregar =" Agregar
";}
- else{$boton_agregar = "";}
-if($ver_data[0] !="0") {$boton_ver_data =" OpenData ";}
- else{$boton_ver_data = "";}
-
- if($mostrar[0] !="0") {
- //// PRIVACIDAD
- $publico = remplacetas('form_id','id',"$row[id]",'publico',"") ;
-
-/// PRIVACIDAD
-if($publico[0] =='1') {
- $linea .= "$row[grupo] ";
- $linea_consulta .= "$titulo[0] ";
- $lista .= "$titulo[0] $descripcion[0] ";
- $linea_editar .= "$titulo[0] ";
-
- }else{
- if($llenar[0] !="0"){
- /// $linea .="$row[grupo] // $row[campo] ";
- }
-
- }
- }else {
-
- }
-
- $fila++;
- }
-
- if($suite!="") {
-
-
-
-$footer="
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
-$resultado ="
-
-
-
-
-
-
-
-
-
- $descripcion[0]
-
- $razon_social[0]
- $slogan[0]
-
-
-
- Tupale.co
-
-
-
-
-
-
-
-
-
-
-
-
- $footer
-
- ";
-
- }else {
- $titulo = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
-
-
-$resultado ="
-
-
-
-
-
-
-
-
- $descripcion[0]
-
- $razon_social[0]
- $slogan[0]
-
-
-
- Tupale.co
-
-
-
-
-
- ";
- }
- }else{
-$resultado ="
-
-
-
-
-
-
-
-
- $descripcion[0]
-
- $razon_social[0]
- $slogan[0]
-
- Sigue intentando :(
-
- Tupale.co
-
-
-
-
-
- ";
-
- }
-
-return $resultado;
-}
-
-
-
-
-function checklist($id,$registros,$campo,$valor,$accion){
- //$valor=urldecode($valor);
- $area_principal ="";
- $despliegue="";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
- if($registros =="") { $registros = '300';}
- $publico = remplacetas('form_id','id',"$id",'publico',"") ;
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $empresa = remplacetas("form_id","id","$id","id_empresa","");
-
- if($publico[0] == 0 AND ( $_SESSION['id_empresa'] != $empresa[0])) {
-
- $advertencia ="
No tiene autorización para revisar este contenido ";
- return $advertencia;
- }
- //select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor)
- $filtro_campos = select_campos_formulario("$id","Campo checkeo","xajax_checklist($id,$registros,(this.value),'','xajax')","");
-
- if($campo !=""){
- $consulta_areas= "SELECT * , form_areas.orden FROM form_campos, `form_contenido_campos`, form_areas WHERE form_campos.campo_area = form_areas.id AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$id' GROUP BY form_campos.campo_area ORDER BY form_areas.orden limit 1";
- $sql_area=mysqli_query($link,$consulta_areas);
- $area_principal = mysqli_result($sql_area,0,"id");
- $filtro = select('form_datos','contenido','contenido',"xajax_checklist($id,$registros,$campo,(this.value),'xajax')","id_campo = '$campo' ",'filtro','');
- }else{
- $filtro="";
-
- }
-
-
-/// PRIVACIDAD
-if($publico[0] =='1') {}
-if($campo !="" AND $valor !=''){ $w_campo = " AND id_campo= '$campo' AND contenido ='$valor' ";}else{$w_campo="";}
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY form_datos.control ";
-
-
-mysqli_real_escape_string($link,$consulta_principal);
-$sql_total=mysqli_query($link,$consulta_principal);
-$sql=mysqli_query($link,$consulta_principal);
-
-
-mysqli_data_seek($sql_total, 0);
-mysqli_data_seek($sql, 0);
-// $equipo = remplacetas('form_datos','control',$opciones,'equipo',"") ;
-$empresa = remplacetas('form_id','id',"$id",'id_empresa',"") ;
-
-if($_SESSION['id_empresa'] == $empresa[0]){
-$tipo_titulos= array("titulos","$campo","$area_principal","checkeo");
-$tipo= array("interaccion_linea","$campo","$area_principal","checkeo");
-}
-else{
-$tipo_titulos= array("titulos","","$area_principal","checkeo");
-$tipo= array("linea_planilla","","$area_principal","checkeo");
-
- }
-
-
- $titulo = formulario_imprimir_linea("$id","",$tipo_titulos)."";
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
- $descripcion_formulario = remplacetas("form_id","id",$id,"descripcion","");
- if($campo !=""){
- $campo_chequeo_nombre = remplacetas('form_campos','id',"$campo",'campo_nombre',"") ;
- $campo_chequeo_nombre = "$campo_chequeo_nombre[0] /";
- $valor_encode = urlencode("$valor");
- //$uri ="$_SESSION[site]m$id&campo=$campo&valor=$valor_encode";
- $uri ="http://$_SERVER[HTTP_HOST]/m$id&campo=$campo&valor=$valor_encode";
-
- $cadena_busqueda ="
- $campo_chequeo_nombre $valor
-
- URL
-
-
- ";
- }
- $id_empresa= $empresa[0];
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera="
-
-
-
-
-
-
$razon_social[0] $slogan[0]
- $nombre_formulario[0] $descripcion_formulario[0]
-
-
-
";
-
-$fila=1;
- $cantidad = mysqli_num_rows($sql);
-
-
-
-//$tipo[1]="campo";
-
-//$tipo="linea_planilla";
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-/*
- if($fila % $registros == 0) {$separador="
$pie
-
- $cabecera
-
-
- $titulo ";}else {$separador="";}
- */
-
-//$linea = formulario_imprimir_linea("$id","$row[control]",$tipo);
-$linea = formulario_imprimir_linea("$id","$row[control]",$tipo);
- $despliegue .= "$fila $linea $separador";
- //formulario_imprimir_linea("$row[form_id]","$row[control]")
- $fila++;
-
-
-}
-
-//return print_r(mysqli_fetch_array( $sql )); //"Hola mundo $cabecera xxx $campo $valor // $cantidad ";
-
-$tabla= " $cabecera $cadena_busqueda $filtro_campos $filtro
-
-
-
- $titulo
-
-
- $despliegue
-
-
-
-
- $pie";
-$resultado= "$tabla
";
-if($accion != "xajax"){
-return $resultado."";
-}
-else{
-
- $respuesta = new xajaxResponse('utf-8');
-
- $respuesta->addAssign("check_div","innerHTML","$resultado");
- $respuesta->addScript("$('#planilla').DataTable( { dom: 'Bfrtip', pageLength:5, buttons: ['copy', 'excel', 'csv','print']} );");
- return $respuesta;
-}
-}
-$xajax->registerFunction("checklist");
-
-
-function planilla($id,$registros){
- if($registros =="") { $registros = '15';}
- $publico = remplacetas('form_id','id',"$id",'publico',"") ;
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $empresa = remplacetas("form_id","id","$id","id_empresa","");
-
- if($publico[0] == 0 AND ( $_SESSION['id_empresa'] != $empresa[0])) {
-
- $advertencia ="
No tiene autorización para revisar este contenido ";
- return $advertencia;
- }
-
-/// PRIVACIDAD
-if($publico[0] =='1') {}
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id' GROUP BY form_datos.control ";
-
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-mysqli_real_escape_string($link,$consulta_principal);
-$sql_total=mysqli_query($link,$consulta_principal);
- $sql=mysqli_query($link,$consulta_principal);
-mysqli_data_seek($sql_total, 0);
- $titulo = formulario_imprimir_linea("$id",$row['control'],'titulos');
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
- $descripcion_formulario = remplacetas("form_id","id",$id,"descripcion","");
-
- $id_empresa= $empresa[0];
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera="
-
-
-
-
-
-
$razon_social[0] $slogan[0]
- $nombre_formulario[0] $descripcion_formulario[0]
-
-
";
-
-$fila=1;
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($fila % $registros == 0) {$separador="
$pie
$cabecera
$titulo";}else {$separador="";}
-$linea = formulario_imprimir_linea("$id","$row[control]","linea_planilla");
- $despliegue .= "$fila $linea $separador";
- //formulario_imprimir_linea("$row[form_id]","$row[control]")
- $fila++;
-
-
-}
-
-$tabla= "$cabecera$pie";
-return "$tabla
";
-}
-
-
-
-function equipos($clave,$proyecto,$name,$div)
-{
-$resultado="";
-
-$respuesta = new xajaxResponse('utf-8');
-if($div !="") {
- if($clave=="") {
- $respuesta->addAssign("$div","innerHTML","");
- return $respuesta;
- }
- require("includes/datos.php");
-// require ("includes/parametrizacion.php");
-$consulta = "SELECT * FROM `$tabla_autenticacion` WHERE `id_empresa` = '$proyecto' AND equipo REGEXP '^$clave' GROUP BY equipo ORDER BY equipo ";
-$resultado ="";
- $link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .="$row[equipo] ";
-}}
-$resultado .=" ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
-}
-else{
-
-$resultado ="
- ";
- return $resultado;
-}
-
-
- return $respuesta;
-
-
-
-}
-$xajax->registerFunction("equipos");
-
-
-
-function cambiar_propiedades($div,$clave,$valor)
-{
-$respuesta = new xajaxResponse('utf-8');
-if($clave !="") {
-
-$respuesta->addAssign("$div","$clave"," $valor");}
-
-
-else{$respuesta->addAssign($div,"style.top","0px");
- $respuesta->addAssign($div,"style.height","100%");}
-
-
- //$respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("cambiar_propiedades");
-
-
-function galleria($id){
- $contenido ="";
- $link=Conectarse();
- $campo_nombre ="1665";
- $campo_coleccion ="1666";
- $campo_autor ="1667";
- $campo_licencia ="175";
- $campo_imagen = buscar_campo_tipo("$id","15");
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id' GROUP BY form_datos.control limit 200";
-
-
-mysqli_set_charset($link, "utf8");
-mysqli_real_escape_string($link,$consulta_principal);
-$sql_total=mysqli_query($link,$consulta_principal);
- $sql=mysqli_query($link,$consulta_principal);
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
- ;
-$imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[control]' ") ;
-$titulo = remplacetas('form_datos','id_campo',$campo_nombre,'contenido'," control = '$row[control]' ") ;
-$proyecto = remplacetas('form_datos','id_campo',$campo_proyecto,'contenido'," control = '$row[control]' ") ;
-$autor = remplacetas('form_datos','id_campo',$campo_autor,'contenido'," control = '$row[control]' ") ;
-$licencia = remplacetas('form_datos','id_campo',$campo_licencia,'contenido'," control = '$row[control]' ") ;
- $imagen = "../milfs/images/secure/?file=150/$imagen[0]";
- $url ="$_SESSION[site]milfs/images/secure/?file=150/$imagen[0]";
- //$respuesta->addAssign("$div","$className"," input-group has-error ");}
-$contenido .= "
-
-
-
-
";
-
-}
-$resultado="
-$contenido
";
-return $resultado;
-}
-
-
-
-function json_tabla($contenido,$campo,$control){
-
-
-$datos = json_decode($contenido, true);
-
- foreach ($datos as $id_campo => $valor) {
- $campo_tipo = remplacetas('form_campos','id',"$campo",'campo_tipo',"") ;
- if($campo_tipo[0] =="31") {
- $link_url = "$_SESSION[site]milfs/archivos/?archivo=".$valor;
- $ext = explode(".", $valor);
- $ext = strtolower($ext[count($ext) - 1]);
- if($ext=='jpg' or $ext=='png' or $ext=='gif') {
- $valor=" ";
-
- }else{$valor="$valor "; }
- }
- $linea .= "$valor
";
- if(is_array($valor)) {
- foreach ($valor as $c => $v) {
- $linea .= "$v
";
-}
-
-
-
-
- }
- }
-
-$resultado="
-$linea $campo_tipo[0]
-
-";
-
-
-
-return $resultado;
-}
-
-function json_render($contenido,$tipo,$control){
-
-$campos = "$tipo,$contenido";
-$datos = json_decode($contenido, true);
-if ($tipo == "html"){
- foreach ($datos as $id_campo => $valor) {
- // $linea .= "$id_campo $valor ";
- $campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
- $campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
- foreach ($valor as $c => $v) {
- $linea .= "$v ";
- if(is_array($v)){
- foreach ($v as $c1 => $v1) {
- $linea .= "$v1 ";
- }}
- }
- }
-
-$resultado="
-
-$campo_nombre[0]
-$linea
-
-
-";
-}
-elseif($tipo == "csv") {
- foreach ($datos as $id_campo => $valor) {
- $campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
- $campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
- foreach ($valor as $c => $v) {
- foreach ($v as $c1 => $v1) {
- $linea .= " $v1,";
- }
-
- }
- }
-$resultado = trim($linea,",");
-}
-elseif($tipo == "array") {
- $array= array();
- foreach ($datos as $id_campo => $valor) {
- foreach ($valor as $c => $v) {
- foreach ($v as $c1 => $v1) {
- $array[]= "$v1";
- }
-
- }
- }
-$resultado = $array;
-}
-else{
-
-}
-
-return $resultado;
-}
-
-function exportar_svg($formulario) {
- $linea="";
-if($formulario !=""){
- $estructura = "$_SESSION[path]/tmp/$formulario/svg/";
- if (!file_exists($estructura)) {
-
- if(!mkdir($estructura, 0775, true)) {
-
- die("Fallo al crear las carpetas... $estructura");
-}
-//$archivo = "milfs/tmp/$nombre";
-
-
-$impresion ="Esto es";
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$formulario' GROUP BY form_datos.control ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-mysqli_real_escape_string($link,$consulta_principal);
-$sql_total=mysqli_query($link,$consulta_principal);
- $sql=mysqli_query($link,$consulta_principal);
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- $titulo = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
-
-// if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$formulario","svg",'paginado');
-$impresion = landingpage_contenido_identificador("$row[control]","$formulario","svg",'paginado');
-$impresion = str_replace("'", '"', $impresion);
-$impresion = str_replace('@"', "'", $impresion);
-$encabezado = '
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
-
-';
-$pie=" ";
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= " $row[control]";
-$archivo = $estructura."$titulo[0]"."_$row[control]".".svg";
-$file=fopen($archivo,"w") or die("Problemas en la creacion $archivo");
-$impresion = $encabezado.$impresion.$pie;
-fputs($file,$impresion);
-fclose($file);
- }
-
-
-
-}
-
- echo $linea;
-
- //$file = fopen($filePath, 'w');
-}
-
-}
-
-function filtro_opciones_campo($id_campo,$formulario){
-$opciones = "";
-$consulta = "SELECT * FROM `form_campos_valores` WHERE `id_form_campo` = '$id_campo'";
-
- $link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $opciones .="
- $row[campo_valor]
- ";
-
-}
-$opciones ="
- Limpiar
- $opciones
-";
-
-}
-
-return $opciones;
-}
-
-function filtro_generico_buscar($formulario,$id){
-$div ="mostrar_resultado";
-$resultado .="";
-foreach ($formulario as $clave => $valor) {
- if($valor !=""){
- $campo = str_replace("filtro_", "", "$clave");
- $resultado = " id_campo = $campo AND contenido = '$valor' ";
- $campos[] = $resultado;
- }
-
-}
-$campos = implode(" AND ",$campos);
-
-$consulta ="SELECT * FROM form_datos WHERE form_id ='$id' AND $campos GROUP BY control";
-$resultado = "$consulta";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-
-}
-$xajax->registerFunction("filtro_generico_buscar");
-
-
-function filtro_generico($formulario,$tipo){
-
-$filtro="";
-$consulta= "
- SELECT campo_nombre,tipo_campo_nombre ,campo_tipo ,id_campo
- FROM `form_contenido_campos` , form_campos , form_tipo_campo
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo= form_campos.campo_tipo
- AND `id_form` = '$formulario'
- AND (`campo_tipo` = 8 OR `campo_tipo` = 16 OR `campo_tipo` = 24 OR `campo_tipo` = 25 OR `campo_tipo` = 10)
- group by form_contenido_campos.id
- ORDER BY form_contenido_campos.orden ";
-
- $link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado = filtro_opciones_campo($row[id_campo],$formulario);
- $filtro .="
-
-
-
- $row[campo_nombre]
-
-
-
-
-
- ";
-
-}
-$filtro = "
-
-
- $filtro
-
-
- ";
-
-}
-return $filtro;
-}
-
-
-function formulario_tabla_temporal($id){
-
-$lineas="";
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-/// LISTADO DE CAMPOS PARAMETRIZADO POR ID ///
- $consulta_campos = "SELECT id_campo FROM `form_datos` , form_campos , form_tipo_campo WHERE form_datos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo= form_campos.campo_tipo AND `form_id` = '$id' AND (`campo_tipo` = 8 OR `campo_tipo` = 16 OR `campo_tipo` = 24 OR `campo_tipo` = 25 OR `campo_tipo` = 10)
- GROUP BY id_campo ORDER BY id_campo";
- $sql=mysqli_query($link,$consulta_campos);
- ;
- if (mysqli_num_rows($sql)!='0'){
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- $campos[] = " campo_$row[id_campo] longtext ";
- $id_campos[] = "$row[id_campo]";
-
- }
- $campos[] = "control longtext";
- }
-/// ENTRADAS QUE TIENEN VALORES EN ESOS CAMPOS
-
- $consulta_contenido = "SELECT id_campo ,contenido,control FROM `form_datos` , form_campos , form_tipo_campo WHERE form_datos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo= form_campos.campo_tipo AND `form_id` = '$id' AND (`campo_tipo` = 8 OR `campo_tipo` = 16 OR `campo_tipo` = 24 OR `campo_tipo` = 25 OR `campo_tipo` = 10) GROUP BY control ";
-
- $sql_contenido=mysqli_query($link,$consulta_contenido);
- if (mysqli_num_rows($sql_contenido)!='0'){
-
- while( $row_contenido = mysqli_fetch_array( $sql_contenido ) ) {
- $los_campos="";
- $campos_insertar="";
- foreach($id_campos as $campo_nombre){
- $contenido = remplacetas('form_datos','form_id',"$id",'contenido'," id_campo ='$campo_nombre' and control ='$row_contenido[control]' ") ;
- $los_campos .= "$campo_nombre $contenido[0] ";
- $campos_insertar[] ="campo_$campo_nombre ='$contenido[0]'";
-
- }
- $campos_insertar[] ="control ='$row_contenido[control]'";
- $lineas .= "$row_contenido[control] $los_campos // ";
- $insertar_campos= implode(",",$campos_insertar);
- $insert[] = "INSERT INTO temporal_6 SET $insertar_campos ";
-
- }
- }
-$campos= implode(",",$campos);
-$insert= implode(";",$insert);
-
-
-$crear = "CREATE TABLE IF NOT EXISTS temporal_$id ($campos)";
-$consultar= "SELECT * FROM temporal_$id";
-$query = "$crear ; $insert";
-//$tabla_temporal=mysqli_query($link," $crear ; $insertar");
-$tabla_temporal=mysqli_multi_query($link, $query);
-
-//$insert_temporal=mysqli_query($link,"$insertar");
-return ;//" // $tabla_temporal ** $crear ; $insert ; $consultar ; * // ";
-}
-
-function formulario_estadistica_ocultar($id_form,$id_campo,$accion,$tipo) {
- $etiqueta_limpia = str_replace(array(' '), '', $etiqueta);
-$div="div_manejo_$etiqueta";if($accion=='') {
-
- if($_SESSION['id'] == 1){
- $resultado="
-
- ";
-}else {$resultado="";}
- return $resultado;
-}elseif($accion =="eliminar") {
-
-$borrar= parametrizacion_linea("$tipo","$id_form",'ocultar',"$id_campo",'','',"$id_campo");
-//$resultado="$id_campo $borrar ";
-$div="contenedor_grafica_$tipo_$id_campo";
-}else{}
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-
-}
-$xajax->registerFunction("formulario_estadistica_ocultar");
-
-
-
-function formulario_estadistica($id_form,$id_campo,$group,$tipo){
-$mostrar = remplacetas("form_parametrizacion",'item',"$id_campo",'descripcion',"opcion = 'ocultar' AND tabla = '$tipo'") ;
-if($mostrar[0] !="") {
-
- $contenido ="";
- return $contenido;
-}
-
-$consulta = "SELECT count(control) as cantidad , id_campo ,contenido , campo_nombre FROM `form_datos`, `form_campos` WHERE `form_datos`.id_campo = `form_campos`.id AND `id_campo` = '$id_campo' AND `form_id` = '$id_form' GROUP BY $group order by cantidad";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
-
- if (mysqli_num_rows($sql)!='0'){
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- $dato[] =$row;
- $lineas .="$row[cantidad] $row[contenido] ";
-
- $datas .="'$row[cantidad]',";
- $etiquetas .="'".html_entity_decode($row['contenido'])." $row[campo_nombre] ($row[cantidad]) ',";
- $colores .= "'#".substr(md5(rand()), 0, 6)."',";
- }
- $datos= json_encode($dato);
- $data = "[".substr ($datas, 0, -1)."]";
- $etiqueta = "[".substr (preg_replace("[\n|\r|\n\r|\t]",'', $etiquetas), 0, -1)."]";
- $color = "[".substr ($colores, 0, -1)."]";
-
-$data_grafica= "
-datasets: [{
- data: $data ,
- backgroundColor: $color,
- label: ''
- }],
- labels: $etiqueta
-
-";
- $resultado ="
-
- $row[cantidad] $row[contenido]
- $lineas
-
-
- ";
- $manejo_grafica = formulario_estadistica_ocultar("$id_form","$id_campo","","$tipo");
-$grafica ="
-
-
-
-";
-
- }else {// $grafica= $consulta;
- }
- return $grafica;
-
-}
-
-function formulario_acciones($id,$tipo) {
- // $areas = resumen_identificador("$row[control]",'','','boton');
- $geo = buscar_campo_tipo("$id","14");
-// $buscador = buscar_datos("*formato*","$id","grid","mostrar_contenido_buscador");
- if($geo[0] !='') {
- $mapa_aplicacion= " ";
- $mapa= "Mapa
- {GEOJson}
- ";}else {$mapa='';}
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- $propietario = remplacetas('form_id','id',$id,'id_empresa',"") ;
- // $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- if($publico[0] !="0" OR $_SESSION["id_empresa"] =="$propietario[0]") {
-
- $agregar = " ";
- $camara = "
-
-
-
- ";
-
- }else{
-$camara= "
-
-
-
-
- ";
- }
- $campo_imagen = buscar_campo_tipo($id,"15");
- $id_campo = $campo_imagen[0];
- if($id_campo[0] =="") {
- $galeria_aplicacion="";
-
- }else{
- $galeria_aplicacion= "
-
-
-$camara
-
- ";
- }
-
- if($tipo=="") {
-$acciones="";
-
-}
-
-elseif($tipo=="aplicacion"){
-$acciones="
-
-
-
- $mapa_aplicacion
- $galeria_aplicacion
-
-
- $agregar
-
-
-
-
- ";
-}
-
-else{
-
-}
-return $acciones;
-
-}
-
-function compartir($id,$control) {
-$respuesta = new xajaxResponse('utf-8');
-
-$titulo = remplacetas('form_id','id',$id,'nombre',"") ;
-$descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-if($control=="") {
-$url ="$_SESSION[site]a$id";
- $empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa=$empresa[0];
-
- $impresion = strip_tags($descripcion[0]);
- //$impresion= str_replace('\t', '', $impresion);
- $impresion = preg_replace("[\n|\r|\n\r|\t]",'', $impresion);
- $twitter = substr($impresion,0, $length = 110);
- $caracteres = strlen("$impresion");
- if($caracteres > 110) { $twitter .= "..."; }
-
- $razon_social = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
- $slogan = remplacetas('empresa','id',"$id_empresa",'slogan','') ;
- $web = remplacetas('empresa','id',"$id_empresa",'web','');
- $logo = remplacetas('empresa','id',"$id_empresa",'imagen','') ;
- $size="50px";
-$resultado="
-
-
-
Compartir:
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
-}
-
-$encabezado ="$titulo[0]$descripcion[0] ";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$encabezado");
- //$respuesta->addAssign("titulo_modal","innerHTML","$datos_usuario");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-
-}
-$xajax->registerFunction("compartir");
-
-
-function portal_filtro_campos_drop($formulario,$id_campo,$div,$plantilla){
-$listado="";
-$tabla="";
-if($id_campo =="") {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- if($id_campo =="") { $resultado = ""; return $resultado;}
- }
- $tipo_campo = remplacetas('form_campos','id',"$id_campo",'campo_tipo',"") ;
- if($tipo_campo[0] =="10" ) {$tipo ="relacion";}
- elseif($tipo_campo[0] =="6" ) {$tipo ="buscador";}
- else{$tipo ="";}
- /// $valor_actual = relacion_render("$id","$row[id_campo]",$contenido,'5');
-
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT *
- FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario'
- AND form_campos.id = form_datos.id_campo
- AND form_datos.id_campo = '$id_campo'
- GROUP BY contenido
- ORDER BY contenido";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($tipo =='relacion') {
- ///($form_id,$id_campo,$valor,$cantidad)
- $valor_actual = relacion_render("$formulario","$id_campo","$row[contenido]",'0','relacion_drop');
- }
- elseif($tipo =='buscador') {
- ///($form_id,$id_campo,$valor,$cantidad)
- $valor_actual = imprimir_buscador_campo("$id_campo","$row[contenido]",'buscador_drop');
- //imprimir_buscador_campo($id_campo,$valor,$plantilla)
- }
- else {
- $valor_actual="$row[contenido]";
- }
-
-$listado .= " $valor_actual ";
-//onclick="xajax_portal_filtro_cadena('74','566','eab23a3e8e815f46a371a43ba9abc9ea','mostrar_resultado','landingpage') "
-
-}
-
-}
-/*$resultado ="
-
- Filtro
- $resultado
-
";
- */
- $resultado="
-
-
- Filtro $campo_nombre[0]
-
-
-
-
- ";
-
-return $resultado;
-}
-
-function drop($tabla,$value,$descripcion,$onchange,$where,$nombre){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$lis="";
- mysqli_set_charset($link, "utf8");
- $consulta = "SELECT *,$value, $descripcion FROM $tabla WHERE 1 $group ORDER BY $campo1 ";
- $sql=mysqli_query($link,$consulta);
-
- if (mysqli_num_rows($sql)!='0'){
- while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[$value]=="") {$resultado.="";}else{
- $mostrar_id = "[$row[$value]]";
- $lis.= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
- $resultado="
-
-
- $nombre
-
-
-
-
- ";
- }
- else{
- $resultado = " No hay resultados 0019
";
- }
-return $resultado;
-}
-
-
-
-function contenido_presentacion($id){
- $imagen ="";
- $acciones ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $campo_filtro ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $href_4="";
- $href_5="";
- $listado_nombres ="";
- if(isset($_REQUEST['orden'])) { $orden= "$_REQUEST[orden]";}
- if(isset($_REQUEST['registros'])) { $registros= "$_REQUEST[registros]";}
- if(isset($_REQUEST['pagina'])) { $pagina= "$_REQUEST[pagina]";}
- if(isset($_REQUEST['v'])) { $origen= "$_REQUEST[v]";}
- //$campo_orden = remplacetas('form_parametrizacion','campo',"$form",'descripcion'," tabla='form_id' and opcion = 'orden'") ;
- //$campo_orden = $campo_orden[0];
-
-
-
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-
- $campo_orden = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = 'orden'") ;
- $campo_orden = $campo_orden[0];
-
-
-
-if($orden == "" ) { $ordenar= "ORDER BY form_datos.id DESC ";}
-elseif($orden == "ASC" ) { $ordenar= "ORDER BY form_datos.id ASC "; }
-else{}
-
-
- if($campo_orden !="") {
- $consulta = "
- SELECT control,id,form_id,contenido FROM form_datos
- WHERE form_id = '$id' AND id_campo ='$campo_orden'
- GROUP BY form_datos.control
- ORDER BY CAST(contenido AS SIGNED ) $orden ";
- }else {
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control $ordenar";
- }
-
-
-//$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control $ordenar";
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- //$contenido = "/* HOJA DE ESTILOS CSS ACTUAL */
- $css_adicional[0]
-
-
-";
-}
-return $resultado;
-
-}
-
-function mas_visto($tipo,$limite,$divider,$form,$empresa) {
-$resultado= "";
-$contenido= "";
-
-if($divider =="" ) { $divider =6;}
-$cols = (12/$divider);
-$titulo[]="";
-if ($form !=""){ $w_form = "AND form_id='$form' ";}else{ $w_form="";}
- if($tipo =="ultimos") {
- $titulo="LO ÚLTIMO";
- $consulta ="SELECT * FROM `form_datos`, form_id WHERE `form_datos`.form_id = form_id.id AND form_id.publico = '1' $w_form GROUP BY form_datos.control ORDER BY form_datos.timestamp DESC LIMIT $limite";
- }
- elseif($tipo =="aleatorios" ){
- $tipo = "ultimos";
- $titulo="TE INTERESA";
- $consulta ="SELECT * FROM `form_datos`, form_id WHERE `form_datos`.form_id = form_id.id AND form_id.publico = '1' $w_form GROUP BY form_datos.control ORDER BY RAND() LIMIT $limite";
- }
- else{
- $consulta ="SELECT * FROM `form_parametrizacion` WHERE `opcion` LIKE '$tipo' ORDER BY CAST(descripcion AS SIGNED ) DESC LIMIT $limite";
- }
-$link=Conectarse();
- //mysqli_set_charset($link, "utf8");
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
- if($sql){
- // if (mysqli_num_rows($sql)!='0'){
- if (mysqli_num_rows($sql)!='0'){
- if($tipo =='identificador') {
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- $formulario = remplacetas('form_datos','control',"$row[campo]",'form_id',"") ;
- $formulario_titulo = remplacetas('form_id','id',"$formulario[0]",'nombre',"") ;
- $campo_imagen = buscar_campo_tipo("$formulario[0]","15");
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario[0],'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[campo]' ") ;
- $titulo = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[campo]' ") ;
- if($titulo[0] =="") {
- $titulo = remplacetas('form_datos','control',$row['campo'],'contenido'," id_campo != '$campo_imagen[0]' ") ;
- }
- //$impresion = mostrar_identificador("$row[campo]","","landingpage","","");
- $contenido .= "
-
-
-
-
-
-
- $formulario_titulo[0]
- $row[descripcion]
-
- $titulo[0]
-
-
- ";
- }
- $resultado = "
- LO MAS VISTO
- $contenido
- ";
- }
- elseif($tipo =='formulario') {
- while( $row = mysqli_fetch_array( $sql ) ) {
- $formulario_titulo = remplacetas('form_id','id',"$row[campo]",'nombre',"") ;
- $formulario_empresa = remplacetas('form_id','id',"$row[campo]",'id_empresa',"") ;
- $empresa_logo = remplacetas('empresa','id',"$formulario_empresa[0]",'imagen',"") ;
-
- $contenido .= "
-
-
-
-
-
-
- $formulario_titulo[0]
- $row[descripcion]
-
- $titulo[0]
-
-
- ";
-
- }
- $resultado = "
- PROYECTOS MAS ACTIVOS
- $contenido
- ";
-
- }
- elseif($tipo =='ultimos') {
- //while( $row = mysqli_fetch_array( $sql ) ) {
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- if($form ==""){ $datos_formulario =" $row[nombre] ";}
- else{$datos_formulario ="";}
-
-
- //$formulario = remplacetas('form_datos','control',"$row[control]",'form_id',"") ;
- //$formulario_titulo = remplacetas('form_id','id',"$formulario[0]",'nombre',"") ;
- $campo_imagen = buscar_campo_tipo("$row[form_id]","15");
- $campo_titulo = remplacetas('form_parametrizacion','campo',$row['form_id'],'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo_post = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
- if($campo_imagen[0] =="") {
- $imagen = remplacetas('empresa','id',"$row[id_empresa]",'imagen',"") ;
- }else{
- $imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[control]' ") ;
- if($imagen[0]=="") {
- $imagen = remplacetas('empresa','id',"$row[id_empresa]",'imagen',"") ;
- }
- //$impresion = mostrar_identificador("$row[campo]","","landingpage","","");
- }
- $contenido_campo =strip_tags($row['contenido']);
- $maximo ="50";
- $size= strlen($contenido_campo);
- if($size > $maximo) {
- $contenido_campo =substr($contenido_campo,0,$maximo)."... ";
- }
- $contenido .= "
-
-
-
-
-
-
- $titulo_post[0]
- $datos_formulario
-
- ";
- }
- $resultado = "
- $titulo
- $contenido";
- }
- else{}
-
- }
- }
-
-
-return $resultado;
-}
-
-function social_login($accion,$servicio,$uid) {
- $resultado="";
- require ("./milfs/includes/parametrizacion.php");
- $control_uid = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$uid' AND id_campo = '$social_login_uid'") ;
- $control_servicio = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$servicio' AND control = '$control_uid[0]'") ;
- $usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_usuario'") ;
- $nombre_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido"," id_campo = '$login_campo_nombres'") ;
- $avatar_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_avatar'") ;
-
- if($accion == "consultar") {
-
- if($control_servicio[0] != "") {
- $resultado ="Existe $control_servicio[0] ";
- }
- else {
- $resultado ="";
- }
- }
- elseif($accion =="login") {
- if($control_servicio[0] != "") {
- $_SESSION['usuario_milfs'] = "$usuario[0]";
-
- $_SESSION['nombre_usuario_milfs'] = "$nombre_usuario[0]";
- $_SESSION['control_usuario_milfs'] = "$control_servicio[0]";
- $_SESSION['avatar_usuario_milfs'] = "$avatar_usuario[0]";
-
- header("Location: ./");
- die();
- }
- else{
- session_destroy();
- header("Location: ./");
- die();
- }
-
-
-
- }
- else{$resultado ="";}
-
-return $resultado;
-
-}
-
-
-function campo_privacidad($opcion,$id_campo,$form,$accion) {
- //return $array;
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-$respuesta = new xajaxResponse('utf-8');
- if($accion =='grabar'){
- $limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$form' AND descripcion='$id_campo' AND opcion like 'privacidad:%' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1 ";
- $sql=mysqli_query($link,$limpiar);
-
- $consulta= "INSERT INTO form_parametrizacion set tabla='form_id', campo = '$form', opcion ='privacidad:$opcion' , descripcion ='$id_campo' ,visible='0', id_empresa = '$_SESSION[id_empresa]'";
- }
- // return $consulta;
- $sql=mysqli_query($link,$consulta);
- if($sql){
- if($opcion == '1') { $mensaje = "El campo ahora es privado y NO se mostrará su contenido";}
- else { $mensaje = "El campo ahora ES PÚBLICO y SE MOSTRARÁ su contenido";}
- //$respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- $respuesta->addAlert("ATENCION: $mensaje");
- return $respuesta;
- }else {
- //$respuesta->addAlert("$consulta");
- //$respuesta->addAssign("debug","innerHTML","$consulta");
- //return $respuesta;
- }
-
-}
-$xajax->registerFunction("campo_privacidad");
-
-
-
-function respuestas_formulario($id,$identificador,$plantilla) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $formulario_respuesta = formulario_respuesta("$id","$identificador");
- $consulta = "SELECT form_id , timestamp FROM form_datos
- WHERE control = '$identificador' AND form_id != '$id' GROUP BY form_id , timestamp ORDER by timestamp DESC limit 1
- ";
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-
- $resultado ="";
- while( $row = mysqli_fetch_array( $sql ) ) {
- $respuesta = mostrar_identificador("$identificador","$row[form_id]","respuesta","simple","$row[timestamp]");
- $fecha = date($format, $row['timestamp']);
- $resultado .= " $respuesta
";
-
-}
- $resultado .="";
-}else{$resultado ="";}
-$resultado = "$resultado $formulario_respuesta
";
-return $resultado;
-}
-
-
-function formulario_respuesta($id,$identificador) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $consulta = "SELECT * FROM form_id
- WHERE formulario_respuesta = '$id'
- ";
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado ="
- ";
-}else{$resultado ="";}
-return $resultado;
-}
-
-
-function consultar_contenido_formulario($form,$registros,$pagina,$tipo,$orden,$plantilla){
- if($plantilla=="") { $plantilla="landingpage";}
- if(isset($_SESSION['proceso'])) {
- $filtro_proceso ="AND proceso='$_SESSION[proceso]' ";
- }else{ $filtro_proceso =" ";}
- $usuario_datos ="";
- $imagen ="";
- $acciones ="";
- $filtro ="";
- $filtro_generico ="";
- $origen ="";
- $busca ="";
- $agregar ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $campo_filtro ="";
- $lineas ="";
- $linea ="";
- $linea_listado ="";
- $formato ="";
- $href_4="";
- $href_5="";
- $listado_nombres ="";
- if(isset($_REQUEST['orden'])) { $orden= "$_REQUEST[orden]";}
- if(isset($_REQUEST['registros'])) { $registros= "$_REQUEST[registros]";}else{$registros='10';}
- if(isset($_REQUEST['pagina'])) { $pagina= "$_REQUEST[pagina]";}
- if(isset($_REQUEST['v'])) { $origen= "$_REQUEST[v]";}
- $campo_orden = remplacetas('form_parametrizacion','campo',"$form",'descripcion'," tabla='form_id' and opcion = 'orden'") ;
- $campo_orden = $campo_orden[0];
-
-
-
-if($orden == "" ) { $ordenar= "ORDER BY form_datos.id DESC ";}
-elseif($orden == "ASC" ) { $ordenar= "ORDER BY form_datos.id ASC "; }
-else{}
-
-$respuesta = new xajaxResponse('utf-8');
-
-$id_form = $form;
- if($campo_orden !="") {
- $consulta_principal = "
- SELECT control,id,form_id,contenido FROM form_datos
- WHERE form_id = '$form' AND id_campo ='$campo_orden'
- $filtro_proceso
- GROUP BY form_datos.control
- ORDER BY CAST(contenido AS SIGNED ) $orden ";
- }else {
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' $filtro_proceso GROUP BY form_datos.control $ordenar";
- }
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-mysqli_real_escape_string($link,$consulta_principal);
-$sql_total=mysqli_query($link,$consulta_principal);
-$total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
-if($registros=="") { $registros="$total_registros"; $origen="url";}
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta_principal.$limite;
- mysqli_real_escape_string($link,$consulta_limite);
- $sql=mysqli_query($link,$consulta_limite);
-@mysqli_data_seek($sql_total, 0);
-//$sql=mysqli_query($link,$consulta_principal);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-//$fecha = time ();
-// $ahora = date ( "Y-m-d" , $fecha );
-// $campos = listar_campos_formulario($id_form,"select");
-
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
-
- if(isset($_REQUEST[registros])) {
- $href_1 = "$origen®istros=$registros&pagina=1&orden=$orden";
- $href_2 = "$origen®istros=$registros&pagina=".($pagina-1)."&orden=$orden";
- }
- else {
- $href_1= "#cabecera#";
- $href_2= "#cabecera#";
- }
-
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
-
- if(isset($_REQUEST['registros'])) {
- $href_3 = "$origen®istros=$registros&pagina=$x&orden=$orden";
- }
- else {
- $href_3= "#cabecera#";
- }
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- {
- if(isset($_REQUEST['registros'])) {
- $href_4 = "$origen®istros=$registros&pagina=".($pagina+1)."&orden=$orden";
- $href_5 = "$origen®istros=$registros&pagina=$pages&orden=$orden";
- }
- else {
- $href_4= "$href_4";
- $href_5= "$href_5";
- }
- $link .= "
- "; }
- }
- $paginacion = "";
- $encabezado = "
- ";
-
-// $total_registros = mysqli_num_rows($sql);
-/* $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- */
-// $listado_nombres = "Identificador $listado_nombres ";
-///$listado_campos = listar_campos_formulario("$id_form",'');
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion','') ;
- //$descripcion_limpia = strip_tags($descripcion[0]);
- $nombre = remplacetas('form_id','id',$id_form,'nombre','') ;
- $cabecera=" $nombre[0] $descripcion[0]";
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-// if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","$plantilla",'paginado');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= " $row[control]";
-$linea_listado .= landingpage_contenido_identificador("$row[control]","$id_form","$plantilla",'listado');
-$linea_planilla .= landingpage_contenido_identificador("$row[control]","$id_form","$plantilla",'planilla');
-$linea_li .= landingpage_contenido_identificador("$row[control]","$id_form","$plantilla",'li');
- }
-$buscador = buscar_datos("*formato*","$form","grid","mostrar_resultado");
-//$filtro = portal_filtro_campos_select($form,"$campo_filtro","mostrar_resultado","landingpage");
-$filtro_drop = portal_filtro_campos_drop($form,"$campo_filtro","mostrar_resultado","landingpage");
-////////$filtro_generico = filtro_generico($form,$tipo);
-$formulario_tabla_temporal = formulario_tabla_temporal($form);
-
-if( $tipo !== "" AND $tipo !=="embebido" ) {
- $publico = remplacetas('form_id','id',"$form",'modificable',"") ;
- $propietario = remplacetas('form_id','id',$form,'id_empresa',"") ;
- // $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- if($publico[0] !="0" OR $_SESSION["id_empresa"] =="$propietario[0]") {
-
- $agregar = " Agregar
";
- }
-$acciones="
-
-
-
-
-
- $agregar
-
-
-
- $filtro
- $filtro_drop
-
-
-
$buscador
-
-
-
- $filtro_generico
- $formulario_tabla_temporal
-
-
-
-
-
";
-}
-
-$resultado = "
-
-
-
-$acciones
-
-
- $linea
-
-$encabezado
-
-
-";
- }
-else {
-$resultado ="
No hay resultados 0021 ";
- if($tipo =="contenido" OR $tipo =="embebido" OR $tipo =="li" ) {
- if($tipo=="li") {$resultado="";}
- return $resultado;
- }
-$respuesta->addAlert("No hay resultados 0022");
-return $respuesta;
-}
-
- /*$datos = $resultado;
- $div ="contenido_de_modal";
- $resultado = "
$datos
";
- $div_contenido = "
$div
";
- */
- if($tipo =="") {
- // $respuesta->addAssign("contenido_interior","innerHTML","$div_contenido");
- $respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- return $respuesta;
- }
- elseif($tipo =="contenido" OR $tipo =="embebido" ) {
- return $resultado;
- }
- elseif($tipo =="simple") {
- return $linea;
- }
- elseif($tipo =="listado") {
-// unset($_SESSION['proceso']);
- return "$linea_listado";
- }
- elseif($tipo =="planilla") {
-// unset($_SESSION['proceso']);
- return "$linea_planilla";
- }
- elseif($tipo =="li") {
-// unset($_SESSION['proceso']);
- return "$linea_li";
- }
- else {}
-}
-$xajax->registerFunction("consultar_contenido_formulario");
-
-
-function multiempresa_listado($tabla,$div){
-
-
-$resultado = "";
-$encontrados = "";
-$link=Conectarse();
-
-mysqli_set_charset($link, "utf8");
-$consulta = "SELECT * ,empresa.id as id_empresa FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC ";
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
-
-
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=3;
-$cols = (12/$divider);
-$sm = 4;
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
- $encontrados .= "
";
- }
- $i++;
- if($row['imagen'] !="") {
- $logo="
";
- }
- else {
- $logo_empresa = remplacetas('empresa','id',"1",'imagen','');
- //$logo="
";
- $logo="
";
- }
- // $slogan= substr($row[slogan],0, $length = 100)."";
- $slogan = $row['slogan'];
- $dominio = remplacetas('empresa','id',"$row[id_empresa]",'web','') ;
- $contenido ="
-
-
- ";
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- $resultado ="
-
-
-
-
Proyectos
-
Conoce los proyectos que usan Tupale.co para la implementación de sus herramientas, selecciona para conocer más
-
-
-
-
-
- ";
- }else{
- $resultado = "
No hay resultados 0023
";
- }
-if($div =="") { return $resultado; }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa_listado");
-
-
-
-function decodifica_parametro ($string)
-{
- $inicial = substr($string,0,1);
- $string = mb_substr($string,1);
- $cadena = $string;
- //$length = strlen($base);
-
- $size = strlen($string) - 1;
- $string = str_split($string);
-
- //$out = strpos($base, array_pop($string));
-//return $out;
- /*foreach($string as $i => $char)
- {
-
- $out += (strpos($base, $char)* pow($length, $size - $i));
-//$out .= "$i => $char";
- }*/
-$resultado[0]=$inicial;
-//$resultado[1]=$out;
-$resultado[1]=$cadena;
-
- return $resultado;
-}
-
-function grabar_imagen($imagen,$control) {
-
- $imgData = str_replace(' ','+',$imagen);
- $imgData = substr($imgData,strpos($imgData,",")+1);
- $imgData = base64_decode($imgData);
-
- $nombre= $control.".png";
- $filePath = "$_SESSION[path]/tmp/".$nombre;
-
- $file = fopen($filePath, 'w');
- fwrite($file, $imgData);
- fclose($file);
- $full= "$_SESSION[path_images_secure]/full/".$nombre;
- if (!rename($filePath,$full)){}
- else {
- echo generar_miniatura($nombre,"150");
- echo generar_miniatura($nombre,"300");
- echo generar_miniatura($nombre,"600");
- }
-
- //return "$nombre";
- return "$nombre";
-}
-
-
-function generar_miniatura($file,$width) {
-//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
-// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
-$file_info = getimagesize($archivo);
-// Obtenemos la relación de aspecto
-$ratio = $file_info[0] / $file_info[1];
-
-// Calculamos las nuevas dimensiones
-$newwidth = $width;
-$newheight = round($newwidth / $ratio);
-
-// Sacamos la extensión del archivo
-$ext = explode(".", $file);
-$ext = strtolower($ext[count($ext) - 1]);
-if ($ext == "jpeg") $ext = "jpg";
-
-// Dependiendo de la extensión llamamos a distintas funciones
-switch ($ext) {
- case "jpg":
- $img = imagecreatefromjpeg($archivo);
- break;
- case "png":
- $img = imagecreatefrompng($archivo);
- break;
- case "gif":
- $img = imagecreatefromgif($archivo);
- break;
-}
-// Creamos la miniatura
-$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
-// La redimensionamos
-imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
-// La mostramos como jpg
-//header("Content-type: image/jpeg");
-imagejpeg($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 80);
-imagepng($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 9);
-imagegif($thumb,"$_SESSION[path_images_secure]/".$width."/$file");
-//imagejpeg($thumb,null, 80);
-}
-
-function generar_vcard($identificador){
-$impresion = mostrar_identificador("$identificador","","vcard",'simple');
-$impresion = formulario_imprimir("$id_form","$identificador","$plantilla");
-$nombre ="vcard_".$identificador.".vcf";
-$vcard ="BEGIN:VCARD
-VERSION:3.0
-N:Gump;Forrest
-FN:Forrest Gump
-ORG:Bubba Gump Shrimp Co.
-TITLE:Shrimp Man
-PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif
-TEL;TYPE=WORK,VOICE:(111) 555-1212
-TEL;TYPE=HOME,VOICE:(404) 555-1212
-ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
-LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America
-ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
-LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America
-EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com
-REV:20080424T195243Z
-END:VCARD";
-$archivo = "milfs/tmp/$nombre";
-$file=fopen($archivo,"w") or die("Problemas en la creacion");//En esta linea lo que hace PHP es crear el archivo, si ya existe lo sobreescribe
-fputs($file,$impresion);//En esta linea abre el archivo creado anteriormente e ingresa el resultado de tu script PHP
-fclose($file);//Finalmente lo cierra
-/*
-$ruta="/tmp/vcard_".$identificador.".vcf";
-header ("Content-Disposition: attachment; filename=".$ruta);
-header ("Content-Type: application/octet-stream");
-header ("Content-Length: ".filesize($ruta));
-readfile($ruta);
-*/
-return $archivo;
-
-
-}
-
-function autoriza_formulario_mostrar($password,$form,$control) {
- $respuesta = new xajaxResponse('utf-8');
- if($password =="") { unset($_SESSION['permiso_identificador']); $respuesta->addScript("javascript:location.reload(true);"); return $respuesta;}
- $campo = buscar_campo_tipo($form,"18");
- $campo_password = $campo[0];
- $comprobar_clave = remplacetas('form_datos','form_id',"$form",'contenido'," BINARY contenido = MD5('$password') AND id_campo = '$campo_password'") ;
- $password = md5($password);
- $aviso = "";
-
-if($comprobar_clave[0] !== $password ) {
- unset($_SESSION['permiso_identificador']);
- $respuesta->addAlert("La clave no es válida ");
- $aviso = "$comprobar_clave[2] !== $control";
- $respuesta->addAssign("pie_modal","innerHTML",$aviso);
- return $respuesta;
- }
- else{
- $_SESSION['permiso_identificador']="$control";
- //$respuesta->addAssign("pie_modal","innerHTML",$aviso);
- $respuesta->addScript("javascript:location.reload(true);");
- }
- return $respuesta;
-}
-$xajax->registerFunction("autoriza_formulario_mostrar");
-
-
-function landingpage_contenido_identificador($identificador,$form,$plantilla,$tipo){
- if(strlen($identificador) > 32) {
- $identificador_original= $identificador;
- $key = substr($identificador, 32, $length = 40);
- $identificador = substr($identificador, 0, $length = 31);
- }else {$identificador_original = $identificador;}
-
-
- $linea="";
- $id_empresa = remplacetas('form_datos','control',$identificador,'id_empresa',"") ;
- $datos = remplacetas('form_datos','control',$identificador,'contenido',"") ;
- $formulario_identificador = remplacetas('form_datos','control',$identificador,'form_id',"") ;
-
- $campo_orden = remplacetas('form_parametrizacion','campo',$datos[5],'descripcion'," tabla='form_id' and opcion = 'orden'") ;
-
- if($campo_orden[0] =="" ) {
- $siguiente = remplacetas_orden('form_datos','form_id',$datos[5],'control'," id > '$datos[1]' AND control !='$identificador'"," ORDER BY id ASC") ;
- $anterior = remplacetas('form_datos','form_id',$datos[5],'control'," id < '$datos[1]' AND control !='$identificador' ") ;
- }
- else{
- $siguiente = remplacetas_orden('form_datos','form_id',$datos[5],'control'," id_campo = '$campo_orden[0]' AND contenido > '$datos[0]' AND control !='$identificador'"," ORDER BY id ASC") ;
- $anterior = remplacetas('form_datos','form_id',$datos[5],'control'," id_campo = '$campo_orden[0]' AND contenido < '$datos[0]' AND control !='$identificador' ") ;
- }
- $campo_titulo = remplacetas('form_parametrizacion','campo',$datos[5],'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo_siguiente = remplacetas('form_datos','form_id',$datos[5],'contenido'," id_campo = '$campo_titulo[0]' AND control = '$siguiente[0]' ") ;
- $titulo_anterior = remplacetas('form_datos','form_id',$datos[5],'contenido'," id_campo = '$campo_titulo[0]' AND control = '$anterior[0]' ") ;
-
- if($anterior[0] !='') {
- $post_anterior ="
$campo_orden[0] Anterior
- ";
- }
- if($siguiente[0] !='') {
- $post_siguiente ="
Siguiente
- ";
- }
- if($tipo =="simple") { $manejadores="$post_anterior $post_siguiente";}else { $manejadores="";}
- $respuestas = respuestas_formulario($form,$identificador,$plantilla);
-
-
- $imagen = buscar_imagen($form[0],$identificador,"","$id_empresa[0]");
- $plantilla_original = $plantilla;
-
- $uri = "$_SESSION[site]I$identificador";
- $qr = "https://qwerty.co/qr/?d=$uri";
- if($imagen !="") {
-
- $mostrar_imagen ="
";
- $miniatura = "
-
-
-
-
- $uri";
-
- }else {
- $miniatura ="
-
- I$identificador
-
- ";
- $mostrar_imagen = "
-
-
- ";
-
-
-
- }
-
-
- if($plantilla_original !="" ) {
- $impresion = mostrar_identificador($identificador_original,"$form","$plantilla","","");
-
- } else{
- $contenido = @mostrar_areas("$identificador_original","","");
- $impresion = "
-
-
-
-
-
-
- ";
-
- }
- if($tipo=="head") {
- $edicion="";
- $documento=""; $respuestas="";} else{
- if(isset($_SESSION['id_empresa'])){
- $edicion ="
Editar ";
- }else {$edicion="";}
- }
- $documento="
";
-
-if($plantilla_original=="svg") { return $impresion;}else{
- if($tipo=="listado") {
- $documento= "";
- $edicion="";
- $manejadores="";
- if(isset($_SESSION['proceso']) or isset($_REQUEST['proceso'])) {
- if($_REQUEST['proceso'] != ""){$proceso = $_REQUEST['proceso'];}else { $proceso = $_SESSION['proceso'];}
- $usuario = remplacetas_turno('turnos',"id_turno","$proceso",'id_usuario',"") ;
- $usuario_datos = paciente_datos($usuario[0],"impresion",'');
- }else{ $usuario_datos="";}
-$pie = empresa_datos("$id_empresa[0]",'pie');
-$pie = "$pie
https://tupale.co ";
-$salto = "
";
-$encabezado_empresa = empresa_datos("$id_empresa[0]",'encabezado');
- $formulario_descripcion = remplacetas('form_id','id',$formulario_identificador[0],'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$formulario_identificador[0],'nombre','') ;
- $cabecera ="
-
".$formulario_nombre['0']."
- ".$formulario_descripcion['0']."
- ";
- $cabecera="
-
-
- $encabezado_empresa
- $cabecera
-
-
-
-
-
-
-
-
-
-
-
-
- $usuario_datos
-
-
-
";}
-
-
- else{
-
-$cabecera="";
-$pie="";
-$salto="";
- }
- if($tipo =="li") {
- $linea ="
- $impresion
- ";
- }
- else{
- $linea = "
-
-
-
-
- $cabecera $manejadores
- $documento $edicion
- $impresion
-
-
-
$respuestas
-
-
-
- $pie
-
- $salto
- ";
- }
- return $linea;
- }
- }
-
-
-function landingpage_contenido_formulario($form,$registros,$pagina,$div_original){
- $cantidad = formulario_contar($form);
- $div="contenido_interior";
- //if($registros =="") {$registros ="10";}
- $consulta= "SELECT control FROM form_datos WHERE form_id = '$form' GROUP BY control ORDER BY id DESC ";
- $id_empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- //$sql=mysqli_query($link,$consulta);
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($link,$consulta_limite);
-
- $paginacion ="";
- $paginacion .= $indice;
-/*
- /// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($link,$consulta_limite);
- $page= $pagina;
- @$pages= ceil($cantidad / $registros); //13; // Hardcoded for testing purpose
- $limit= 20 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
-
";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "
$x ";
- }else{
- $link .= "
$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
-
"; }
- }
-
- $paginacion = "";
-
- */
-
- //// PAGINACION
-if (mysqli_num_rows($sql)!='0'){
- $linea=" ( $cantidad ) $paginacion";
- $fila = 1;
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $impresion = mostrar_identificador($row['control'],"","landingpage","","");
- $imagen = buscar_imagen($form,$row['control'],"","$id_empresa[0]");
- if($imagen !="") { $clase = "col-lg-5 col-sm-6";}else {$clase = "col-lg-12 col-sm-12";}
- $uri = "
Ver mas ... ";
- $linea .= landingpage_contenido_identificador($row['control']);
- }
- $resultado_linea="
$linea
";
- }
- if($div_original=="") {
-
- return $resultado_linea;
- }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$linea");
-
- return $respuesta;
-
- }
- }
-$xajax->registerFunction("landingpage_contenido_formulario");
-/*
-$respuesta = new xajaxResponse('utf-8');
-$resultado ="
$mensaje Procesando ...";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-
-*/
-function landingpage_contenido($id_empresa){
-$consulta= "SELECT * FROM form_id WHERE id_empresa= '$id_empresa' ORDER BY orden ASC";
-$miniatura ="";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
- $linea="";
-if (mysqli_num_rows($sql)!='0'){
-
- $fila = 1;
- //include("includes/datos.php");
- $error_token = "";
- $contenido = "";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; } else {$error_token = "";}}
- while( $row = mysqli_fetch_array( $sql ) ) {
- //$link = "
Consultar ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- $mostrar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='mostrar_portal'") ;
- $llenar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='llenar_portal'") ;
- $ver_data = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='ver_data_portal'") ;
- $vista_favorita = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='vista_favorita'") ;
- $vista=$vista_favorita[0];
- if($vista=='libro') { $favorita="b$row[id]?registros=10";}
- elseif($vista=='aplicacion') { $favorita="a$row[id]";}
- elseif($vista=='set') { $favorita="s$row[id]";}
- elseif($vista=='mapa') { $favorita="mapero.php?id=$row[id]";}
- elseif($vista=='presentacion') { $favorita="c$row[id]";}
- elseif($vista=='timeline') { $favorita="timeline.php?id=$row[id]";}
- elseif($vista=='formulario') { $favorita="f$row[id]";}
- elseif($vista=='informe') { $favorita="l$row[id]";}
- elseif($vista=='planilla') { $favorita="p$row[id]";}
- elseif($vista=='agenda') { $favorita="?eventos=$row[id]";}
- elseif($vista=='checklist') { $favorita="m$row[id]";}
- elseif($vista=='notas') { $favorita="n$row[id]";}
- elseif($vista=='landingpage') { $favorita="o$form_id";}
-
- else{ $favorita="b$row[id]?registros=10";}
- if($ultimo_mapa[0] !="") {
- $campos = explode(" ",$ultimo_mapa[0]);
- $lat = $campos['0'];
- @$lon = $campos['1'];
- @$zoom = $campos['2'];
-
- if($error_token != 1) {
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/pin.png");
- $miniatura = "
-
-
-
";
- /* $miniatura = "
-
-
- ";*/
-
- }else{ $miniatura ="
No se ha definido un token de mapbox
";}
- }
- //if($geo[0] !='') { $mapa= "
$miniatura Ver mapa ";}else {$mapa='';}
- if($geo[0] !='') { $mapa= "
Mapa";}else {$mapa='';}
- $descripcion_limpia = strip_tags($row['descripcion']);
- if($imagen !="") {
- $imagen ="
-
-
-
-
-
-
-
- ";
-}
- $contenido ="
-
$row[nombre]
-
-
-
$descripcion_limpia
";
-
-// if ( $fila%2==0){
-
-
-
-if($llenar[0] !="0") {$boton_agregar ="
Agregar
";}
- else{$boton_agregar = "";}
-if($ver_data[0] !="0") {$boton_ver_data ="
OpenData ";}
- else{$boton_ver_data = "";}
-
- if($mostrar[0] !="0") {
- //// PRIVACIDAD
- $publico = remplacetas('form_id','id',"$row[id]",'publico',"") ;
-
-/// PRIVACIDAD
-if($publico[0] =='1') {
- $linea .= "
-
-
-
- ";
- }else{
- if($llenar[0] !="0"){
- $linea .="
-
- ";}
-
- }
- }else {
-
- $linea .=" ";}
-
- $fila++;
- }
- }
- $linea ="
-
-
- $linea
-
- ";
-return $linea;
-}
-
-function buscar_imagen($form,$control,$tipo,$empresa) {
- $imagen="";
- if($control !="") { $w_control = "AND form_datos.control ='$control'";}else{$w_control ="";}
- if ($form ==""){
- $consulta = "SELECT form_datos.id_empresa, contenido , campo_nombre , id_campo FROM form_id, form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_id.id = form_datos.form_id
- AND form_datos.id_empresa = '$empresa'
- AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 ";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- $imagen = mysqli_result($sql,0,"contenido");
- }
-if($tipo == "consulta") { return $consulta; }
- return $imagen;
-
- }
-$publico = remplacetas('form_id','id',"$form",'publico',"") ;
-if($publico[0] !="0" ){
-$campo_imagen = buscar_campo_tipo("$form","15");
-$imagen = remplacetas('form_datos','form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ;
-//$imagen = "$imagen[0]";
-return $imagen[0];
-}
-return;
-}
-
-function wait($div,$mensaje){
-$respuesta = new xajaxResponse('utf-8');
-$resultado ="
$mensaje Procesando ...";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-function campos_buscador($nombre,$tipo) {
-if($nombre=="") {
- $filtros = "
-
-
-
- Seleccione
- Todos
- Mis campos
- Mi empresa
- No usados
- Llenos
-
-
-
- ";
-$resultado ="
-
";
-
-}
-return $resultado;
-
-
-}
-
-
-function campos_tabla($filtro,$div,$limite,$inicio,$valor) {
- if($limite =="") {$limite= 100;}
- if($inicio =="") {$inicio= 0;}
-if($valor !="") { $w= "AND campo_nombre LIKE '%$valor%'";}
- $fin=($inicio+$limite);
- $anterior=($inicio-$limite);
- $w_limite=" LIMIT $inicio ,$limite";
-
-$mio ="";
-$lineas ="";
-$w_empresa ="";
-$w_especialista ="";
-if($filtro == 'id_empresa') { $w_empresa = " AND id_empresa = '$_SESSION[id_empresa]' ";}
-if($filtro == 'id_especialista') { $w_especialista = " AND id_especialista = '$_SESSION[id]' ";}
-if($filtro == 'llenos') {
-$consulta= " SELECT * , form_campos.id as id FROM form_campos, form_datos WHERE form_campos.id = form_datos.id_campo $w_empresa $w_especialista $w GROUP BY id_campo ORDER BY campo_nombre ";
-}elseif($filtro == 'vacios') {
-//$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_datos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_contenido_campos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-}else{
-$consulta= " SELECT * FROM form_campos WHERE id = id $w_empresa $w_especialista $w ORDER BY campo_nombre ";
-}
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta.$w_limite);
- $sql_total=mysqli_query($link,$consulta);
- //$div = "div_tabla_campos";
-
- $cantidad_mostrada =mysqli_num_rows($sql);
- $cantidad_total =mysqli_num_rows($sql_total);
- if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- mysqli_data_seek($sql_total, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"",'') ;
- $campo_tipo ="
$tipo_nombre[0] ";
- if($_SESSION['id_empresa'] == $row['id_empresa']) {
- $row['campo_nombre']= editar_campo("form_campos","$row[id]","campo_nombre","","","","");
- $row['campo_descripcion']= editar_campo("form_campos","$row[id]","campo_descripcion","","","","");
- $row['campo_area']= editar_campo("form_campos","$row[id]","campo_area","","","","");
- $row['activo']= editar_campo("form_campos","$row[id]","activo","","","","","");
- $accion = "
";
- $class='success';
- }else {
- $class='';
- $accion ="";
- }
- if($_SESSION['id'] == $row['id_especialista']) {
- $row['id_especialista'] = "
$row[id_especialista]";
- }
- if($_SESSION['id'] == 1){
- $metacampo_titulo="
MC ";
- if($row['tipo_contenido'] ==1) {
- $metacampo="
";
- }
- else {
- $metacampo="
";
- }
- }
- $lineas .= "$row[id] $row[campo_nombre] $row[campo_descripcion] $campo_tipo $metacampo$row[campo_area] $row[activo] $row[id_empresa] $row[id_especialista] $mio $accion ";
- }
-
- $tabla = "
-
-
-
- <<< ANTERIORES
- Mostrando $cantidad_mostrada de $cantidad_total
- SIGUIENTES >>>
-
-
-
-
- id Nombre Descripcion Tipo $metacampo_titulo
- $lineas
-
-
- ";
- }
- if($div !=""){
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$tabla");
- return $respuesta;
- }
- else{
- $resultado = "$filtros $tabla";
- return $resultado;
-}
-}
-$xajax->registerFunction("campos_tabla");
-
-function remplacetas_noid($tabla,$campo,$valor,$por,$and,$limit){
-if($limit =="") { $limite="LIMIT 1";}else{$limite= "LIMIT $limit";}
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC $limite";
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($link,$consulta);
-
-if (@mysqli_num_rows($sql)!=0){
- if($limit =="") {
-$resultado[0] = mysqli_result($sql,0,$por);
-$resultado[1] = mysqli_result($sql,0,"$campo");
-$resultado[2] = $consulta;
-$resultado[3] = mysqli_result($sql,0,"md5_$por");}
-else {
- $row = mysqli_fetch_array( $sql );
- $resultado[0]=$row;
- $resultado[1] = mysqli_result($sql,0,"$campo");
- $resultado[2] = $consulta;
- $resultado[3] = mysqli_result($sql,0,"md5_$por");
-}
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-
-return $resultado;
-}
-
-
-
-function contar_visitas($id,$tipo) {
-$id_visitas = remplacetas('form_parametrizacion','campo',$id,'id'," tabla='form_id' AND opcion='$tipo'") ;
-$visitas = remplacetas('form_parametrizacion','id',$id_visitas[0],'descripcion',"") ;
-$cantidad = $visitas[0]+1;
-if($visitas[0] =="") {
- $consulta = "INSERT INTO form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'";
- }
-else {
- $consulta = "UPDATE form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'
- WHERE id ='$id_visitas[0]' LIMIT 1";
-}
-$link=Conectarse();
- mysqli_set_charset($link, "utf8");
- mysqli_real_escape_string($link,$consulta);
- $sql=mysqli_query($link,$consulta);
-$cantidad = "$cantidad $_SESSION[analizador]";
-return $cantidad;
-}
-
-
-function geocoder($valor,$campo){
-$respuesta = new xajaxResponse('utf-8');
-if(strlen($valor) > 3) {
-$valor = urlencode($valor);
-$json = "https://nominatim.openstreetmap.org/search.php?format=json&limit=5&addressdetails=1&q=$valor&email=info@tupale.co";
-$data = file_get_contents("$json");
-if ($data=='429 Too Many Requests'){
-return $data;
-}
-$geocoder = json_decode($data, true);
-if($data ==="[]") {$vacio="
-
-
No se encontraron resultados
-";}
-
-foreach ($geocoder as $clave => $valor) {
- $ciudad = $valor['address']['city'];
- $municipio = $valor['address']['town'];
- $pais = $valor['address']['country'];
- $departamento = $valor['address']['state'];
- $licencia= $valor['licence'];
- $link = "./milfs/mapa.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo&exif";
- ///$link = "$_SESSION[site]milfs/mapa.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo&exif";
- $linea .= "
-
-
- $valor[display_name]
-
- $ciudad $municipio $pais $departamento
-
-
-
- ";
-//foreach ($valor as $clave => $valor) { $linea .= "CLAVE : $clave > VALOR: $valor"; }
-}
-$resultado = "
-
- $vacio $licencia
-
";
-}
- //$div_contenido = "
$div
";
- //$respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("muestra_geocoder","innerHTML","$resultado");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("geocoder");
-
-
-function mostrar_psi(){
-$respuesta = new xajaxResponse('utf-8');
-include("psi.php");
- //$div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_psi");
-
-function multiempresa_crear($tabla,$formulario,$div) {
-$formulario = limpiar_caracteres($formulario);
-$link=Conectarse();
- mysqli_set_charset($link, "utf8");
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '".mysqli_real_escape_string($link,$v)."',";
- }
- $valores = "$valores id_responsable = '$_SESSION[id]'";
-
-$respuesta = new xajaxResponse('utf-8');
-
- $insertar = "INSERT INTO $tabla set $valores";
- $sql=mysqli_query($link,$insertar);
- if(mysqli_affected_rows($link) != 0){
-
- }
-if($div !='') {
-
-
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("multiempresa_crear");
-
-function nombre_dominio($url){
- $protocolos = array('http://', 'https://', 'ftp://', 'www.');
- $nombre = explode('/', str_replace($protocolos, '', $url));
- // $nombre = substr($url[0],0,-strlen(strstr($url[0],"." )));
- return $nombre[0];
-}
-
-function configurar_dominio ($id,$tipo) {
-$directorio = "/opt/tupalescripts/";
-$dominio = remplacetas('empresa','id',"$id",'web','') ;
-$nombre = nombre_dominio($dominio[0]);
-$nombre = str_replace(".", "_", $nombre);
-if($tipo =="crear" ) {
- $ar=fopen("$directorio".$id."","w"); //or die("Problemas en la creacion");
- $variables=fopen("$directorio"."variables","w"); //or die("Problemas en la creacion");
- $contenido = "dominio=$dominio[0] \nnombre=$nombre \nidem=$id \n";
-
- fputs($ar,"$contenido");
- fputs($variables,"$contenido");
-
- fclose($ar);
- fclose($variables);
-
- $resultado ="Se configuró el dominio para $nombre ";
- }else {
- $borrar=fopen("$directorio"."borrar","w");
- fputs($borrar,"nombre=$nombre");
- fclose($borrar);
- unlink("$directorio".$id."");
- $resultado ="Se ELIMINÓ el dominio $nombre ";
- }
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("dominio_$id","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("configurar_dominio");
-
-
-function multiempresa($tabla,$div){
- require ("includes/parametrizacion.php");
-
- if($_SESSION['id'] == 1 AND $soporte_multiempresa !== 0) {
- if($div =="") {
- $div="contenido";
- $resultado ="
Configuración multiempresa";
- return $resultado;
- }
-$link=Conectarse();
-
-mysqli_set_charset($link, "utf8");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$consulta = "SELECT * FROM empresa ";
-$sql=mysqli_query($link,$consulta);
-
-$resultado="
-$name
-Id Nombre Sigla Email Web Dirección Teléfono
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$razon_social= editar_campo("empresa",$row['id'],"razon_social","","","","");
-$sigla= editar_campo("empresa",$row['id'],"sigla","","","","");
-$email= editar_campo("empresa",$row['id'],"email","","","","");
-$web= editar_campo("empresa",$row['id'],"web","","","","");
-$direccion= editar_campo("empresa",$row['id'],"direccion","","","","");
-$telefono= editar_campo("empresa",$row['id'],"telefono","","","","");
-$estado= editar_campo("empresa",$row['id'],"estado","","","","");
-
-if($row[id] !=1) {
- $dominio ="";
- $archivo= "/opt/tupalescripts/$row[id]";
- //$archivo= "tmp/$row[id]";
- if(file_exists("$archivo")) {
- $configuracion_dominio="ok";
- $configuracion_dominio=" ";
- }
- else{
- $configuracion_dominio=" ";
- }
- $acciones = " Estado: $estado
-
- $configuracion_dominio";
-
- }
-$resultado .= "$row[id] $razon_social $sigla $email $web $direccion $telefono $acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados 0024
";
- }
-
-$resultado .= "
-
-
Agregar empresa
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa");
-
-
-
-
-
-
-function contar_valores_formulario($campo,$key,$valor){
-$consulta = "SELECT distinct($campo) as cantidad FROM form_datos WHERE $key LIKE '$valor' ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = mysqli_num_rows($sql);
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-function listar_campos_formulario($id_form,$tipo){
- $tipo="$tipo";
-$consulta = "SELECT distinct(id_campo),campo_nombre FROM form_datos,form_campos WHERE form_id = '$id_form' AND form_datos.id_campo = form_campos.id ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($tipo=="nombres"){
-$resultado[] = "$row[campo_nombre]";}
- elseif($tipo=="select"){
- $option .= "
$row[campo_nombre] ";
- }
- else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){
-$resultado = "
-
- Campo
- $option
- ";
-
-}
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-//($formulario,$div,$registros,$pagina,$formato)
-function consultar_formulario($form,$registros,$pagina,$tipo){
- if ($registros == ""){$registros=10;}
- $imagen ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
- $id_empresa = "";
-
-$respuesta = new xajaxResponse('utf-8');
-//if(is_array($form)) {$id_form = $form['id_form'];}else { $id_form = $form;}
-//$id_empresa = $_SESSION['id_empresa'];
-$id_empresa = remplacetas('form_id','id',"$form[id_form]",'id_empresa',"") ;
- if($id_emprea[0] !="") {
- $id_empresa = $id_empresa[0];
- }else{$id_empresa = $_SESSION['id_empresa'];}
-$resaltado = remplacetas('form_parametrizacion','opcion','resaltado','descripcion',"id_empresa = '$id_empresa' ") ;
-//$resaltado = remplacetas('form_parametrizacion','opcion','resaltado','descripcion',"id_empresa = '$id_empresa' ") ;
-if(is_array($form)) {
- $fecha_inicio = $form["inicio"];
- if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
- $fin = $form["fin"];
- if( $fin !="") { $fechas = " AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') AND UNIX_TIMESTAMP('$fin 23:59:59')";}
- $id_form = $form['id_form'];
- @$id_campo = $form['id_campo'];
- $busqueda = $form['busqueda'];
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$form[busqueda]%%'";}else{$busca ='';}
-if($id_campo !=''){$campo ="AND id_campo = '$id_campo'";}else{$campo ='';}
-}else{
-$id_form = $form;
-}
-// AND form_datos.id_empresa = '$id_empresa'
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' $busca $campo $fechas GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql_total=mysqli_query($link,$consulta_principal);
-$total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- if($tipo == "csv" ) {$consulta_limite = "$consulta_principal";}
- else{$consulta_limite = $consulta_principal.$limite;}
- $sql=mysqli_query($link,$consulta_limite);
-
-//$sql=mysqli_query($link,$consulta_principal);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-$fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $campos = listar_campos_formulario($id_form,"select");
- $peticion = "
-
-
-
-
-
-
-
-
- ";
-/////// FILTRO
-
-$boton_borrar = "
-
-
-
- ";
-
- if($formato!='csv'){
- $boton_exportar = "
Exportar ";}
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
-
";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "
$x ";
- }else{
- $link .= "
$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
-
"; }
- }
-
- $paginacion = "";
-
-
-
-
- $encabezado = "
-
";
-
- $total_registros = mysqli_num_rows($sql);
- $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "
$nombre ";
- }
- $listado_nombres = "
Identificador $listado_nombres ";
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-//$cantidad_campos = contar_valores_formulario("id_campo","control","$row[control]");
-
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-foreach($listado_campos as $campo=>$valor){
- $id_campo=$valor;
- //$imagen = buscar_imagen($if_form,$row['control'],"","");
- $contenido = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo ='$valor' ") ;
- $id_dato = remplacetas('form_datos','control',$row['control'],'id',"id_campo ='$valor' ") ;
- $multiple = remplacetas('form_contenido_campos','id_form',$id_form,'multiple',"id_campo ='$valor' ") ;
- //$id_empresa = remplacetas('form_datos','control',$row['control'],'id_empresa',"id_campo ='$valor' ") ;
- $tipo_campo = remplacetas('form_campos','id',$valor,'campo_tipo',"") ;
-
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- if($tipo_campo[0] ==15 AND $contenido[0] != "") {
- @$listado_campos .= "
-
-
-
-
-
-
- ";
- }
- elseif(($tipo_campo[0] ==1 or $tipo_campo[0] ==2 or $tipo_campo[0] ==3 or $tipo_campo[0] ==4 or $tipo_campo[0] ==12 or $tipo_campo[0] ==13 )AND $contenido[0] != "") {
- $editar_contenido = editar_campo("form_datos","$id_dato[0]","contenido","","","","");
- // @$listado_campos .= "
$editar_contenido ";
- if($multiple[0] =='1') { $contenido_multiple = formulario_valor_campo("$id_form","$valor","","$row[control]",'',"$row[timestamp]");
- //$contenido[0] = $contenido_multiple[8];
- $listado_campos.="
$contenido_multiple[11] ";
- }else{$listado_campos.="
$editar_contenido ";}
- }
- elseif($tipo_campo[0]=='10'){
- $valor_actual = relacion_render("$id_form","$row[id_campo]",$contenido[0],'5','relacion_drop');
- @$listado_campos .= "
$valor_actual "; }
- elseif($tipo_campo[0] =="6" ) {
- $contenido_campo =imprimir_buscador_campo($valor,$contenido[0]) ;
- @$listado_campos .= "
$contenido_campo ";
- }
- elseif($tipo_campo[0] =="29" ) {
-
- @$listado_campos .= "
";
- }
- elseif($tipo_campo[0] =="30" or $tipo_campo[0] =="24" ) {
- $json = html_entity_decode($contenido[0]);
-
- $valor_actual = json_render(html_entity_decode($contenido[0]),"html","$row[control]");
- @$listado_campos .= "
$valor_actual ";
- }
- elseif($tipo_campo[0] =="31") {
- //$json = html_entity_decode($contenido[0]);
- $link_url = "$_SESSION[site]milfs/archivos/?archivo=$contenido[0]";
- $valor_actual = "
$contenido[0] ";
- @$listado_campos .= "
$valor_actual ";
- }
- //
- // if($tipo_campo[0] =="29" ) {$contenido[0] ="
"; }//$contenido="
";
- else {
-
- if($multiple[0] =='1') { $contenido_multiple = formulario_valor_campo("$id_form","$valor","","$row[control]",'',"$row[timestamp]"); $contenido[0] = $contenido_multiple[8];}else{$contenido[0]=$contenido[0];}
-@$listado_campos .= "
$contenido[0] ";
-}
-
- }
- if (!is_array($listado_campos)){$listado_campos="
$listado_campos ";}else {$listado_campos=$listado_campos;}
-
- $areas = resumen_identificador("$row[control]",'','','boton');
- $acceso = generar_acceso($row[control],"","");
- if($resaltado[0] =="$row[control]") {$iresaltar ="
Resaltado "; $alert="info";}
- else {
- $iresaltar = "
Resaltar
-
";
- $alert="";
-
- }
-
- $menu ="
-
-
-
-
-
- ";
-$lineas .= "
$menu$row[control] $listado_campos ";
-
- }
-
-$tabla ="
-
- $listado_nombres
-
- $lineas
-
-
";
-$resultado = "
-$encabezado
-
-
-
-$tabla
-
-
-";
- }
-else {
-$resultado ="
No hay resultados 0001 ";
-$respuesta->addAlert("No hay resultados 0025 ");
-return $respuesta;
-}
-if($tipo =="csv") {
-$html = str_get_html($tabla);
- // header('Content-type: application/ms-excel');
- // header('Content-Disposition: attachment; filename=sample.csv');
- $nombre_archivo ="tmp/Prueba_Formulario_".mktime()."_".$_SESSION['id'].".csv";
- //$fp = fopen("php://output", "w");
- $fp=fopen($nombre_archivo , "w");
- foreach($html->find('tr') as $element)
- {
- $td = array();
- foreach( $element->find('th') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- if (!empty($td)) {
- fputcsv($fp, $td);
- }
-
- $td = array();
- foreach( $element->find('td') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- fputcsv($fp, $td);
- }
-
- fclose($fp);
-$boton_descarga ="
Descargar ";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "
$datos
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- if($tipo =="modal") {
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-}
- return $respuesta;
-
-}
-$xajax->registerFunction("consultar_formulario");
-
-
-function datos_array($identificador,$id_form,$timestamp) {
-if($id_form !="") { $w= "AND form_id ='$id_form' "; }else { $w= " "; }
-$array = array();
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if($timestamp != "") {
- $consulta = "SELECT * FROM form_datos
- WHERE control = '$identificador' AND form_id != '$id_form' GROUP BY form_id , timestamp
- ";
- // $array["consulta"] = "$consulta";
- // return $timestam;
- }else{
-$consulta ="SELECT * FROM form_datos WHERE control = '$identificador' $w
-GROUP BY timestamp,id_campo ORDER BY timestamp DESC ";
-
-}
-$sql = mysqli_query($link,$consulta) or die("Error al ejecutar consulta 02 ");
-
-// $id_form = remplacetas('form_datos','control',"$identificador",'form_id'," form_id= '$id_form'") ;
-$campo_titulo = remplacetas('form_parametrizacion','campo',$id_form,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-
-$array["identificador"] = "$identificador";
-$array["id_aplicacion"] = "$id_form";
-//$array["consulta_form"] = "$id_form[2]";
-//$array["consulta"] = "$consulta";
-$con_respuesta = remplacetas_noid("form_id","formulario_respuesta","$id_form","id","","");
-//$array["responde"] = json_decode("$con_respuesta[3]");
-
-$array["responde"] = $con_respuesta[0];
-while($row = mysqli_fetch_array( $sql ))
- {
- $id_campo = remplacetas('form_datos','id',$row["id"],'id_campo',"") ;
- $campo_tipo = remplacetas("form_campos","id",$row["id_campo"],"campo_tipo","");
- $multiple = remplacetas('form_contenido_campos','id_form',$row['form_id'],'multiple',"id_campo ='$id_campo[0]' ") ;
- if($multiple[0] =='1') {
- // $array['multiple'] ="$contenido[0]";
- $contenido_multiple = formulario_valor_campo("$row[form_id]","$id_campo[0]","","$identificador",'',"$row[timestamp]");
- $contenido[0] = $contenido_multiple[9];}
- else{ $contenido = remplacetas_orden('form_datos','id_campo',$row["id_campo"],'contenido'," control = '$identificador'"," ORDER BY timestamp DESC ") ;}
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- // $valor_actual = imprimir_buscador_campo("$id_campo","$row[contenido]",'buscador_drop');
- if($campo_tipo[0]=='10'){
- $valor_actual = relacion_render($row["form_id"],$row["id_campo"],$contenido[0],'5','relacion_drop');
- $contenido[0] = "$valor_actual";}
- if($campo_tipo[0]=='6'){
- // $valor_actual = relacion_render($row["form_id"],$row["id_campo"],$contenido[0],'5','relacion_drop');
- $valor_actual = imprimir_buscador_campo($row["form_id"],"$contenido[0]",'buscador_drop');
- $contenido[0] = "$valor_actual";}
- if($campo_tipo[0] =='31') {
- $link_url = "$_SESSION[site]milfs/archivos/?archivo=$contenido[0]";
- $contenido[0] = $link_url;
-
- }
- // if($campo_tipo[0] =='32') {
- if($nombre_campo[0] =='Inicio') {
- $array['start'] = "$contenido[0]";
- } else {
- if($campo_tipo[0] =='32' OR $campo_tipo[0] =='11') {
- $array['start'] = "$contenido[0]";
- }
- // $array['start'] = "$contenido[0]";
- }
- if($nombre_campo[0] =='Fin') {
- $array['end'] = "$contenido[0]";
- }
-
- /* }
- elseif($campo_tipo[0] =='11') {
- // $array['start'] = "$contenido[0]";
- if($nombre_campo[0] =='Fin') {
- $array['end'] = "$contenido[0]";
- }
- }else{}
- */
-
- //$array[id_campo] = $row[id_campo];
- if($id_campo[0] == $campo_titulo[0] or $nombre_campo[0] == 'Titulo' ) {
- $array['title'] = strip_tags(html_entity_decode("$contenido[0]"));
-}
-//// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$row[form_id]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = @$privado[1];
-/// PRIVACIDAD
-if($privado !='1') {
- $array[$nombre_campo[0]] = html_entity_decode("$contenido[0]");
- //$array['consulta'] = "$contenido[2]";
- $uri = "$_SESSION[site]I$identificador";
- $array['url'] = "$uri";
- $array['timestamp'] = "$row[timestamp]";
- $array['proceso'] = "$row[proceso]";
- $array['id'] = "$row[id]";
- $array['orden'] = "$row[orden]";
- // $array['multiple']= $multiple[0];
- //$array[] = $row;
- if($con_respuesta[0] !="") {
-//$contenido_respuestas = datos_array("$identificador","$row[form_id]","$row[timestamp]");
-$contenido_respuestas = array_respuestas("$row[form_id]",$identificador,"array");//formulario_imprimir("$row[form_id]","$identificador","array",""); ///array_respuestas("$row[form_id]","$row[control]","json");
-$array["responder"]= $contenido_respuestas;//"$contenido_respuestas $row[control] //$row[timestamp] // $row[form_id]";
-}
-
-}
- }
- return $array;
-}
-
-function array_respuestas($id,$identificador,$plantilla) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $formulario_respuesta = formulario_respuesta("$id","$identificador");
- $consulta = "SELECT form_id , timestamp FROM form_datos
- WHERE control = '$identificador' AND form_id != '$id' GROUP BY form_id , timestamp
- ";
-$array = array();
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-
- $resultado ="";
- while( $row = mysqli_fetch_array( $sql ) ) {
- $respuesta[] = mostrar_identificador("$identificador","$row[form_id]","array","array","$row[timestamp]");
- $fecha = date($format, $row['timestamp']);
-
-
-
-}$array[] = $respuesta;
-
-}else{$resultado ="";}
-//$resultado = "$resultado $formulario_respuesta";
-//return $resultado;
-
-return $array;
-}
-
-
-function parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item){
- if(isset($_SESSION['id_empresa']) ){$id_empresa= $_SESSION['id_empresa']; }else{ $id_empresa="";
- }
- $respuesta = new xajaxResponse('utf-8');
-if($tabla =="") {
-$resultado = "
-
-";
-return $resultado;
-}
- $link=Conectarse();
-mysqli_query($link,"SET NAMES 'utf8mb4'");
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = '".mysqli_real_escape_string($link,$tabla)."' AND campo ='".mysqli_real_escape_string($link,$campo)."' AND opcion ='".mysqli_real_escape_string($link,$opcion)."' AND id_empresa = '$id_empresa' AND item = '".mysqli_real_escape_string($link,$item)."' LIMIT 1 ";
-$sql=mysqli_query($link,$limpiar);
-$consulta="INSERT INTO form_parametrizacion set tabla = '".mysqli_real_escape_string($link,$tabla)."' , campo ='".mysqli_real_escape_string($link,$campo)."', opcion ='".mysqli_real_escape_string($link,$opcion)."', descripcion ='".mysqli_real_escape_string($link,$descripcion)."', item ='".mysqli_real_escape_string($link,$item)."', visible='1' , id_empresa = '$id_empresa'";
-
-
-$sql=mysqli_query($link,$consulta);
-if($sql) {
- if($descripcion =="") {
- // $respuesta->addAlert("ATENCION: Se grabó un campo vacío, esto no es necesariamente un error pero indica que el valor de parametrización se sobreescribió como vacío. ");
- }
- $id = mysqli_insert_id($link);
- if($script != "") {
- $respuesta->addScript("$script");
- return $respuesta;
-
- }
- if($div != "") {
- $resultado = " $descripcion ";
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }else {
- return $id;
- }
- }else {
-
- if($div != "") {
- $resultado = " $descripcion ";
- $respuesta->addAssign("$div","innerHTML",$consulta);
- return $respuesta;
- }else {
- return $consulta;
- }
-//$respuesta->addAlert("$consulta");
-//return $consulta;
-}
-///$respuesta->addAssign("$div","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("parametrizacion_linea");
-
-
-
-
-function email_contenido($id,$control,$id_campo,$email_envio){
-
-if($email_envio =="") {
- $email = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$id' AND id_campo ='$id_campo' ") ;
- $formulario =
-
- "
-
";
-return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
-
- $validar = validar_email($email_envio);
- if($validar == '0') {
- $respuesta->addAssign("input_email_envio","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('email_envio').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email = remplacetas("empresa","id","1","email","");
- $email = remplacetas("empresa","id","$id_empresa","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
-
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $razon_social[0] <$reply[0]>\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $propietario[0]" . "\r\n";
-$impresion = formulario_imprimir("$id","$control","email");
-
-$impresion ="
-$encabezado
-
$impresion
";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-
-$impresion
-
-Se ha completado el formulario
$nombre_formulario[0]
-
Puede revisar los datos en $_SESSION[site]I$control
-
Saludos de MILFS
-";
- if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="
Se envió un email a $email_envio "; }else {$exito .="error enviando correo";}
-
-$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("email_contenido");
-
-
-function mapa_ficha($id) {
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $descripcion_limpia = strip_tags($descripcion[0]);
- $nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
- $id_empresa = $id_empresa[0];
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $imagen = "
";
- $datos ="
$nombre[0] $descripcion[0] ";
- $empresa = "
$razon_social[0] |
$web[0] | $direccion[0] | $email[0]
";
-
- //$prueba = json_decode($prueba);
-
- $resultado ="
-
-
-
-
- $imagen
-
-
-
$nombre[0]
- $descripcion_limpia[0]
-
-
-
-
$razon_social[0]
-
MILFS
-
-
-
- ";
- return $resultado;
-}
-
-function formulario_parametrizacion($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($accion =='categorias') {
-
- }
- elseif($accion =='grabar'){
-
- }
- else {
- $listado ="
-
-
-
-
-
-
Parametrización
-
Parametrización del formulario $nombre[0]. Por favor seleccione una opción
-
-
-
-
- ";
- $respuesta->addAssign($div,"innerHTML",$listado);
- return $respuesta;
- }
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
Filtro
-
- Todos ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= " ";
- }
-else{$resultado = 'nada';}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_parametrizacion");
-
-
-
-function lista_categorias($perfil,$categoria,$tipo) {
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
- $categoria_campo = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- if($categoria_campo >0 ) {
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$categoria_campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
-
-";
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $icono = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$row[md5_contenido]'") ;
- if($icono[0] =='') {
- $icon = "$_SESSION[site]milfs/images/iconos/pin.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- $contenido= html_entity_decode($row[contenido]);
-
-$resultadox .= "
-
-
-
-
-
$contenido
-
";
-$resultado .=" $contenido ";
- }
-$resultado .= " ";
- }
-else{$resultado = '';}
-}
-return $resultado;
-}
-
-function parametrizacion_categoria($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-$categorias = lista_categorias($perfil,$categoria,$tipo);
-if($accion =='categorias') {
- $resultado = "
-
-
La categorización se usa para filtrar los datos de un formulario en categorias que pueden ser usadas por ejemplo para diferenciar los datos en un mapa.
- Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza
- $categorias
-
-
-
-
- Icono para la categoría
-
-
- URL
-
-
-
-
- Grabar
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- $respuesta -> addScript("xajax_formulario_campos_select('$perfil','parametrizacion','filtro')");
- return $respuesta;
- }
- elseif($accion =='grabar'){
- if($form[tipo] =='categoria') {
- $url_icon = "$form[icon]";
- $es_imagen = es_imagen("$url_icon");
- $altura = GetImageSize($url_icon);
- $altura= $altura[1];
- if($form[id_campo] =='') { $error = "Seleccione un campo";}
- elseif($form[campo_filtro] =='') { $error = "Seleccione Filtro";}
- elseif(!$es_imagen ) { $error = " [ $url_icon ] no es una imagen válida para el ícono";}
- elseif($altura > 500 ) { $error = " El ícono no debe tener mas de 300 pixeles de alto.";}
- elseif($form[icon] =='') {
- $error = "Escriba la dirección del ícono";
- }
- else {$error='';}
- if( $error !='') {
- $respuesta -> addAlert("$error $revisar_url ");
- return $respuesta;
- }else{
- $categoria_icono[tabla] = "form_id";
- $categoria_icono[campo] = "$form[perfil]";
- $categoria_icono[opcion] = "$form[tipo]:icon:$form[campo_filtro]";
- $categoria_icono[descripcion] = "$url_icon";
- $categoria_icono[visible] = "1";
- $categoria_icono[accion] = "grabar";
- $grabar_icono = parametrizacion($categoria_icono);
-
- $categoria_campo[tabla] = "form_id";
- $categoria_campo[campo] = "$form[perfil]";
- $categoria_campo[opcion] = "$form[tipo]:campo";
- $categoria_campo[descripcion] = "$form[id_campo]";
- $categoria_campo[visible] = "1";
- $categoria_campo[accion] = "grabar";
- $grabar_campo = parametrizacion($categoria_campo);
-
- $categoria_filtro[tabla] = "form_id";
- $categoria_filtro[campo] = "$form[perfil]";
- $categoria_filtro[opcion] = "$form[tipo]:filtro:$form[id_campo]";
- $categoria_filtro[descripcion] = "$form[campo_filtro]";
- $categoria_filtro[visible] = "1";
- $categoria_filtro[accion] = "grabar";
- $grabar_filtro = parametrizacion($categoria_filtro);
-
-
- $resultado ="
$form[campo_filtro] $form[id_campo] ($altura ) [$grabar_icono]";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-
- }/// fin de parametrizacion categorias
- }
-}
-$xajax->registerFunction("parametrizacion_categoria");
-
-
-function parametrizacion_plantilla_campos($formulario){
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-$identificador_logo="
";
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen ="
"; $identificador="
";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-
-$listado .= "
$imagen $row[campo_nombre] [$row[id_campo]]
-
-
-";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-
-
-
-
-
-
-
- $listado
- Fecha
- Logo
- Proyecto
- Slogan
- Web
-
-
-";
-}
-return $resultado;
-}
-
-
-function parametrizacion_plantilla_campos_inteligentes($formulario){
-$consulta ="SELECT distinct(`id_campo`) , campo_nombre FROM `form_datos`, form_campos WHERE form_datos.id_campo = form_campos.id AND `form_id` ='$formulario' ORDER BY campo_nombre ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen ="
"; $identificador="
";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "
$imagen $row[campo_nombre] [$row[id_campo]] ";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$identificador_logo="
";
-
-$resultado = "
-
-
-
-
-
-
-
-
- $listado
- Fecha
- Logo
-
-
-";
-}
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("div_campos","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla_campos_inteligentes");
-
-
-function parametrizacion_plantilla($formulario,$div,$valores) {
- $respuesta = new xajaxResponse('utf-8');
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$link=Conectarse();
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-mysqli_set_charset($link, "utf8");
-if($valores =="boton") {
-$consulta ="SELECT * FROM form_parametrizacion WHERE campo = '$formulario' AND `opcion` REGEXP '^plantilla:' ORDER BY opcion";
-
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campos_opcion = explode(":",$row[opcion]);
- $plantilla_nombre = $campos_opcion[1];
-$listado .= "
$row[opcion] ";
-$li .= "
- $plantilla_nombre
- Editar
- Editar
-
- ";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-
-
-
-";
-$lista ="
-
-
Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas HTML5 , CSS3 y clases de Bootstrap
-
-
- Nombre
- Editar
- Ver
-
-$li
-
-
Nueva plantilla
-";
- $respuesta->addAssign("$div","innerHTML","$lista");
- return $respuesta;
-
-}
-else {
-
-$resultado ="
-
-
-
Aún no se han definido plantillas para este formulario
- Crear una plantilla
-
-
-";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-
-elseif($valores =="formulario" OR is_numeric($valores)) {
- $campos = parametrizacion_plantilla_campos("$formulario");
- $descripcion = remplacetas('form_parametrizacion','id',$valores,'descripcion',"") ;
- $opcion = remplacetas('form_parametrizacion','id',$valores,'opcion',"") ;
- $campos_opcion = explode(":",$opcion[0]);
- $plantilla_nombre = $campos_opcion[1];
- include("includes/bootsrap_class_list.php");
-$resultado ="
-
-
-
-
-
-
-
- A
A
')); \">
-
-
A
-
A
-
div
-
H1
-
H2
-
H3
-
-
<li>
-
-
MB
-
-
-
-
-
-
Editor HTML
-
$descripcion[0]
-
-
-
-
Campos inteligentes
- $campos
-
-
-
-
-
-";
-
-}
-
-elseif(is_array($valores)) {
- $texto=str_replace('"',"'",$valores[text_contenedor]);
-$plantilla = htmlentities($texto);
-if($valores[nombre_plantilla] == "") {
- $respuesta->addAlert("No ha especificado un nombre para la plantilla");
- $respuesta->addAssign("input_nombre_plantilla","className","input-group has-error");
- return $respuesta;
- }
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='plantilla:$valores[nombre_plantilla]' LIMIT 1 ";
-$sql=mysqli_query($link,$limpiar);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='plantilla:$valores[nombre_plantilla]', descripcion =\"$plantilla\", visible='1' ";
-$sql=mysqli_query($link,$consulta);
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-$datos = contenido_mostrar("$formulario","$ultimo[1]",'',"$valores[nombre_plantilla]");
-$preview = "
$valores[nombre_plantilla] $datos ";
- $div_contenido = "
$preview
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- $respuesta->addAssign("titulo_modal","innerHTML","$resultado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- return $respuesta;
-
-}
-else{
-$resultado ="";
-}
-$resultado .= "";
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla");
-
-
-function parametrizacion_mapa($formulario,$div,$valores) {
-$otro_json = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'json'") ;;
-
-$respuesta = new xajaxResponse('utf-8');
-if($valores =="") {
-
- $cadena= array();
- $ids = json_decode($otro_json[0]);
- foreach ($ids as $clave => $valor) {
- if($valor !=""){
-
- $li .="$valor[0] $valor[1]\n";
-
-
- }
-
-}
-
-$resultado ="
-
Defina en cada linea un geojson adicional que se mostrará en el mapa $formulario
-
Ejemplo: [Nombre de la capa] url.geojson
-
-
Grabar
-
";
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}else{
- //$ids=array();
- $cadena= array();
- $ids = explode(PHP_EOL, $valores);
- foreach ($ids as $clave => $valor) {
- if($valor !=""){
- $li="";
- $cadena[] = explode(" ", $valor,2);
- foreach ($cadena as $c => $v){
- $li .="
$v[1]: $v[0] ";
- }
-
- }
-
-}
- $resultado_visible="
";
-// $ids['formulario']="$formulario";
-$resultado =json_encode($cadena);
-//parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item)
-$insertar = parametrizacion_linea('form_id',"$formulario","json","$resultado",'','','');
-$respuesta->addAssign("$div","innerHTML","$resultado_visible");
-return $respuesta;
-}
-
-
-}
-$xajax->registerFunction("parametrizacion_mapa");
-
-
-function parametrizacion_titulo($formulario,$div,$valores) {
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_descripcion = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'descripcion'") ;
-$campo_orden = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'orden'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$campo_orden_nombre = remplacetas('form_campos','id',$campo_orden[0],'campo_nombre',"") ;
-$campo_descripcion_nombre = remplacetas('form_campos','id',$campo_descripcion[0],'campo_nombre',"") ;
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if($valores =="") {
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-
-$sql=mysqli_query($link,$consulta);
-
-
-
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[campo_nombre] [$row[id_campo]] ";
-}
-
-//($tabla,$campo,$opcion,$descripcion,$div)
-
-$resultado = "
-
Campos especiales
-
- Campo de Título actual $campo_titulo_nombre[0] [$campo_titulo[0]]
- Campo de Descripción actual $campo_descripcion_nombre[0] [$campo_descripcion[0]] (Este campo debe ser del tipo nota)
- Campo de Orden actual $campo_orden_nombre[0] [$campo_orden[0]] (Este campo debe ser del tipo numérico)
-
-
-
-
-
-
-
-
-";
-}
-}else {
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='titulo' LIMIT 1 ";
-$sql=mysqli_query($link,$limpiar);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='titulo', descripcion ='$valores', visible='1' ";
-$sql=mysqli_query($link,$consulta);
-if($sql){
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
- $campo_descripcion_nombre = remplacetas('form_campos','id',$campo_descripcion[0],'campo_nombre',"") ;
-$resultado ="
addAssign("$div","innerHTML","$resultado");
-}else { return $resultado;}
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_titulo");
-
-
-function mostrar_modal($form,$control,$plantilla){
-$respuesta = new xajaxResponse('utf-8');
-if( $control == "") {
- $datos = formulario_areas('',$form,"",'','','','');
-}else {
-$datos = contenido_mostrar("$form","$control",'',"$plantilla");
-}
-$div ="contenido_de_modal";
-
-$resultado = "
-
- $datos
-
-
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_modal");
-
-function portal_filtro_cadena($formulario,$id_campo,$control,$div,$plantilla){
-$cadena = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$formulario' AND id_campo ='$id_campo' ") ;
-$consulta ="SELECT * FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' AND contenido = '$cadena[0]'
- GROUP BY control ORDER BY contenido";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-
- $datos = contenido_mostrar("$formulario","$row[control]",'',"$plantilla");
- if($plantilla == "") {
-$listado .= "
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-
- $listado
-
-";
-}else{
-$resultado ="";
-}
-
-if ($div ==""){$div="mostrar_contenido";}
-else {$div = "$div";}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado ");
- return $respuesta;
-}
-$xajax->registerFunction("portal_filtro_cadena");
-
-
-
-function portal_filtro_campos($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-
-$resultado = "
-
- $formulario_nombre[0] / $campo_nombre[0]
- {json}
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_filtro_campos_select($formulario,$id_campo,$div,$plantilla){
-$listado="";
-if($id_campo =="") {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- if($id_campo =="") { $resultado = ""; return $resultado;}
- }
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT *
- FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario'
- AND form_campos.id = form_datos.id_campo
- AND form_datos.id_campo = '$id_campo'
- GROUP BY contenido
- ORDER BY contenido";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $campo_nombre[0]
- $listado
-
-";
-}
-$resultado ="
-
- Filtro
- $resultado
-
";
-return $resultado;
-}
-
-
-
-function portal_listado_campos($formulario){
-
-
-
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_publico = remplacetas('form_id','id',"$formulario",'publico',"") ;
- $empresa = remplacetas('form_id','id',"$formulario",'id_empresa',"") ;
-if($formulario_publico[0] !="1" AND ($id_empresa[0] == $_SESSION['id_empresa']) ) {
- $resultado ="
Acceso restringidoEsta aplicación contiene datos privados
- ";
-
- return $resultado;}
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_contenido_campos.orden";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre','','');
- //href='?formulario=$formulario&campo=$row[id_campo]'
- //
{json}
- //// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$formulario",'opcion'," tabla='form_id' AND descripcion ='$row[id_campo]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
-/// PRIVACIDAD
- if($privado !='1') {
-//
$row[id_campo] x $row[campo_nombre] x $row[campo_descripcion] x $estadisticasx x
- $estadisticas = formulario_estadistica("$formulario","$row[id_campo]","contenido","barras");
-$listado .= "
-
-
-
- Id: $row[id_campo]
- Nombre: $row[campo_nombre]
- Tipo: $tipo_campo[0]
- Descripción: $row[campo_descripcion]
-
-
- $row[campo_descripcion] $estadisticas
-
-";
-}else {$listado.="";}
-}
-$resultado = "
-
-
-
-
-
-";
-}
-return $resultado;
-}
-
-
-function portal_listado_formularios($id_proyecto){
- if($id_proyecto=="") {
- return;
- }
-$listado="";
-$consulta ="SELECT * FROM form_id WHERE publico = '1' AND id_empresa='$id_proyecto'";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $nombre= strip_tags($row['nombre']);
- $descripcion= strip_tags($row['descripcion']);
-$listado .= "
$nombre ";
-}
-$resultado = "
-
-
-
-";
-}
-return $resultado;
-}
-
-
-
-function insertar_linea($tabla,$key,$campo,$valor,$control,$orden,$div,$proceso){
- $respuesta = new xajaxResponse('utf-8');
- //$key = limpiar_caracteres($key);
- //$valor = limpiar_caracteres($valor);
-if($_SESSION['id_empresa'] =="") {
- $empresa = remplacetas('form_id','id',"$key",'id_empresa','') ;
- $empresa = $empresa[0];
- }else {$empresa=$_SESSION['id_empresa'];}
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
-if($tabla =="form_datos") {
-
-$consulta = "INSERT INTO form_datos ( proceso,orden, timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( '$proceso','$orden',UNIX_TIMESTAMP(),'$_SESSION[id]','$empresa','$key',$ip ,'$control', '$campo' , '$valor')
- ";
-
-}
-$link=Conectarse();
-mysqli_real_escape_string($link,$consulta);
-
-
- mysqli_set_charset($link, "utf8");
- if($valor !="") {
- $sql=mysqli_query($link,$consulta);
-}
-if($sql) {
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
- }
-else {
-return " ";
-}
-}else {
-return "No se inserto ";;
-}
-}
-$xajax->registerFunction("insertar_linea");
-
-
-function select_combo($id,$tabla,$campo_valor,$campo_descripcion,$tipo){
-
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$Campo_descripcion = ucwords($campo_descripcion);
-$Campo_valor = ucwords($campo_valor);
-$nombre=$tabla."_".$campo_valor;
-$div=$nombre."_hijo";
-$combo = $id."_".$tabla;
-if($tipo!=''){
-$respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE $campo_valor = '$tipo' AND id_empresa = '$id_empresa'";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado .= "
$Campo_descripcion
-
";
-$resultado .= " Seleccione $Campo_descripcion ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[$campo_valor] $row[$campo_descripcion] ";
- }
-$resultado .= " ";
- }
-
-
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;}
-ELSE{ /// si no especifica $tipo
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE id_empresa = '$id_empresa' GROUP BY $campo_valor ";
-$sql=mysqli_query($link,$consulta);
-///$Documento=mysqli_result($grupo,0,"documento_numero");
-$resultado = "
$Campo_valor
-
";
- $resultado .= " Seleccione $Campo_valor ";
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "$row[$campo_valor] ";
- }
- }
-$resultado .= "
";
- }/// FIN de $tipo no especifico
-
-return $resultado;
-}
-$xajax->registerFunction("select_combo");
-
-
-
-function crear_session ($form,$control) {
-
-$consulta = " SELECT distinct(id_campo),contenido FROM form_datos WHERE control = '$control' AND form_id = '$form' order by timestamp DESC ";
-$link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql = mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!=0){
- $resultado ="
";
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $id_form = $row[form_id];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre = strtolower( str_replace(' ','_',$campo_nombre[0]));
- $_SESSION[$nombre] = $row[contenido];
- $resultado .= "$_SESSION[$nombre] ";
- }
- $resultado .= " ";
- }
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla,$tipo,$timestamp){
- //$respuesta = mostrar_identificador("$identificador","$row[form_id]","respuesta","$plantilla","$row[timestamp]");
- $datos_form="";
- $edicion="";
- $resultado="";
- $tipo="$tipo";
- $visitas="";
- $usuarios="";
- if($form != "") {$id_form = "$form";
-
- $datos_form ="
-
$nombre[0]
-
$descripcion[0]
- ";
-
- }else {$id_form ="";}
-
- $impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp)."";
- if($impresion !="") {
- //$visitas= contar_visitas($control,'identificador') ;
- //$visitas= "
$visitas";
- //$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- //$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
- $interaccion = interaccion_identificador("$control",'','simple','','');
- if($plantilla == "svg") { return $impresion;}
- if($tipo=="") {
- $resultado = "
-
-
-
- $visitas
- $datos_form
-
-
- $impresion
-
-
-
-
- $interaccion
- $edicion
-
- "; }else {
-$resultado = $impresion;
- }
- }else{
-$resultado ="
No hay resultados 0002 ";
- }
-
-return $resultado ;
-}
-
-function buscar_campo_nombre($form_id,$nombre) {
-
-$consulta ="SELECT form_campos.id FROM `form_campos` , form_contenido_campos WHERE `campo_nombre` = '$nombre' AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='$form_id' LIMIT 1";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql = mysqli_query($link,$consulta);
- $id_campo=mysqli_result($sql,0,"id");
-return $id_campo;
-}
-
-function conversorSegundosHoras($tiempo_en_segundos) {
- $horas = floor($tiempo_en_segundos / 3600);
- $minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
- $segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
-
- return $horas . ':' . $minutos . ":" . $segundos;
-}
-
-function mensajes($tipo,$campos_form,$datos,$control) {
- $campo_remitente = $campos_form['remitente'];
- $campo_destinatario = $campos_form['destinatario'];
- $campo_asunto = $campos_form['asunto'];
- $campo_mensaje = $campos_form['mensaje'];
- $form_id = $campos_form['formulario_id'];
- $form_usuarios = $campos_form['formulario_usuarios'];
- $campo_usuarios = $campos_form['campo_usuario'];
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='formulario') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
-
-//$campos = formulario_areas('',$form_id,'campos');
-$control_original = $control;
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
- $campos = formulario_areas('',$form_id,'campos','','','','');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
- $respuesta->addAssign("div_mensaje_$control_original","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo =='responder') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
- $remitente = buscar_campo_nombre("$form_id","Para");
- $destinatario = buscar_campo_nombre("$form_id","De");
- $mensaje = buscar_campo_nombre("$form_id","Mensaje");
- $asunto = buscar_campo_nombre("$form_id","Asunto");
-
- $asunto_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$asunto' AND control='$control'") ;
- $mensaje_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$mensaje' AND control='$control'") ;
- $remitente_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$remitente' AND control='$control'") ;
- $destinatario_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$destinatario' AND control='$control'") ;
-
-$formulario ="
-
-
-
-
-
-
-
-
- Asunto
-
-
-
- Mensaje
- $mensaje_value[0]
-
- ";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
-";
- $respuesta->addAssign("div_mensaje_$control","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo=="recuperar") {
-
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
-
- $consulta ="SELECT *, FROM_UNIXTIME(timestamp) as fecha , DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d') as dia, DATE_FORMAT(FROM_UNIXTIME(timestamp),'%H:%i') as hora FROM form_datos WHERE form_id ='$form_id' AND id_campo = '$campo_destinatario' AND contenido ='$_SESSION[usuario_milfs]' GROUP BY control, timestamp order by timestamp DESC ";
-
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
- $mensajes = mysqli_query($link,$consulta);
-// $destinatario ="$campo_destinatario"."[0]";
-// $para = buscador_campo("$campo_destinatario","$form_id","","$destinatario","","");
- $campos = formulario_areas('',$form_id,'campos','','','','');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
-
-
-
-$lista ="
-
-
-
-";
-while( $row = mysqli_fetch_array( $mensajes ) ) {
- $asunto = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_asunto' AND control='$row[control]'") ;
- $mensaje = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_mensaje' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_remitente' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_usuarios",'contenido'," id_campo = '$campo_usuarios' AND control='$remitente[0]'") ;
- if($remitente[0] =='') {$remitente[0]="
Sistema";}
- $hoy=date('Y-m-d');
- $control = $row[control];
- if($hoy == $row[dia]){$momento = $row[hora];}else {$momento=$row[dia];}
-//function contenido_mostrar($id,$control,$div,$plantilla)
-//$contenido = contenido_mostrar("$form_id","$control","",'');
- $lista .="
-
- ";
-}
- // $respuesta->addAssign("div_mensaje","innerHTML",$lista);
- $lista .=" ";
- return $lista;
-
-}
-
-$resultado ="hola";
-
- $respuesta->addAssign("div_mensaje","innerHTML",$resultado);
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("mensajes");
-
-function revisar_campo_unico($id,$campo,$id_form,$valor) {
- $respuesta = new xajaxResponse('utf-8');
- $div= "div_$id";
- $existe = remplacetas('form_datos','form_id',"$id_form",'control'," BINARY contenido = '$valor' AND id_campo = '$campo'") ;
- if($existe[0] != "") {
- $texto ="El valor ya existe";
-$respuesta->addAssign("$div","className","text-danger");
-$respuesta->addAssign("input_$id","className","form-group has-error");
- }else{
- $texto ="";
-$respuesta->addAssign("$div","className","text-success");
-$respuesta->addAssign("input_$id","className","form-group has-success");
- }
-
- $respuesta->addAssign("$div","innerHTML",$texto);
- return $respuesta;
-}
-$xajax->registerFunction("revisar_campo_unico");
-
-
-function verificacion_email($control_usuario,$dato,$accion){
-require ("milfs/includes/parametrizacion.php");
-$div="div_aviso_validacion";
-$respuesta = new xajaxResponse('utf-8');
- $form_id =$login_formulario;
- $campo_usuario= $login_campo_usuario;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$control_usuario' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
-
- $validado = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$login_campo_validado' ") ;
- $rrn = rand(123,999);
- $rrncode = MD5("$rrn");
-
-if($accion=="enviar") {
-
- $id_empresa="1";
- $email_empresa = remplacetas("empresa","id","$id_empresa","email","");
- $administrador = remplacetas("empresa","id","1","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] < $email_empresa[0] >\r\n";
-$headers .= "Reply-To: $email_empresa[0]\r\n";
-$headers .= "Return-path: $email_empresa[0]\r\n";
-
-
-$cuerpo_email ="
-
-
-
Código de validación
-$rrn
-Por favor escribe este código en el campo correspondiente
-
-
- ";
- $asunto= "Recibiste un mensaje en [$portal_sigla] ";
- $titulo_email ="Necesitamos validar tu email $email[0]";
- $campo_imagen = buscar_campo_tipo("$id_form","15");
- $imagen_email = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$nuevo_identificador' ") ;
- $imagen_email = "https://$web[0]/milfs/images/secure/?file=600/$imagen_email[0]";
- $nombre_email = $razon_social[0];
-
-
-
- $plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:email_general",'descripcion',"id_empresa = '1'") ;
- $consulta_plantilla ="$plantilla[2]";
- $plantilla = html_entity_decode ( $plantilla[0] );
- eval("\$plantilla = \"$plantilla \";");
- $plantilla .="";
- $asunto= "Recibiste un mensaje en [$portal_sigla] ";
-
- if(mail("$dato","$titulo_email","$plantilla","$headers")){
- $exito .="
Tienes un email ! $headers $dato ";
-$resultado="
-
-";
- }
- else {$resultado .="
Error enviando correo";}
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
-
-}
-elseif($accion=="confirmar") {
-
- $rnncode = $dato['rrn'];
- $email = $dato['enviar_email'];
- $codigo_confirmacion= md5($dato['codigo_confirmacion']);
- $validado= md5($email);
- //$resultado ="$rnncode // $codigo_confirmacion";
- if($rnncode == $codigo_confirmacion) {
- $insertar_email = insertar_linea("form_datos","$login_formulario","$login_campo_email","$email",$usuario[0],"","","");
- $insertar_email = insertar_linea("form_datos","$login_formulario","$login_campo_validado","$validado",$usuario[0],"","","");
-
- $resultado="";
- $respuesta->addAssign("contenedor_login_validacion","innerHTML",$resultado);
- return $respuesta;
- }
- else{
- $resultado="
El codigo no es valido, inténtalo de nuevo
";
- }
-
-$respuesta->addAssign("intento_$div","innerHTML",$resultado);
-return $respuesta;
-
-}
-else {}
-
- if($validado[0] != md5("$email[0]")) {
- $verificar_email = "
-
-
-
x
-
Vamos a validar tu email
-
Enviaremos un código de verificación a para validarlo.
-
-
-
-
-
-
-
-
-
- ";
- if($accion=="verificar") {
- $verificar_email = "";
- }
- }
- else{
- if($accion=="verificar") {
- $verificar_email = "$usuario[0]";
- }
- else {
- $verificar_email="";
- }
-
- //$verificar_email= "Ok";
- }
-
-return $verificar_email;
-}
-
-$xajax->registerFunction("verificacion_email");
-
-
-function milfs_session($form_id,$campo_usuario,$campo_password,$tipo,$datos,$div){
- $accion="";
- $datos = mysql_seguridad($datos);
- $respuesta = new xajaxResponse('utf-8');
- require ("milfs/includes/parametrizacion.php");
-
-if($tipo =="") {
- if(isset($_SESSION['usuario_milfs'])) {
- //$control = remplacetas('form_datos','control',"$_SESSION[control_usuario_milfs]",'contenido'," id_campo = '$campo_password' ") ;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$_SESSION[nombre_usuario_milfs]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $validado = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$login_campo_validado' ") ;
- /*if($validado[0] != md5("$email[0]")) { $validar_email= "El email no ha sido validado $validado[0] //". md5("$email[0]")." // $email[0] ";}
- else{ $validar_email= "validado"; }
- */
- $validar_email = verificacion_email($_SESSION['nombre_usuario_milfs'],'','');
-
- //$email = "someone@somewhere.com";
- if(isset($_SESSION['avatar_usuario_milfs']) ) {
- $avatar = $_SESSION['avatar_usuario_milfs'];
- }else {
- $size="";
- $default = "https://tupale.co/milfs/images/avatar.png";
- $avatar = "https://www.gravatar.com/avatar/" . md5( strtolower( trim( $email[0] ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
- }
-
- $formulario = "
-
- Hola $_SESSION[nombre_usuario_milfs]
-
$validar_email
-
SALIR
-
- ";
- return $formulario;
- }else {
-
-/* if($_SERVER['HTTP_HOST'] !="tupale.co" ) {
- $social_login="";
- $cols="12";
- }
- else {
- */
- $cols="10";
- $social_login="
-
-
- ";
- //return $formulario;
-// }
- $formulario ="
- $accion
-
-
-
- ";
- $respuesta->addAssign("$div","innerHTML",$formulario);
-
- return $respuesta;
-
- }
-
-}
-elseif($tipo =='salir') {
- session_destroy();
- $respuesta->addScript("javascript:location.reload(true);");
-
-}
-elseif($tipo=='registrarse') {
- $modificable = remplacetas('form_id','id',$form_id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $formulario = "
Función no disponible, por favor comuníquese con el administrador código
";
- $respuesta->addAssign("$div","innerHTML",$formulario);
- return $respuesta;
-
- }
- $campos = formulario_areas('',$form_id,'campos','','','','');
-
- $boton ="
-
- Registrarse
- ";
- $control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-
- $campos
- $boton
-
-
-
- ";
-
- $respuesta->addAssign("$div","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
- if($datos =="") {
- //$campos = formulario_areas('',$form_id,'campos');
- $campos ="
-
-
Usuario
-
-
-
Código de recuperación Deja este campo vacío si aun no tienes el código de recuperación
-
-
- ";
- $boton ="
-
Solicitar clave
- ";
- $control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
- $campos
-
- $boton
-
-
-
- ";
- }else{
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- if($usuario[0] !="") {
- $password = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_password' ") ;
- if($datos[codigo] !="") {
- if( $datos[codigo] =="$password[0]" ){
- $control = remplacetas('form_datos','control',"$usuario[0]",'control'," id_campo = '$campo_password' ") ;
- $campos ="
-
-
-
-
-
-
-
- ";
-
- $formulario ="$campos";
- $respuesta->addAssign("$div","innerHTML",$formulario);
- return $respuesta;
-
-
- }else {
- $respuesta->addAlert("El código no es correcto, por favor rectifíquelo o solicítelo nuevamente dejando el campo VACIO");
- return $respuesta;
- }
- }
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $formulario="$usuario[0] $password[0] // $campo_email[0] $email[0]";
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email_empresa = remplacetas('empresa','id','1','email','') ;
- $email_empresa = remplacetas('empresa','id','1','email','') ;
- $sigla = remplacetas('empresa','id','1','sigla','') ;
- $razon_social = remplacetas('empresa','id','1','razon_social','') ;
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] <$email_empresa[0]>\r\n";
- $headers .= "Reply-To: $razon_social[0] $email_empresa[0]\r\n";
- $headers .= "Return-path: $email_empresa[0]\r\n";
- $asunto= "[ $sigla[0] ] Código para recuperar contraseña ";
- $cuerpo ="
-
Hola $datos[usuario]
- El código para recuperar tu contraseña es:
-
$password[0]
- Regresa pronto :-)
-
- ";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="
Te hemos enviado un correo a $email[0] con el código de recuperación "; }
- else {$formulario ="
Error enviando correo ";}
-
- }else{
-
- $formulario="
No encontramos tu usuario $datos[usuario] . Por favor rectifícalo y prueba nuevamente ";
-
- }
-
-
- }
- $respuesta->addAssign("$div","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='confirmar_recuperar') {
-
- if($datos['password'] != $datos['confirmar_password']) {
- $respuesta->addAlert("Los valores no son iguales");
- return $respuesta;
-
- }
- $link=Conectarse();
-
- mysqli_set_charset($link, "utf8");
-
- $consulta="UPDATE form_datos SET contenido = MD5('$datos[password]')
- WHERE control ='$datos[control]'
- AND contenido ='$datos[codigo]'
- AND form_id ='$form_id'
- AND id_campo = '$campo_password' ";
-
- if (mysqli_query($link,$consulta)){
- $resultado ="
Se cambió el password Por favor ingrese con sus nuevos datos
aquí ";
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- };
-
-
-
-}
-elseif ($tipo=='ingreso'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $password = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = MD5('$datos[password]') AND id_campo = '$campo_password'") ;
-
- if ( $usuario[0] != "" AND $password[0] !="") {
- $respuesta->addAssign("login_milfs","className"," has-success ");
- // $control_servicio = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$servicio' AND control = '$control_uid[0]'") ;
- $_SESSION['usuario_milfs'] = $usuario[0];
-
- $_SESSION['nombre_usuario_milfs'] = $datos['usuario'];
- $_SESSION['control_usuario_milfs'] = $usuario[0];
- $resultado ="
Gracias por regresar $_SESSION[nombre_usuario_milfs] ";
- $respuesta->addScript("javascript:location.reload(true);");
- }else {$resultado ="
Error Los datos no son correctos :( ";
- $respuesta->addAssign("login_milfs","className"," has-error ");
- $respuesta->addAssign("div_formulario_session","innerHTML",$resultado);
- return $respuesta;
- }
-
- $respuesta->addAssign("$div","innerHTML",$resultado);
- //$respuesta->addAlert("resultado");
-
-
-}
-elseif ($tipo=='nuevo'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
-
- $campos_consulta_obligatorio="
- SELECT id_campo, obligatorio
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
- AND obligatorio='1'
- ";
-
-
- $campos_obligados= mysqli_query($link,$campos_consulta_obligatorio);
-
- while( $row = mysqli_fetch_array( $campos_obligados ) ) {
- $campo_valor=$datos[$row[id_campo]][0];
-
- if($row[obligatorio]=='1'){
- $obligatorios .= "$row[id_campo]";
- if($campo_valor == '' && $row[obligatorio]=='1'){
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $error = "Revise campos obligatorios $campo_nombre[0]";
-
- }else {$error ="";}
- if($error !=''){
- $respuesta->addAlert($error);
- $respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
- return $respuesta; }
- }
-
-
- }/// fin de registros obligatorios
-
-
-
- $campos_consulta="
- SELECT id_campo, obligatorio, id_empresa
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
-
- ";
- $campos= mysqli_query($link,$campos_consulta);
- $ip = obtener_ip();
- $control = $datos['control'];
-
- /// incluyo servicio
-
-
- while( $row = mysqli_fetch_array( $campos ) ) {
-
- $campo_valor=$datos[$row['id_campo']][0];
-
- $campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
- /// Si el campo es password (18) se guarda su equivalente en md5
- if($campo_tipo[0] =="18") {
- $campo_valor = MD5("$campo_valor");
- }
- // SI EL CAMPO ES UNICO O EMAIL SE REVISA QUE NO EXISTA
- elseif($campo_tipo[0] =="19" OR $campo_tipo[0] =="12" OR $campo_tipo[0] =="13" ) {
- $existe = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$campo_valor' AND id_campo = '$row[id_campo]'") ;
- if($existe[0] !='') {
- $respuesta->addAlert("ATENCION: El nombre de usuario o el Correo electrónico ya se encuentran registrados !");
- $respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
-
-
- return $respuesta;
- }else{
- //$respuesta->addAlert("$existe[2]"); return $respuesta;
- }
- }
- else {}
-
- if ($campo_valor !=''){
- if($control !="") {
- $graba_ip = "INET_ATON('".$ip."') ";
-
- $insertar_consulta = "
- INSERT INTO `form_datos`
- SET
- id_campo = '$row[id_campo]',
- contenido = '$campo_valor',
- control ='$control',
- timestamp = UNIX_TIMESTAMP(),
- form_id = '$form_id',
- ip = $graba_ip,
- id_empresa = '$row[id_empresa]'
- ";
- //$debug .= "$insertar_consulta / ";
-
- }else{$error="Sin código de control"; } }else{
-
-
- }
-
- if ($error ==''){
- $sql_consulta=mysqli_query($link,$insertar_consulta);
- if($sql_consulta){
- //$login = milfs_session("$form_id","$campo_usuario","$campo_password","","","$div");
- $resultado ="
Gracias por registrarse, Actualiza e ingresa con los nuevos datos. $login
";
-
-
- }else{$resultado.= "
La consulta no se grabó
";}
- }else { }
-
- }
- require ("milfs/includes/parametrizacion.php");
- $insertar_servicio = insertar_linea("form_datos","$login_formulario","$social_login_servicio","$portal_sigla",$control,"","","");
- $resultado ="
Gracias por registrarse, Actualiza e ingresa con los nuevos datos.
";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-
-}
-elseif ($tipo=='boton'){
-
- if(isset($_SESSION['usuario_milfs']) OR isset($_SESSION['id']) ) {
- //$control = remplacetas('form_datos','control',"$_SESSION[control_usuario_milfs]",'contenido'," id_campo = '$campo_password' ") ;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$_SESSION[nombre_usuario_milfs]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $validado = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$login_campo_validado' ") ;
- /*if($validado[0] != md5("$email[0]")) { $validar_email= "El email no ha sido validado $validado[0] //". md5("$email[0]")." // $email[0] ";}
- else{ $validar_email= "validado"; }
- */
- if(isset($_SESSION['id']) ) { $validar_email ="";}else{ $validar_email = verificacion_email($_SESSION['nombre_usuario_milfs'],'','');}
-
- //$email = "someone@somewhere.com";
- if(isset($_SESSION['avatar_usuario_milfs']) ) {
- $avatar = $_SESSION['avatar_usuario_milfs'];
- }else {
- $size="";
- $default = "https://tupale.co/milfs/images/avatar.png";
- $avatar = "https://www.gravatar.com/avatar/" . md5( strtolower( trim( $email[0] ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
- }
-
- $formulario = "
-
- $_SESSION[nombre_usuario_milfs] SALIR
- $validar_email
-
-
- ";
-
- }else{
- $formulario ="
-
- ";
- }
- return $formulario;
-}else{}
-return $respuesta;
-
-}
-$xajax->registerFunction("milfs_session");
-
-
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- $respuesta = new xajaxResponse('utf-8');
-if($valores =="") {
- $alerta = "
Por favor escriba que desea buscar ";
-$respuesta->addAssign("$div","innerHTML",$alerta);
- return $respuesta;
-}
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='*formato*') {
- $control_buscador = MD5(rand());
-$resultado="
-
-
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form ( contenido COLLATE utf8_spanish2_ci like '%$valor%' ) group by control LIMIT 200 ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=2;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
- /* $contenido = htmlentities($row[contenido]);
- $p = stripos($contenido, $valor);
- $s1 = substr($contenido, 0, $p);
- $s2 = substr($contenido, $p, strlen($valor));
- $s3 = substr($contenido, ($p + strlen($valor)));
- $r = $s1."
$s2 ".$s3;
- */
- $datos = landingpage_contenido_identificador($row['control'],"","grid",'paginado');
- // $datos= landingpage_contenido_identificador($identificador,$form,$plantilla,$tipo);
- //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
";
-
- $encontrados .="$contenido ";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor
-
$encontrados
";
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-
-
-
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-//mysqli_real_escape_string($link,$consulta);
-$sql_total=mysqli_query($link,$consulta_total);
-$total = mysqli_num_rows($sql_total);
-$sql=mysqli_query($link,$consulta);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = $descripcion[0];
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion";
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
$buscador
-
-
-
- $contenido
-
- Mostrar mas resultados
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-
-function insertar_registro($tabla,$formulario,$div,$principal) {
- //$valores ="$formulario[0]";
- $formulario = limpiar_caracteres($formulario);
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
-
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($link,$insertar);
- $ultimo_id = mysqli_insert_id($link);
- if(mysqli_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $valores = limpiar_caracteres("$valores");
- $grupo = editar_campo("$tabla",$ultimo_id,"$principal","","","","");
- $respuesta->addAssign($div,"innerHTML","
$formulario[$principal] ");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- //$respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_registro");
-
-
-
-function formulario_area_campos($perfil,$area,$control,$ubicacion) {
- $tipo="";
- $control_edit ="$control";
- $solo_campos ="";
- $muestra_form ="";
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} $campos= "";
-
-$consulta = "
- SELECT * FROM form_campos , form_contenido_campos
- WHERE form_contenido_campos.id_form = '$perfil'
- AND form_contenido_campos.id_campo = form_campos.id
- AND campo_area='$area'
- ORDER BY form_contenido_campos.orden";
-
- $link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-
-
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- if( $row['obligatorio'] == '1'){$obligatorio="*";}else {$obligatorio='X';}
-
- //if($row['campo_tipo'] =="24") { $row['multiple'] = "1";}else {}
- //if($row['multiple'] =="1" AND $tipo =='edit'){
- if($row['multiple'] =="1" ){
- $campos .= "".formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit,$ubicacion);
- }else{
- $campos .= "".formulario_campos_render($row['id_campo'],$perfil,$control_edit,'','',"$ubicacion");
- //$campos .= "".formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }
- $muestra_form .= "$campos $obligatorio ";
- $solo_campos .= "$campos $obligatorio ";
-
- }
-
-
-}
-
-
-$resultado = "$muestra_form ";
- return "$campos";
-
-}
-
-function formulario_areas($metadatos,$perfil,$tipo,$form_respuesta,$control_respuesta,$ubicacion,$extra){
- $id="";
- $resultado_campos ="";
- $resultado_solo_campos ="";
- $subir_imagen ="";
- $campo_imagen_nombre ="";
- $imagen="";
- $script="";
- $controladores="";
- $muestra_form="";
- if($form_respuesta =='respuesta'){$control = $control_respuesta;}
- //elseif($form_respuesta =='edicion'){$control = $control_respuesta;}
- else{
-$control = md5(rand(1,99999999).microtime());
-}
- $respuesta = new xajaxResponse('utf-8');
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- // $consulta= "SELECT * , form_areas.orden FROM form_campos, `form_contenido_campos`, form_areas WHERE form_campos.campo_area = form_areas.id AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$perfil' GROUP BY form_campos.campo_area ORDER BY form_areas.orden";
- $consulta= "SELECT * , form_areas.orden FROM form_campos, `form_contenido_campos`, form_areas WHERE form_campos.campo_area = form_areas.id AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$perfil' GROUP BY form_campos.campo_area ORDER BY form_areas.orden";
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-$cantidad= mysqli_num_rows($sql);
-if($tipo=='cantidad') { return $cantidad;}
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- //$campo_titulo = remplacetas('parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
- $descripcion = remplacetas('form_id','id',$perfil,'descripcion','') ;
- $formulario_respuesta = remplacetas('form_id','id',$perfil,'formulario_respuesta','') ;
- $empresa = remplacetas('form_id','id',$perfil,'id_empresa','') ;
- $empresa = $empresa[0];
-
- $nombre= strtoupper($nombre[0]);
- $descripcion= $descripcion[0];
- $form_respuesta= $formulario_respuesta[0];
-
-
-//// encabezado form
-
- if($tipo =='edit') {$control= $control_respuesta;}
- elseif($form_respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- //$descripcion=mysqli_result($sql,0,"descripcion");
- //$nombre=mysqli_result($sql,0,"nombre");
- //$empresa=mysqli_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$empresa",'encabezado');
- $pie = empresa_datos("$empresa",'pie');
- $logo = remplacetas('empresa','id',"$empresa",'imagen','') ;
- $cabecera = "
-
-
-
-
-
-
-
-
-
$nombre$descripcion
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($perfil,"15");
-if($campo_imagen[0] !="") {
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen_nombre = ucwords($campo_imagen_nombre);
-$campo_imagen = $campo_imagen[0];
- }
-
-
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
-if(isset($_SESSION['id_empresa']) and ($empresa == $_SESSION['id_empresa'] )) {
-$continuar_editando ="
-
-
-
- Continuar editando
-
-
-
";
-}else {$continuar_editando ="";}
-
-
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row['campo_area']=="0"){$area_nombre ="";}
- else{
- $area_nombre = remplacetas('form_areas','id',$row['campo_area'],'nombre','') ;
- $area_nombre = $area_nombre[0];
- }
- $fila = $fila +1;
-
- //$producto = remplacetas('farmacia_cum','id',$row[id_producto],'fabricante_importador') ;
- ///// para pasar el parametro de medicamentos al formulario no pos se adiciona ".func_get_arg(2)."
- $campos = formulario_area_campos($perfil,$row['campo_area'],"$control_edit",$ubicacion);
- if($fila==1) {$activo='active'; $anterior="";}else{$activo=''; $anterior ="
Anterior";}
- if($fila == $cantidad) { $boton="
-
-
-
- $continuar_editando
-
-
-
- ";}
- else{
- $boton=" $anterior
-
Siguiente ";
- }
- if($tipo=='campos') {
- $boton ="" ;
- }else{ $boton= $boton;}
-$resultado_campos .= "
-
-
-
- $fila. $area_nombre
- $campos
-
-
-
$boton
-
-
- ";
-
-$resultado_solo_campos .= "
-
-
-
- $fila. $area_nombre
- $campos
-
-
-
-
- ";
-
-
-$controladores .= "
- $fila. $area_nombre
-
-
-
-";
- }
-
-
-//// botonera form
-
-
-$metadatos = json_encode($metadatos);
-$muestra_form = "
-
-
-
-
-
-
-
-
-
-
-
-
- .
- $resultado_campos
-
-
-
-
-
-
-
-
-
-
- ";
-
-//// fin botonera form
-
- }
-
-//// cierre form
-
-
-if($tipo=='campos') {
-
- $resultado = "$resultado_solo_campos $imagen ";
- return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "$muestra_form";
-return $resultado;
-
-}
-
-$resultado = "$muestra_form";
-return $resultado;
-
-/// fin cierre form
- // $resultado .= "$consulta";
-//$respuesta->addAssign($div,"style.display","block");
-//$respuesta->addAssign($div,"innerHTML",$resultado);
-//return $respuesta;
- //print $muestra_form;
-// return $muestra_form;
- }
-
- $xajax->registerFunction("formulario_areas");
-
-
-
-function tabla_areas($tabla,$value,$descripcion,$onchange,$where,$nombre,$div){
- $group ="";
- if($div =="") {
- $div="div_campos";
- $resultado = "
-
Modificar areas
- ";
- return $resultado;
- }
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$campo3 = $campos[2];
-$campo4 = $campos[3];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_set_charset($link, "utf8");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="group by $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT * FROM $tabla WHERE 1 $w AND id_empresa='$_SESSION[id_empresa]' $group ORDER BY orden ";
-$sql=mysqli_query($link,$consulta);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-
-$resultado="
-$name
-Id $campo1 $campo2 $campo3 $campo4
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$editar_campo1= editar_campo("$tabla",$row['id'],"$campo1","","","","");
-$editar_campo2= editar_campo("$tabla",$row['id'],"$campo2","","","","");
-$editar_campo3= editar_campo("$tabla",$row['id'],"$campo3","","","","");
-$editar_campo4= editar_campo("$tabla",$row['id'],"$campo4","","","","");
-$eliminar = " ";
-$resultado .= "$row[$value] $editar_campo1 $editar_campo2 $editar_campo3 $editar_campo4 ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados 0003
";
- }
-
-$resultado .= "
-
-
-
-
-
-Agregar área
-
-
-
-
-
-
-
-
-
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("tabla_areas");
-
-
-
-
-function importar_coleccion($form){
-$div ="confirmar_importacion";
-//$archivos = listado_archivos("$form[path]");
-//$archivos = listar_archivos("$form[path]",'cantidad','',$form);
-
- $directorio = opendir("$form[path]"); //ruta actual
-$resultado = " ";
-while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
-{
- if (is_dir($archivo))//verificamos si es o no un directorio
- {
- // $resultado .= "[".$archivo . "]
"; //de ser un directorio lo envolvemos entre corchetes
- }
- else
- {$autor="";
- $ext = explode(".", $archivo);
- $ext = strtolower($ext[count($ext) - 1]);
- if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {
- $cantidad_imagenes++ ;
-
- $exif = leer_exif("$form[path]/$archivo");
- //$name = $exif['exif']['FileName']." ".$form['38']['0']."*" ;
- $form['0']['0'] = "$archivo";
- $autor= $exif['exif']['Artist'];
- $creator = $form['40'][0];
- if($autor !="" ) { $remplazo = array('40' => array("$autor")); }else{ $remplazo; }
-
- }
- //$form = array_replace_recursive($form, $reemplazo);
- $resultado .= $archivo ." / $name ".$form['0'][0]."
";
- }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= "( $c : $V )
";
- if($V != '') {
- }
- }
-}
-}
-*/
-//$resultado="$archivos $campo";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("importar_coleccion");
-
-
-
-
-function listar_archivos( $path ,$opcion, $div,$datos){
- // Abrimos la carpeta que nos pasan como parámetro
-
- $resultado ="";
- //$link = Conectarse();
- $dir = opendir($path);
- $cantidad =0;
- $cantidad_imagenes =0;
-//$datos['61'] = array ( 0 => "otro valor");//"OTRO VALOR";
- if(is_file($path)) {$esarchivo="Escriba la ruta a un directorio en el servidor
"; }
- // Leo todos los ficheros de la carpeta
- //if($esarchivo =="") {
- // $elemento = readdir($dir);
- //}
- while ($elemento = readdir($dir) ){
-
- // Tratamos los elementos . y .. que tienen todas las carpetas
- if( $elemento != "." && $elemento != ".."){
- // Si es una carpeta
- if( is_dir($path.$elemento) ){
- // Muestro la carpeta
- // $resultado .= "
CARPETA: ". $elemento ."
";
- // Si es un fichero
- } else {
- $ext = explode(".", $elemento);
- $ext = strtolower($ext[count($ext) - 1]);
- if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {$cantidad_imagenes++ ;
-
- $exif = leer_exif("$path/$elemento");
- $name = $exif['exif']['FileName'];
- $title= "$name ";
- $date= $exif['exif']['DateTimeOriginal'];
- $autor= $exif['exif']['Artist'];
- if(!isset($autor)) { $autor = $datos['40'][0]; }
- $licencia= $exif['exif']['Copyright'];
- if($licencia ==="") { }
- else{
-// $datos['61'][0]= " XX $licencia XXX";
- }
-
-
- //$datos['61'][0] = $licencia;
- if(isset($exif['exif']['UndefinedTag:0xC4A5'])) {
- $exif['exif']['UndefinedTag:0xC4A5']= base64_encode($exif['exif']['UndefinedTag:0xC4A5']);
- }
- if(isset($exif['exif']['MakerNote'])) {
- $exif['exif']['MakerNote']= base64_encode($exif['exif']['MakerNote']);
- }
- if ( $exif['lon'] =="" )
- {
- $geo = $datos['58'][0];
- $mundo ="";
- $datos['58'][0] = $datos['58'][0];
-
- }
- else {
- $geo = "$exif[lon] $exif[lat] 18" ;//$datos['58'][0];
- $mundo ="
";
- $datos['58'][0]= "$geo";
-
-
- }
-
- // $remplazos = array('40');
- // else { $mapa="";}
- //$json = json_encode($exif['exif'],JSON_PRETTY_PRINT);
- //if ( $exif['lon'] =="" ){$datos['58'][0] = $geo;}else {$datos['58'][0] = $datos['58'][0];}
- $resultado .= "
$geo $mundo / ".$datos['58'][0]." ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]." ";
-
- }
-
- $cantidad ++;
-
- $campo .= "";
-
-
- }
- }
-
- }
-
-
- if($div !="" ) {
- if($opcion == "cantidad") {
- $resultado = "
-
- $esarchivo $cantidad archivos, $cantidad_imagenes imágenes jpg, $mapa georeferenciadas
-
-
";
- }
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }else {
-
-
-
- return " $campo $resultado"; }
-}
-$xajax->registerFunction("listar_archivos");
-
-
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( "$file" );
- $resultado['exif'] = $exif;
- $resultado['file']= $file;
- $resultado['FileName']=$exif['FileName'];
-
-if($exif === false) {
-//return false;
-}
-
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado['lat'] = $gps_latitude;
- $resultado['lon'] = $gps_longitude;
-
- //$resultado = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
- }else{}
-
-}
-
-
- $resultado['DateTime'] = $exif['DateTimeOriginal'];
- $resultado['estado'] = "oK";
-
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-
-function relacion_render($form_id,$id_campo,$valor,$cantidad,$plantilla){
-$valor_actual = "";
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit=='0' or $limit ==''){$limit = "LIMIT $limit";}
- else {$limit = "";}
-if($valor !="") {
- if($plantilla =="") {$plantilla= "relacion";}
-$valor_actual = contenido_mostrar("$formulario",$valor,'',"$plantilla");
-if($plantilla == 'relacion_drop') { $link ="";} else{
-$link = "
Ver referencia ";
-}
-}
-
- return " $valor_actual $link";
-$div ="div_relacion_$name";
-
-$consulta = "SELECT DISTINCT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','relacion')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[control] == "$valor") {
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados 0004
";}
- return $resultado;
-}
-$xajax->registerFunction("relacion_render");
-
-function buscador_base($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_base_$name";
-$onchange = " xajax_buscador_select_base('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select_base('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_base");
-
-
-function buscador_select_base($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_base_$name";
- $resultado="";
- $where="";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves_original ="$claves[0]";
-$claves = $claves[0];
-
-
- $claves = explode(' ',$claves);
- $tabla = explode(':',$claves[0]) ;
- $tabla = $tabla[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion1 = explode(':',$claves[2]) ;
- $descripcion1 = $descripcion1[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $descripcion3 = explode(':',$claves[4]) ;
- $descripcion3 = $descripcion3[1];
-
- if(isset($claves[5] )){
- $crue = explode(':',$claves[5]) ;
- //$crue = $crue[1];
- if($crue[1] !=""){
- $sentencia=str_replace('_'," ",$crue[1]);
-
- $where = "AND $sentencia ";}
- }
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT * FROM $tabla WHERE $descripcion1 like '%%$valor%%' $where GROUP BY $key limit 50 ";
-
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-//$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-//$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if(@$row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select_base");
-
-
-
-function buscador_campo($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_$name";
-$onchange = " xajax_buscador_select('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
$valor";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_campo");
-
-
-function imprimir_buscador_campo($id_campo,$valor,$plantilla) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0] $campo2[0]";
-
-
- if($plantilla =="") {$plantilla= "buscador";}
- $valor_actual = contenido_mostrar("$formulario",$valor,'',"$plantilla");
- if($plantilla == 'buscador_drop') { $link ="";}
- elseif($plantilla == '') {
- $link = "
Ver referencia ";
- }else{$link="";}
- return "$valor_actual$link";
-}
-
-function imprimir_buscador_campo_key($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0]";
- return $imprimir;
-}
-
-function imprimir_base($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $campo1 = remplacetas("$formulario","$key","$valor","$descripcion","");
- $campo2 = remplacetas("$formulario","$key","$valor","$descripcion2","");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function buscador_select($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_$name";
- $lista="";
- $resultado="";
- $aviso="";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $limite='50';
- $publico = remplacetas('form_id','id',"$formulario",'modificable',"") ;
- $propietario = remplacetas('form_id','id',$formulario,'propietario',"") ;
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-$consulta_paginacion = "SELECT control FROM form_datos WHERE contenido LIKE '%%$valor%%' and form_id ='$formulario' and ( id_campo ='$key' OR id_campo = '$descripcion' ) GROUP BY control ";
-//$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and (id_campo ='$key' OR id_campo ='$descripcion' )AND contenido like '%%$valor%%' GROUP BY control limit 15 ";
-$consulta = "SELECT contenido, control ,id_campo FROM form_datos WHERE contenido LIKE '%%$valor%%' and form_id ='$formulario' and ( id_campo ='$key' OR id_campo = '$descripcion' ) GROUP BY control limit $limite ";
-
-$sql=mysqli_query($link,$consulta);
-$sql_paginacion=mysqli_query($link,$consulta_paginacion);
-$cantidad = mysqli_num_rows($sql_paginacion);
-
-if (mysqli_num_rows($sql)!='0'){
-
- if($limite < $cantidad) { $alert="warning"; $aviso ="Mostrando $limite de $cantidad registros";}else { $alert="success";}
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $lista.= "
- $campo_key[0] $campo_descripcion[0] ";
-
- }
-
-$resultado .= "
-
-
-
$aviso
";
- }
- else{
- if($publico[0] == '0' AND $propietario[0] != $_SESSION['id']){$agregar ="";}else{$agregar ="
Agregar nuevo registro ";}
- $resultado = "$publico[0] // $propietario[0] // $formulario
No hay resultados para $valor $agregar
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select");
-
-
-
-function relacion_select($id_campo,$form_id,$valor,$name,$control,$tipo){
-$link=Conectarse();
-$valor_actual ="";
-mysqli_set_charset($link, "utf8");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit=='0' or $limit ==''){$limit = "";}
- else {$limit = "LIMIT $limit";}
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$sql=mysqli_query($link,$consulta);
-
-
-if (mysqli_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','relacion')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados 0006
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_select");
-
-function combo_select($id_campo,$form_id,$valor,$name,$control,$control_combo){
- $selected="";
- $onchange="";
- $and="";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if($control_combo !="") {
- $div ="combo_$name";
-$and ="AND campo_valor LIKE '$control_combo:%%'";
-}else{
-$onchange ="xajax_combo_select('$id_campo','$valor','$valor','$name','$control',(this.value)) ";
-$div ="combo_$name";
-$name ="primario_$name";
-}
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' $and ";
-$sql=mysqli_query($link,$consulta);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado=" $valor
-Seleccione
- " ;
- // $resultado = array_unique($entrada);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campos = explode(':',$row['campo_valor']);
-
- IF($control_combo ==""){
- $campo_primario[]=$campos[0];
- $campo_primario = array_unique($campo_primario);
- }
- else {
- $campo_primario[] = "$campos[0] $campos[1]";
- }
- //$identificador = $identificador[0];
-//if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-//$resultado .= " $campos[0] ";
- }
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "$V ";
-}
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados 0007
";}
-if($control_combo =='') {
- return $resultado;
- }
-else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-$xajax->registerFunction("combo_select");
-
-
-function aplicacion_carrusel($id,$registros,$pagina,$tipo,$orden,$plantilla){
-
- $form=$id;
- $campo = buscar_campo_tipo($id,"15");
- $id_campo = $campo[0];
- if($id_campo[0] =="") {
- $mensaje="
La aplicación no tiene imágenes
";
- return $mensaje;
- }
-
-/* $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
- $descripcion = $descripcion[0];
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
- $campo_titulo = $campo_titulo[0];
- */
- $consulta_principal ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by id DESC ";
- $link=Conectarse();
-
-
- $sql_total=mysqli_query($link,$consulta_principal);
- $total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
- if($registros=="") { $registros="$total_registros"; $origen="url";}
- /// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio , $registros ";}
- $consulta_limite = $consulta_principal.$limite;
- mysqli_real_escape_string($link,$consulta_limite);
- $sql=mysqli_query($link,$consulta_limite);
-
- //$sql=mysqli_query($link,"$consulta $w_limite");
- // $cantidad = mysqli_num_rows($sql);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-//$fecha = time ();
-// $ahora = date ( "Y-m-d" , $fecha );
-// $campos = listar_campos_formulario($id_form,"select");
-
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
-
- if(isset($_REQUEST[registros])) {
- $href_1 = "$origen®istros=$registros&pagina=1&orden=$orden";
- $href_2 = "$origen®istros=$registros&pagina=".($pagina-1)."&orden=$orden";
- }
- else {
- $href_1= "#cabecera#";
- $href_2= "#cabecera#";
- }
- //consultar_contenido_formulario($form,$registros,$pagina,$tipo,$orden,$plantilla)
- ///aplicacion_carrusel($tipo,$id,$plantilla,$datos,$pagina,$registros)
- ///aplicacion_carrusel('','$id',$plantilla,'$orden','1','$registros')
-
- $link .= "
-
";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
-
- if(isset($_REQUEST['registros'])) {
- $href_3 = "$origen®istros=$registros&pagina=$x&orden=$orden";
- }
- else {
- $href_3= "#cabecera#";
- }
- if ($page == $x){
- $link .= "
$x ";
- }else{
- $link .= "
$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- {
- if(isset($_REQUEST['registros'])) {
- $href_4 = "$origen®istros=$registros&pagina=".($pagina+1)."&orden=$orden";
- $href_5 = "$origen®istros=$registros&pagina=$pages&orden=$orden";
- }
- else {
- $href_4= "#cabecera#";
- $href_5= "#cabecera#";
- }
- $link .= "
-
"; }
- }
- $paginacion = "";
- $encabezado = "
-
-
-
-
Los resultados se muestras en grupos de $registros registros
-
- $paginacion
-
-
-
";
-
-// $total_registros = mysqli_num_rows($sql);
-/* $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "
$nombre ";
- }
- */
-// $listado_nombres = "
Identificador $listado_nombres ";
-///$listado_campos = listar_campos_formulario("$id_form",'');
- //$descripcion = remplacetas('form_id','id',$id_form,'descripcion','') ;
- //$descripcion_limpia = strip_tags($descripcion[0]);
- ///$nombre = remplacetas('form_id','id',$id_form,'nombre','') ;
- //$cabecera="
$nombre[0] $descripcion[0]";
-mysqli_data_seek($sql_total, 0);
-$ordenado = 0;
-$con_plantilla = remplacetas('form_parametrizacion','campo',$form,'descripcion'," tabla='form_id' and opcion = 'plantilla:$plantilla'") ;
-
-$campo_titulo = remplacetas('form_parametrizacion','campo',$form,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- //$titulo = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
- if($campo_titulo[0] !="") {
- $campo_nombre= $campo_titulo[0];
- }
- else {
- $campo_nombre = formulario_campo_semantico("nombre","$form",'preciso','');
- //$titulo = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo = '$campo_nombre'") ;
- }
-
-
-//$con_plantilla = $con_plantilla[0];
-while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- if($ordenado === 0) {$activo = "active";}else{$activo="";}
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-$imagen = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo = '$id_campo'") ;
- if( $con_plantilla[0] =="" AND $id_campo !="") {
-
- $titulo = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo = '$campo_nombre'") ;
- $contenido_desplegado ="
-
-
-
-
$titulo[0]
- $campo_limpio[562]
-
-
-
-
-
- ";
-
- }
-
-
- $items .= "
- $contenido_desplegado
-
";
-
-
-
- $indicadores .= "
";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- //$contenido .= "$contenido_desplegado ";
- $ordenado = ($ordenado +1 );
-
- }
- $items .= "
";
- $indicadores .= "
-
";
-$scripts ="
-
-
-
-";
-
-$carrusel="
-
- $indicadores
-
-
- $items
-
-
-$scripts
-";
- $contenido = "
$carrusel
";
-
-
- }else {}
-
-
- if($tipo =="") {
- // $respuesta->addAssign("contenido_interior","innerHTML","$div_contenido");
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("mostrar_carrusel","innerHTML","$contenido");
- $respuesta->addScript("
-
-
- $('.slider-for1').slick({
- slidesToShow: 1,
- slidesToScroll: 1,
-
- fade: true,
- asNavFor: '.slider-nav1'
- });
- $('.slider-nav1').slick({
- slidesToShow: 3,
- slidesToScroll: 1,
- asNavFor: '.slider-for1',
- adaptiveHeight:true,
- centerMode: true,
- focusOnSelect: true,
- responsive: true,
- arrows: false,
- variableWidth:true
- });
-
-
- ");
- return $respuesta;
- }
- elseif($tipo =="contenido" OR $tipo =="embebido" ) {
- return $contenido;
- }
-}
-
-$xajax->registerFunction("aplicacion_carrusel");
-
-function formulario_embebido($id,$opciones){
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- if($publico[0] =="0" AND @$_SESSION['id_empresa'] != $empresa[0] AND $propietario[0] != @$_SESSION['control_usuario_milfs'] ) {
- $resultado = "
";
- //$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- // $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$empresa[0]",'pie');
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $resultado;
- }
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
- $impresion = formulario_areas('',$id,"embebido",'','','','');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- //$visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
-
-
-
-
$formulario_nombre[0]$formulario_descripcion[0]
- $impresion
-
-
-
-
-
-
-
";
- return $muestra_form ;
-}
-
-
-function formulario_embebido_ajax($datos,$id,$opciones,$tipo){
-
- $respuesta = new xajaxResponse('utf-8');
-
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $encabezado = empresa_datos("$id_empresa[0]",'encabezado');
- $pie = empresa_datos("$id_empresa[0]",'pie');
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $cabecera = "
-
-
-
- $encabezado
-
-
-
$formulario_nombre[0] $formulario_descripcion[0]
-
-
-
";
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- $equipo = remplacetas('form_datos','control',$opciones,'equipo',"") ;
- if($publico[0] =="0" AND $_SESSION[id] =="") {
- $resultado = "
Ingresa con tu usuario para agregar datos a esta aplicación. ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
-
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
-
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "$permiso_identificador
Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
-
-if($equipo[0] =="" OR is_null($equipo[0]) ) {}else{
-if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0] )){
- $aviso = "
-
ATENCIÓNNo está autorizado Para modificar esta información pertenece a un grupo de trabajo diferente";
-
- $resultado = "
-
- $salir
- $aviso
-
-
- ";
-// $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
-
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-}
-}
- if($tipo =='edit' AND ($_SESSION['id_empresa'] !== $id_empresa[0] AND $_SESSION['id'] != $propietario[0] )AND $permiso_identificador != $opciones) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
-
- $resultado ="$cabecera
-
- $salir
- $aviso
- $seguridad
-
- $pie
- ";
-
-
-
- // return $resultado;
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
-
-
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
- }
-
- // return "Hola mundo";}
-
- if($tipo=="respuesta") { $form_respuesta = "respuesta";}else {$form_respuesta="";}
- $impresion = formulario_areas($datos,"$id","$tipo","$form_respuesta","$opciones",'','');
- $cantidad_areas = formulario_areas('',"$id","cantidad","$form_respuesta","$opciones",'','');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- //$visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
-
-
- $impresion
-
-
-
- ";
- // return $muestra_form ;
-
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- //$div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("
-$('.next').click(function(){
-
- var nextId = $(this).parents('.tab-pane').next().attr('id');
- $('[href=#'+nextId+']').tab('show');
- return false;
-
-})
-
-$('.prev').click(function(){
-
- var prevId = $(this).parents('.tab-pane').prev().attr('id');
- $('[href=#'+prevId+']').tab('show');
- return false;
-
-})
-
-$('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {
-
- //update progress
- var step = $(e.target).data('step');
- var percent = (parseInt(step) / $cantidad_areas ) * 100;
-
- $('.progress-bar').css({width: percent + '%'});
- $('.progress-bar').text('Paso ' + step + ' de $cantidad_areas' );
-
- //e.relatedTarget // previous tab
-
-})
-
-$('.first').click(function(){
-
- $('#myWizard a:first').tab('show')
-
-})
-
- ");
-
-
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- ///if($tipo =="edit") {return $muestra_form;}
- return $respuesta;
-
-}
-$xajax->registerFunction("formulario_embebido_ajax");
-
-function formulario_embebido_campos($id,$opcion){
- $impresion = formulario_modal("$id",$form_respuesta,$control,"$opcion");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $muestra_form = "
-
-
$formulario_nombre[0]
-
$formulario_descripcion[0]
- $impresion
-
-
-
";
- return $muestra_form ;
-}
-
-function json($datos){
- $limite="";
- if(isset($datos['start']) AND isset($datos['end'])) {
- $campo = buscar_campo_tipo($datos['id'],"32");
- if($campo[0] =="") {
- $campo = buscar_campo_tipo($datos['id'],"11");
- }
- $w_rango ="( form_datos.id_campo = $campo[0] ) AND ( DATE(contenido) BETWEEN DATE('$datos[start]') AND DATE('$datos[end]') ) AND ";
- $limite ="limit 200";
-
- }
-
-
-
- if(!isset ($datos["tipo"] )) { $datos["tipo"]="";}
- if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND form_id.publico = '1' "; $w_publico = "WHERE form_id.publico = '1' "; }
- else {
- $publico = "AND form_id.id_empresa = '$_SESSION[id_empresa]'";
- $w_publico = "WHERE form_id.id_empresa = '$_SESSION[id_empresa]' ";
- }
- $datos = mysql_seguridad($datos);
- $link=Conectarse();
-mysqli_set_charset($link, "utf8");
- if($datos["id"] !=''){
-
- //$id_campo = remplacetas('form_datos','id',$row["id"],'id_campo',"") ;
- //$campo_tipo = remplacetas("form_campos","id",$row["id_campo"],"campo_tipo","");
-
- if($datos["tipo"] =='simple') {
- $campos ="control " ;
- $consulta = "SELECT $campos, form_id.id as form_id ,form_datos.id as id_dato
- FROM `form_datos` , `form_campos` ,form_id
- WHERE $w_rango form_datos.id_campo = `form_campos`.id
- AND form_datos.form_id = `form_id`.id
- AND (form_id = '$datos[id]' )
- $publico
- GROUP BY form_datos.control
- ORDER BY form_datos.timestamp DESC $limite ";
-
- $sql = mysqli_query($link,$consulta) or die("Error al ejecutar consulta 03 ");
- // $features['consulta'] = $consulta;
- if (mysqli_num_rows($sql)!='0'){
- $i = 1;
- $features = array();
-
- while($row = mysqli_fetch_array( $sql ))
- {
-
-
-
- if($datos["tipo"]=="simple"){
-
- $id_campo = @remplacetas('form_datos','id',$row["id_dato"],'id_campo',"") ;
-
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $nuevos_datos = $datos;
- $nuevos_datos["identificador"]="$row[control]";
- $nuevos_datos["tipo"]="array";
- $features[] = datos_array($row["control"],"$datos[id]","") ;
-//$features['consulta'] = $consulta;
- }
- else {
- // $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
- }
-
-
- if($datos["tipo"] == "array" ) {
- $resultado = $features;
- }else {
-
- $resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
- }
- return $resultado;
-
- }
- else {
- $campos ="form_datos.id as id_dato, form_datos.form_id AS
- id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
- id_campo , contenido ,timestamp, control as identificador ,
- form_datos.orden" ;
- $consulta = "SELECT $campos
- FROM `form_datos` , `form_campos` ,form_id
- WHERE form_datos.id_campo = `form_campos`.id
- AND form_datos.form_id = `form_id`.id
- AND (form_id = '$datos[id]' )
- $publico
- ORDER BY form_datos.control ,form_datos.timestamp ";
- }
- //return $consulta;
-
- }
- elseif($datos["identificador"] !=''){
- if($datos["tipo"] =='simple') {$campos ="form_campos.id as id_campo, form_datos.id as id_dato " ;}
- else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
- id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
- id_campo ,contenido ,timestamp, control as identificador ,
- form_datos.orden" ;}
-
- $consulta = "SELECT $campos
- FROM `form_datos` , `form_campos` ,form_id
- WHERE form_datos.id_campo = `form_campos`.id
- AND form_datos.form_id = `form_id`.id
- AND (control = '$datos[identificador]' )
- $publico
- ";
- }
- elseif($datos["dato"] !=''){
- if($datos["tipo"] =='simple') {$campos ="form_campos.id as id_campo,
- form_datos.id as id_dato " ;}
- else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
- id_formulario, nombre as formulario, nombre as formulario,
- campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp,
- control as identificador, form_datos.orden" ;}
- $consulta = "SELECT $campos
- FROM `form_datos` , `form_campos` ,form_id
- WHERE form_datos.id_campo = `form_campos`.id
- AND form_datos.form_id = `form_id`.id
- AND (form_datos.id = '$datos[dato]' )
- $publico
- ";
- }
- else {
- $consulta = "SELECT id as form_id, nombre as form_nombre, descripcion
- as form_descripcion , creacion , publico AS contenido_publico ,
- modificable AS formulario_publico
- FROM form_id $w_publico";
- }
-
-
-$sql = mysqli_query($link,$consulta) or die("Error al ejecutar consulta 04 ");
- if (mysqli_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-$mostrar = mostrar_areas($datos['id'],"","","api");
-//$mostrar .= " identificador $datos[identificador] ";
-//print_r($consulta);
-// $features[] = $consulta;
- while($row = mysqli_fetch_array( $sql ))
- {
- //$nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $id_campo = remplacetas('form_datos','id',$row["id_dato"],'id_campo',"") ;
- $formulario = remplacetas('form_datos','id',$row["id_dato"],'form_id',"") ;
- $campo_tipo = remplacetas("form_campos","id",$row["id_campo"],"campo_tipo","");
- //// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$formulario[0]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = @$privado[1];
- /// PRIVACIDAD
- if($privado !='1') {
- if($datos['tipo']=="simple"){
- $contenido = remplacetas('form_datos','id',$row["id_dato"],'contenido',"") ;
- $contenido_limpio = html_entity_decode("$contenido[0]");
- $id_campo = remplacetas('form_datos','id',$row["id_dato"],'id_campo',"") ;
-
- $nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $features[] = "'$nombre_campo[0]' : '$contenido_limpio'";//$row[id_campo];
- }
- else {
- if($campo_tipo[0] == '31') {
- $link_url = "$_SESSION[site]milfs/archivos/?archivo=$row[contenido]";
- $row['contenido']= $link_url;
-
- }
- $row["contenido"] = html_entity_decode("$row[contenido]");
- $features[] = $row;
- }
- }
-
- $i++;
- }
-
-
-
-}
-
-if($datos["tipo"] == "array" ) {
-$resultado = $features;
-}else {
-
-//$resultado = json_encode($mostrar,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-
-return $resultado;
-}
-
-
-
-
-
-function imprime_geojson($id,$id2,$plantilla,$busqueda){
- $id_form = mysql_seguridad($id);
- $id_form2 = mysql_seguridad($id2);
- $campo = buscar_campo_tipo($id_form,"14");
- $campo2 = buscar_campo_tipo($id_form2,"14");
- $id_campo = $campo[0];
- $id_campo2 = $campo2[0];
- $busqueda = explode(':',$busqueda);
- if($busqueda[1] !="") {
- $consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data FROM `form_datos` WHERE (form_id = '$id_form' $w_id2 AND id_campo ='$busqueda[0]' AND contenido COLLATE utf8_spanish2_ci like '%$busqueda[1]%' ) group by control ORDER BY orden desc";
-
- }
-
- else{
-
-$consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data
-FROM `form_datos`
-WHERE (form_id = '$id_form' $w_id2 )
-AND ( id_campo ='$id_campo' $or_2 )
-group by control
-ORDER BY orden desc";
- }
-
- if($id_form2 !=""){$w_id2 =" OR form_id = '$id_form2'"; $or_2 ="or id_campo = '$id_campo2'";}
-
-$link=Conectarse();
-
-
-//return $consulta;
-
- mysqli_set_charset($link, "utf8");
- $sql = mysqli_query($link,$consulta) or die("Error al ejecutar consulta 05 ");
-
- $cantidad = mysqli_num_rows($sql);
- if (mysqli_num_rows($sql)!='0'){
- $id = 1;
- $features = array();
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $marcador = array();
- $propiedades = array();
- $identificador = explode(',',$row[data]);
- $localizacion = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo = '$id_campo'") ;
-
- $identificador = $identificador[0];
- //$campos = explode(" ",$identificador);
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- $formulario = formulario_imprimir($row[id],$row[control],"$plantilla");
-
- $marcador["type"] = "Point";
- $marcador["coordinates"] = array($lat,$lon);
- $propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
- //$propiedades[description] ="HOLA MUNDO";
- //$propiedades[buscar] ="$consulta ";
- $propiedades[localizacion] ="$localizacion[0] ";
- if($cantidad < 300) {
-
-
- }
- else {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id_form,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-
- $titulo = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
-
- $propiedades[description] ="$titulo[0]"; }
- //$propiedades[description] ="
$formulario
";
- $propiedades[description] ="$formulario";
- $propiedades[icon][iconSize] =[60];
- //$propiedades[icon][shadowSize] =[70,70];
- //$propiedades[icon][shadowUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
-
- //$propiedades[title] ='Hola mundo';
- if($propiedades[icon][iconUrl] =="") {
- $icono_imagen = buscar_imagen("$id_form",$row['control'],"","");
- //$propiedades[icon][iconUrl] = "$_SESSION[site]/milfs/images/iconos/negro.png";
- $propiedades[icon][iconUrl] = "$_SESSION[url]images/secure/?file=150/$icono_imagen";
- }
- //$propiedades[sounds] ="";
- //$propiedades[url] ='';
-
- $geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)."},";
- $features[] = $marcador;
-
- $id++;
- }
-
-}
-//-75.58295 6.25578 16
-
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
- \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
- \"type\": \"FeatureCollection\",
- \"features\": [$geometria ]}";
-return $geometria;
-}
-
-
-function aplicacion_presentacion($id,$div,$timeout){
- if($timeout < '1000') {$timeout =5000;};
- $respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT * FROM form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$control = mysqli_result($sql,0,control);
-$impresion = formulario_imprimir("$id","$control","");
-
- }
-$siguiente = "
SIGUIENTE ";
-if($div ==''){
- $presentacion = "
$siguiente $impresion
";
- }else{
- //$respuesta->addAlert("$consulta");
- $respuesta->addScript("setTimeout(function(){xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout')},$timeout)");
- $respuesta->addAssign("$div","innerHTML","$siguiente $impresion");
- return $respuesta;
- }
-return " $presentacion";
-
-
-}
-$xajax->registerFunction("aplicacion_presentacion");
-
-function aplicaciones_listado($id_empresa,$id_form,$tipo,$div){
- $onclick ="";
- $contenido = "";
- $accion = "";
- $resultado_li = "";
- $resultado = "";
- $resultado_banner = "";
- $resultado_inicial = "";
- $resultado_final = "";
- $resultado_grid = "";
- $contenido_listado = "";
- $resultado_nav = "";
- $w_form = "";
- $divider = "";
- $li_barra="";
- $categoria = "";
- if($id_empresa !=''){
- if($id_form !="") {$w_form = " AND id = '$id_form'";}
- $w_publico =" publico ='1'";
- $w_empresa = " AND id_empresa = '$id_empresa' ";
- //$consulta = "SELECT * , form_id.id as id_formulario FROM form_id WHERE $w_publico $w_form $w_empresa ORDER BY orden asc limit 10 ";
- $consulta = "SELECT * , form_id.id as id_formulario FROM form_id WHERE $w_publico $w_form $w_empresa ORDER BY orden asc ";
- //xajax_contenido_parallax('$row[id]');
- }
- else {
- $consulta = "SELECT *, razon_social as nombre , form_id.id as id_formulario FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC ";
-
- }
- //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";}
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($link,$consulta);
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado_li .= "
";
- }else {$resultado_li = "";}
-
-if($tipo =='li') { return $resultado_li.$resultado;}
-elseif($tipo =='nav') { return $resultado_nav;}
-elseif($tipo =='lista') { return $resultado_barra;}
-elseif($tipo =='grid') {
-if($div !="") {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado_grid");
- return $respuesta;
- }else{
- return $resultado_grid;
- }
-}
-elseif($tipo =='banner') { return $resultado_banner;}
-elseif($tipo =='carrusel') { return $resultado_carrusel;}
-elseif($tipo =='sitemap') { return $resultado."sitemap";;}
-else {return $resultado;}
-}
-$xajax->registerFunction("aplicaciones_listado");
-
-
-function contenido_aplicacion($id,$plantilla){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
-
- $control = mysqli_result($sql,0,"control");
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysqli_data_seek($sql, 0);
-
- //$contenido = "
$nombre[0] ";
- $contenido = "
$descripcion[0] ";
-
- $orden = 0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- //return "$row[form_id] $row[control] $plantilla";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado
";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- if($id[0] =="") {$aviso = "
No se ha definido una aplicación con el nombre $nombre ";
- return $aviso;}
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
-
- mysqli_data_seek($sql, 0);
- $contenido = " ";
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado ";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-
-
-function contenido_parallax($id,$plantilla){
-$div = "contenedor";
-// $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *, control as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by id DESC limit 20 ";
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- $contenido = "";
- mysqli_data_seek($sql, 0);
-
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- //$orden = $orden+500;
- $identificador = explode(',',$row[identificador]);
- $identificador = $row['control']; $identificador[0];
-
-
- $campo_imagen = buscar_campo_tipo("$id","15");
- $imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[control]' ") ;
- if($imagen[0] ==""){$imagen[0] ="";}
- else{$imagen[0] = $imagen[0];}
-
-
-
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $nav_li .="
-
- ";
- $style .=" a[id= '$row[control]']:target ~ #main_$id article.article
- {
- -webkit-transform: translateY(-$orden"."px);
- transform: translateY( -$orden"."px );
- } ";
- $links .= "
";
- $contenido .= "
-
-
-
$contenido_desplegado
-
-
- ";
- $orden = $orden +800;
-
-
- $css .= "
-
- .parallax_$row[control] {
- /* The image used */
- background-image: url('milfs/images/secure/?file=600/$imagen[0]');
-
- /* Full height */
- height: 100%;
-
- /* Create the parallax scrolling effect */
- background-attachment: fixed;
- background-position: center;
- background-repeat: no-repeat;
- background-size: cover;
-}
-
- ";
- }
- $contenido = "
-
-
-
-
-
- $contenido
-
-
-
-
- ";
- }
-
-return " $contenido";
-// $respuesta->addAssign("$div","innerHTML","$contenido");
-// return $respuesta;
-
-}
-$xajax->registerFunction("contenido_parallax");
-
-function contenido_timeline($id){
-$div = "contenedor";
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- //$contenido = "
";
-//}else {$resultado ="
No se encontraron resultados "; return $resultado;}
-//if($id=="6" OR $id=="10") {
- $plantilla="";
- $class="";
- if($tipo =="array") {
- return $array;
-}
- if($tipo !="" AND (!is_numeric($tipo)) AND $tipo !="metadatos" ) {
-////Usa una plantilla apra cada id
-
-$plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
-$plantilla_buscada = $plantilla;
-$plantilla = $plantilla[0];
-if($plantilla =="") {
-///Usa una plantilla generica por nombre
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = ''") ;
-$plantilla = $plantilla[0];
-//$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = '$id' ") ;
-}
-if($plantilla !='') { $plantilla = html_entity_decode ( $plantilla );}
-/*else {
-$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"") ;
-$plantilla= $plantilla[0];
- }
- */
- }
-if($plantilla != ""){
-@eval("\$plantilla = \"$plantilla \";");
- $full ="$plantilla";
- /// $full = preg_replace("/<[^\/][^<>]*> *<\/[^<>]*>/", "", $full );
-
- }else {
- $full= "
$resultado
";
- }
-
- $resultado ="$full";
-
- return $resultado;
-
-// }else {$resultado ="
No se encontraron resultados "; return $resultado;}
- }else {$resultado =""; return $resultado;}
-}
-
-
-function subir_imagen($respuesta,$id,$tipo){
-$resultado ="";
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-
-if($id =="") {
- $empresa = $_SESSION['id_empresa'];
- $javascript = "../milfs/includes/upload.php";
- $path = "milfs/";
-}
-else {
-
-$id_empresa = remplacetas('form_id','id',"$respuesta",'id_empresa','');
-$empresa= $id_empresa[0];
-$web = remplacetas('empresa','id',"$empresa",'web','');
-if($tipo =="milfs"){
- $path = "../milfs/";
- $javascript = "../milfs/includes/upload.php";
-
-
- }else{
-
- $path = "milfs/";
- $javascript = "milfs/includes/upload.php";
-}
-
-}
-
-$campo_mapa = buscar_campo_tipo($respuesta,"14");
-$campo_mapa = $campo_mapa[0];
-if ($id ==''){$id='imagen';}
-$size = ($_SESSION['upload_size']*1024*1024)." bytes";
-$resultado ="
-
-
-
-
-
-
-
-La imagen debe estar en formato .jpg y de tamaño máximo $_SESSION[upload_size] MB ( $size)
-
-";
-return $resultado;
-
-}
-
-
-function formulario_importador($accion) {
-
- if($accion =='') {
- $resultado="
Importador";
-
- return $resultado;
- }
- $respuesta = new xajaxResponse('utf-8');
- $formulariox =formulario_importar('','menu','');
- $resultado="$formulariox
";
- $respuesta->addAssign("contenido","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("formulario_importador");
-
-
-function subir_archivo($perfil){
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//$empresa = remplacetas('form_id','id',"$perfil",'id_empresa','');
-//$web = remplacetas('empresa','id',"$empresa[0]",'web','');
-
-
-$id_empresa = remplacetas('form_id','id',"$respuesta",'id_empresa','');
-$empresa= $id_empresa[0];
-$web = remplacetas('empresa','id',"$empresa",'web','');
- $javascript = "includes/upload_archivo.php";
- $path = "//$web[0]/milfs/";
-
-///$javascript="https://tupale.co/milfs/includes/upload_archivo.php";
-$resultado ="
-
-
-
-
-
-Máximo 1MB
-
- ";
-
-
-return $resultado;
-
-}
-
- /*
-function formularios_muestra_listado($formulario){
-
- if($formulario==''){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ";
-$sql=mysqli_query($link,$consulta);
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado .="
";
- $resultado .= "Seleccionar formulario a importar ";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= " $row[nombre] ";
- }
-
- $resultado .=" ";
- }else {$resultado = "";}
-
- return $resultado;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $subir = subir_archivo($formulario) ;
- $div="importador_select";
- $resultado .= "$subir";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-$respuesta->addAssign("importador_archivo","innerHTML","");
-
-
-
-return $respuesta;
-}
-}
-$xajax->registerFunction("formularios_muestra_listado");
- */
-
-function formulario_importar_subir($formulario){
- $pie="";
- $respuesta = new xajaxResponse('utf-8');
- $formulario_nombre = remplacetas('form_id','id',$formulario,'nombre','') ;
- //$formulario_descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
- $encabezado = "
Importar $formulario_nombre[0] ";
- $subir = subir_archivo($formulario) ;
- $div="contenido";
-
- $muestra_form = "
-
- $subir
-
-
- ";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$encabezado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-return $respuesta;
-
-}
-$xajax->registerFunction("formulario_importar_subir");
-
-
-function formulario_importar($filename,$accion,$perfil){
-$formulario = "";
-$consulta = "";
-$div = "importador_archivo";
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$resultado = "
-
-
-
-
- Importando formulario ";
-$nombre = "/tmp/$filename";
-if($accion == "grabar") {
-}
-if (($handle = fopen($nombre, 'r')) !== FALSE)
- {
- $fila= 0;
- set_time_limit(0);
-while (($datos = fgetcsv($handle,0,"|")) !== FALSE) {
-$numero = count($datos);
-if($fila >=1) {
-$resultado .= "";
-$numero_columna = 0;
-if($campo[0] =="control") {
-$controlcito= "$datos[0]";
- }else{$controlcito="";}
-if($campo[1] =="equipo") {
-$equipo= "$datos[1]";
- }else{
-if( isset($_SESSION['equipo'])) { $equipo = $_SESSION['equipo']; }else{$equipo=NULL;}
-}
-
-if($campo[2] =="timestamp") {
-$timestamp= "$datos[2]";
-$w_timestamp = "timestamp = '$timestamp',";
- }else{
-$w_timestamp ="timestamp= '".time()."',";
-}
-
-for ($c=0; $c < $numero; $c++) {
-$columna = $datos[$c];
-
-if($columna !=""){
- if($controlcito !="") { $control="$controlcito";}else{
- $control=md5($perfil.$fila.time());
-}
-if($accion === "grabar"){
-//$control=md5($perfil.$fila.time());
-$ip = obtener_ip();
-$graba_ip = " ip = INET_ATON('".$ip."') ";
-$consulta_campos = "INSERT INTO form_datos SET $w_timestamp id_usuario='$_SESSION[id]',id_empresa='$_SESSION[id_empresa]',form_id ='$perfil',
-$graba_ip ,
-control = '$control', $consulta id_campo = '$campo[$numero_columna]' , contenido = '$columna', equipo = '$equipo'";
- // $verificar_campo = formulario_verificar_campo($perfil,$campo[$numero_columna]);
- $elregistro= $campo[$numero_columna];
- //if($verificar_campo == NULL){}else{
- if(is_numeric($elregistro)) { $elregistro =$elregistro;}else {$elregistro = -9;}
- //$verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$elregistro,'campo_nombre','');
- if($campo_existe[0] == ""){}else{
- $sql = mysqli_query($link,$consulta_campos);
- if($sql) {
- $class='success';
- $sql_resultado = " ";
- $resultado = "GRABADO $fila".time();
- //$sql_resultado = "oK";
- }
- else {
- $class='danger';
- }
- }
- }
-}
-//$resultado .= "$columna ( $control ) //- $controlcito - // $sql_resultado ";
-$numero_columna ++;
- }
- $resultado .= " ";
- }
- else {
- $resultado .= "";
-
- $posicion = 0;
- for ($c=0; $c < $numero; $c++) {
- $titulo = $datos[$c] ;
- $campo[$posicion] = $datos[$c];
-
- if(($titulo != "equipo") and ($titulo != "control" ) and ($titulo != "timestamp" ) ) {
- if(is_numeric($titulo)) { $titulo =$titulo;}else {$titulo = -9;}
- $verificar_campo = formulario_verificar_campo($perfil,$titulo);
-
- $campo_existe = remplacetas('form_campos','id',$titulo,'campo_nombre','');
- if($verificar_campo == NULL){$verificar_campo_aviso =" No existe "; $class='danger';
- if($campo_existe[0] !='') { $verificar_campo_aviso =" No está en el formulario ";$class='warning';}
- }
-
- else{$verificar_campo_aviso =""; $class='success';}
-}else{$verificar_campo_aviso =""; $class='success';}
- $resultado .= "$titulo $campo_existe[0]$verificar_campo_aviso ";
- $posicion ++;
- }
-
-
- $resultado .= " ";
- }
- $fila++;
- }
-
-
- $resultado .= "
-
$fila ".time()." " ;
- }
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}
-
-$xajax->registerFunction("formulario_importar");
-
-
-
-function formulario_verificar_campo($perfil,$id_campo){
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "SELECT * FROM `form_contenido_campos` WHERE `id_form` = '$perfil' AND id_campo='$id_campo'";
-$sql =mysqli_query($link,$consulta);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
-$existe = NULL;
-
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$obligatorio=mysqli_result($sql,0,"obligatorio");
-$existe[]= $control;
-$existe[]= $obligatorio;
-$existe[]= $consulta;
-
-}
-
-return $existe;
- }
-
-function borrar_tmp($div) {
-if($div =='') {
- $div="borra_tmp";
-$resultado ="
Limpiar ";
-
-return $resultado ;
-}
-$dir = "tmp/";
-
-$ficheroseliminados= 0;
-$handle = opendir($dir);
-while ($file = readdir($handle)) {
- if (is_file($dir.$file)) {
- if ( unlink($dir.$file) ){
- $ficheroseliminados++;
- }
- }
-}
-$fecha = time ();
-$ahora = date ( "Y-m-d h:i:s" , $fecha );
-$resultado ="
$ahora
";
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("borrar_tmp");
-
-
-function formulario_imprimir_linea($id,$control,$tipo) {
- $td="";
- $lazy="lazy";
- $resultado="";
- $limit="";
- $print="";
- $interaccion_campo="";
- $campo_interaccion="";
- $interaccion_form="";
- $id = mysql_seguridad($id);
- $tipo_original = $tipo;
-
- if(is_array($tipo_original) and $tipo[0]=='interaccion_linea'){
- if($tipo[1] !=""){
- $campo_interaccion = $tipo[1];
- $area = "$tipo_original[2]";
- if($area !=""){ $consulta_area= "SELECT * FROM form_datos,form_campos WHERE form_datos.id_campo=form_campos.id AND (form_campos.campo_area = '$area' OR form_campos.id='$campo_interaccion' )AND control = '$control' GROUP BY id_campo ";}
- $interaccion_campo =interaccion_identificador("$control","",'check',"$tipo[1]");//"";
- $clase_interaccion="warning";
-
- }else{
- $interaccion_form =interaccion_identificador("$control",'','check','');//"";
- $campo_interaccion="";
- }
- $tipo ="linea_planilla";
-
- }elseif(is_array($tipo_original) and $tipo[0]=='titulos'){
- $tipo='titulos';
- $campo_interaccion = "$tipo_original[1]";
-
- $area = "$tipo_original[2]";
- if($area !=""){ $consulta_area= "SELECT * FROM form_datos,form_campos WHERE form_datos.id_campo=form_campos.id AND (form_campos.campo_area = '$area' OR form_campos.id='$campo_interaccion' ) GROUP BY id_campo ";}
-
- }else{}
-
-
-
-
- $csv ="";
-
- //if($id !='') {$w_id = "AND form_id = '$id'";}
- $control = mysql_seguridad($control);
-/* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC
- ";
- */
- if($id !='') {
- /* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
-
- ORDER BY form_contenido_campos.orden ASC $limit
- ";*/
- $consulta = "SELECT * FROM form_contenido_campos,form_campos WHERE form_contenido_campos.id_campo = form_campos.id AND form_contenido_campos.id_form = '$id' ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
-
-// $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- $consulta = "SELECT * FROM form_datos,form_campos WHERE form_datos.id_campo=form_campos.id and form_datos.control = '$control' GROUP BY id_campo" ;
- }
-
-//if($consulta_area !=""){ $consulta= $consulta_area;}
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if($id !='') {$id = $id;}else {$id=mysqli_result($sql,0,"form_id");}
-
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
-
- $titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo = $titulo[0];
-
-$timestamp=mysqli_result($sql,0,"timestamp");
-$fecha = date ( "Y-m-d h:i:s" , $timestamp);
-//return "Hola mundo";
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-// $resultado ="
";
- $imagen = formulario_valor_campo("$id","0","","$control","","");
- $imagen = $imagen[3];
- if($imagen[3] != null AND $tipo !='titulos') {
- $array[image]=$imagen;
- $imagen_icon="secure/?file=150/$imagen";
- $imagen= " ";
-$td .= "$imagen ";
- }else {$imagen='';}
-
-if(!isset($_REQUEST['print'])) { $src ="data-src";}else{ $src =" print src"; }
-//return " id= $id // $consulta" ;//print_r($tipo_original);
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- $campo_area =$row['campo_area'];
- if($row['id_campo'] == $campo_interaccion){$interaccion = $interaccion_campo; $col_checkeo_td ="$interaccion_form $interaccion "; $clase_interaccion="warning";}else{ $interaccion=""; $clase_interaccion="";}
- if($campo_interaccion !=""){
- if(($area !="") AND $row['campo_area'] == $area or ($row['id_campo'] == $campo_interaccion)){$class_area = "info" ;}else{ $class_area="hidden $area area_$row[campo_area]"; }
- }else{
- $class_area = "visible" ;
- }
- $checkin = remplacetas('form_parametrizacion','item',$control,'timestamp'," opcion ='1' AND descripcion ='$row[id_campo]'");
- if($checkin[0] !=""){ $checkin= "$checkin[0]";}else{$checkin="";}
- if($tipo_original[3] =="checkeo"){ $col_checkeo_titulo =" "; $col_checkeo_td ="$checkin $interaccion ";}else{$col_checkeo_titulo =""; $col_checkeo_td ="";}
-
- if($row['campo_tipo'] == 18){$class_area = "hidden" ;}else{ $class_area=$class_area; }
-
- $campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo',"");
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'',"");
- //return "$row[id_campo]";
- $contenido_completo= $contenido[3];
- $md5_contenido = $contenido[4];
- //md5(binary contenido) as md5_contenido,
- $contenido_original = $contenido;
- //$control = $contenido[0];
- $contenido = $contenido[3];
- $campo_nombre = remplacetas('form_campos','id',$row['id_campo'],'campo_nombre',"");
- $campo_nombre[0] =" $campo_nombre[0]";
-
-
- if($tipo=="titulos") {
- $contenido = "$campo_nombre[0]";
- }
- elseif($tipo=="titulos_csv"){
- $csv .= '"'.$campo_nombre[0].'";';
- }
- elseif($tipo=="linea_csv"){
- $csv .= '"'.$contenido.'";';
- }
- elseif($tipo=="linea_planilla"){
-
- if($contenido !="") {
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
-
- if($size > $limite) {
-
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' ){
- if( $tipo=="") {
- $size="300";
- }else {
- $size="150" ;
- }
- if($contenido !=""){$contenido = " "; }
- else{$contenido="";}
- }
- elseif($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- //@require("includes/datos.php");
- //$url_pin =urlencode("$_SESSION[site]milfs/images/iconos/pin.png");
- //http://staticmap.openstreetmap.de/staticmap.php?center=40.714728,-73.998672&zoom=14&size=865x512&maptype=mapnik
-
- $contenido = "
-
- ";
- } else { $contenido ='';}
-
- //return "vacio";
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='18'){ $contenido = "";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = $contenido;}
- elseif($campo_tipo =="6" ) {$contenido =imprimir_buscador_campo($row[id_campo],$contenido) ;}
- elseif($campo_tipo=='29'){ $contenido=" ";}
- elseif($campo_tipo=='30'){ $contenido= json_render("$contenido_completo","html","$control");}
- elseif($campo_tipo=='10'){ // $valor_actual = relacion_render("$formulario","$id_campo","$row[contenido]",'0','relacion_drop');
- $contenido = relacion_render("$id","$row[id_campo]",$contenido,'5','relacion_print');
- //$contenido= json_render("$contenido_completo","html","$control");}
- //json_render("$valor","csv","$control");
- }
- else {$contenido = $contenido;//Markdown(strip_tags ($contenido));
- }
-
- $csv .= "$contenido $col_checkeo_td";
- }else{ $csv.=" $col_checkeo_td";}
- }
- elseif($tipo=="array"){
-
- if($row['id_campo'] == $titulo){$array['title']=$contenido;}
- if($row['id_campo'] == $categoria_campo){
- $array['category']=$contenido;
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- //$icono[0] = $imagen_icon;
- if($icono[0] =='') {
- //$icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $array[icon][iconUrl] = "$icon";
- //$array[icon][iconSize] ="[50,50]";
- //$array[icon][shadowSize] =[70,70];
- //$array[icon][shadowUrl] = "http://$_SERVER[HTTP_HOST]/milfs/images/iconos/sha.png";
-
- }else{}
- $array[$row[id_campo]] = $contenido;
- }
- else{
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
- if($size > $limite) {
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' AND $tipo !="csv"){if($contenido !=""){$contenido = " "; }else{$contenido="";}}
- if($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- // @require("includes/datos.php");
- $contenido = "
- ";
- } else { $contenido ='';}
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='18'){ $contenido = "";}
-
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = $contenido;}
- elseif($campo_tipo =="6" ) {$contenido =imprimir_buscador_campo($row[id_campo],$contenido) ;}
- else {$contenido = $contenido."" ; //Markdown("$contenido");
- }
-
- }
-
-
- if($tipo=="titulos" ) {
- if($campo_tipo=='18'){ $contenido = "";}
- if($row['id_campo'] == $campo_interaccion){$clase_interaccion="warning";}else{ $clase_interaccion="";}
-
-$td .= "$contenido $col_checkeo_titulo";
-
- }else{
-
- $td .= "$contenido $col_checkeo_td";
- }
- if($campo_tipo=='18'){ $td .= "";}
-
- }
-
-if($tipo=="titulos") { $identificador ="Identificador "; }
-else {$identificador =" $control $interaccion_form ";}
- $resultado .="$td $identificador ";
-}else{
-
-//return "Hola mundo";
-}
- if($tipo =='titulos_csv' or $tipo=='linea_csv') {
-
-return $csv;
- }
- if( $tipo=='linea_planilla') {
-$tabla=" $csv $identificador";
-return " ".$tabla;
- }
- if($tipo =="array") {
- //$array["title"]="hola mundos";
- return $array;
- }
- return $resultado;
-}
-
-
-// $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-function mostrar_coincidencias_plantilla($id_form,$filtro,$valor,$plantilla) {
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-//mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($link,$consulta);
-$control=mysqli_result($sql,0,"control");
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) )
- {
-$resultado .= contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- }
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias_plantilla");
-
-
-function mostrar_coincidencias($id_form,$filtro,$valor) {
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-//mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) )
- {
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $campos .= " $depliegue ";
-
- }
- $resultado = "
";
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias");
-
-
-function matriz_formulario($formulario,$div,$registros,$pagina,$formato){
- $respuesta = new xajaxResponse('utf-8');
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$md5_filtro = $formulario["campo_filtro"];
-//$formulario = mysql_seguridad($formulario);
-mysqli_real_escape_string($link,$formulario);
-$perfil = $formulario["form_id_id"];
-$filtro = $formulario["campo_filtro"];
-$control = md5(rand(1,99999999).microtime());
-
-$cantidad = formulario_contar($perfil);
-$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_filtro'";}
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{
- $resultado ="
Por favor seleccione un formulario";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-if($cantidad < 1) {
- $resultado ="
-
- El formulario \"$formulario_nombre[0]\" no tiene registros
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
-}
-
-$fecha_inicio = $formulario["inicio"];
-if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
-$fin = $formulario["fin"];
-$id_campo = $formulario["id_campo"];
-$busqueda = $formulario["busqueda"];
-
-if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";}
-if($id_campo ==''){
- $campo ='';
-
- }else{
- if($busqueda =='') {
- $resultado ="
Por favor escriba una palabra para buscar";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
- $campo ="AND id_campo = '$id_campo'";
-
- }
-
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';}
-
-
-
-$consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
- FROM form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_datos.id_empresa = '$_SESSION[id_empresa]'
- $busca
- $perfil
- $campo
- $w_filtro
- AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio')
- AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden";
-
-
-
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)==0){
- $resultado ="
No hay resultados 0008 ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
-if (mysqli_num_rows($sql)!=0){
- $total_registros = mysqli_num_rows($sql);
- if($formato=='csv'){
- $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv";
- $boton_descarga ="
Descargar ";
- $archivo_reporte=fopen($nombre_archivo , "w");
- $encabezado =";;Periodo\n;;$inicio\n;;$fin \n ";
- fputs ($archivo_reporte,$encabezado);
- $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n";
- fputs ($archivo_reporte,$titulo);
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) )
- {
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv');
- $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv');
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $linea = $linea."\n";
- $lineas .= $linea;
- }
- $contenido ="$titulo \n $lineas";
- //rewind($archivo_reporte);
- fputs ($archivo_reporte,$contenido);
- $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga);
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
- }
- else{
- $respuesta ="
No hay resultados 0009
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
-
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($link,$consulta_limite);
- if (mysqli_num_rows($sql)!='0'){
- $botones .= "
Limpiar ";
- if($formato!='csv'){
- $botones .= "
- Exportar
- ";
- }
- $paginacion ="";
- $paginacion .= $indice;
- $encabezado = "
-
-
-
$botones $paginacion $total_registros registros
-
-
";
-$fila=0;
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $menu ="
-
-
-
- ";
- $campos .= "
$menu $depliegue ";
- }
- $resultado .="
";
- }else{
- $resultado .="
No hay resultados 0010 ";
- }
- //$resultado .="$consulta";
-$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado);
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-} $xajax->registerFunction("matriz_formulario");
-
-
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-/// depende de la funcion mysqli_result por compatibilidad hacia atras
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($link,$consulta);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
-$resultado[] = @mysqli_result($sql,0,"timestamp");
-$resultado[] = @mysqli_result($sql,0,"form_id");
-$resultado[] = @mysqli_result($sql,0,"id_usuario"); //6
-$resultado[] = @mysqli_result($sql,0,"id_empresa"); //7
-$resultado[] = @mysqli_result($sql,0,"equipo"); //8
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- $resultado[4] = NULL;
- $resultado[5] = NULL;
- $resultado[6] = NULL;
- $resultado[7] = NULL;
- $resultado[8] = NULL;
- }
-return $resultado;
-}
-
-function mysqli_result($res,$row=0,$col=0){
- $numrows = @mysqli_num_rows($res);
- if ($numrows && $row <= ($numrows-1) && $row >=0){
- mysqli_data_seek($res,$row);
- $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res);
- if (isset($resrow[$col])){
- return $resrow[$col];
- }
- }
- return false;
-}
-function remplacetas_orden($tabla,$campo,$valor,$por,$and,$orden){
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND $orden limit 1";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!= FALSE){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
-$resultado[] = mysqli_result($sql,0,"timestamp");
-$resultado[] = mysqli_result($sql,0,"form_id");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- $resultado[4] = NULL;
- $resultado[4] = NULL;
- }
-return $resultado;
-}
-
-
-function input_campos($perfil,$name){
- $listado ="";
- $respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-
-
-$resultado = "
-
- ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-
-
- $listado .="$row[campo_nombre] ";
-
- }
-$resultado .= " $listado ";
- }
-else{$resultado = '';}
-
-
-
-return $resultado;
-
- }
-
-function formulario_campos_select($perfil,$div,$onchange){
- $listado ="";
- $respuesta = new xajaxResponse('utf-8');
- if($onchange =="filtro") { $onchange = "onchange=\"xajax_formulario_campos_filtro('$perfil',(this.value),'filtro_$perfil'); \" ";}
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-
- $categoria = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," opcion = 'categoria'") ;
- $categoria = $categoria[0];
-$resultado = "
Campo
-
- Todos los campos ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-if($div =='') {
- if ($row['id_campo'] == "$categoria"){
- $class="active";
- $filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
- }else { $class=""; $filtro ='';}
- $listado .="$row[id_campo] $row[campo_nombre] $filtro ";
- }
- }
-$resultado .= "
-
";
- }
-else{$resultado = '';}
-
-if($div =='') {return $listado;}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("formulario_campos_select");
-
-
-function formulario_campos_filtro($perfil,$campo,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
- Filtro
-
- Seleccione ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
";
- }
-else{$resultado = "
No se encontraron resultados
";}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_campos_filtro");
-
-
-//$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo","$id_campo");
-function formulario_consultar($div){
- if($div==''){
- $div = "contenido";
- $resultado = "
Consultas";
- return $resultado;
- }
- $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'",'');
- $fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $peticion = "
-
-
-
-
-
-
-
-
- Formulario
- $formulario
-
-
-
-
-
-
-
-
Consultar
-
-
-";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$peticion);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_consultar");
-
-
-function formulario_campos_procesar($form,$tipo_accion){
- //$form = mysql_seguridad($form);
- $campos_formulario ="";
-$grabar_campos_valores ="";
-$respuesta = new xajaxResponse('utf-8');
-$campo_nombre = $form["campo_nombre"];
-if($campo_nombre =='') {
-$respuesta->addAlert("El Nombre del campo no puede estar vacío");
-$respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
-return $respuesta;
-}
-
-//$campo_nombre = ucfirst(strtolower($campo_nombre));
-@$campo_descripcion = $form["campo_descripcion"];
-@$campo_tipo = $form["campo_tipo"];
-@$campo_area = $form["campo_area"];
-if($campo_area =="") { $campo_area="1";}
-@$misma_area = $form["misma_area"];
-@$campo_orden = $form["campo_orden"];
-@$campo_identificador = $form["campo_identificador"];
-@$activo = $form["activo"];
-@$tipo = $form["tipo"];
-@$editar = $form["editar"];
-@$id_campo_editar = $form["id_campo_editar"];
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-if ($editar == 'editar' AND $tipo_accion =='editar'){
-mysqli_query($link,"
- UPDATE `form_campos`
- SET `campo_nombre` = '$campo_nombre',
- `campo_descripcion` = '$campo_descripcion',
- `orden` = '$campo_orden' ,
- `campo_area` = '$campo_area',
- `campo_tipo` = '$campo_tipo',
- `id_empresa` = '$_SESSION[id_empresa]',
- `activo` = '$activo'
- WHERE `form_campos`.`id` ='$id_campo_editar'
- LIMIT 1");
-$w_campo = "id = '$id_campo_editar'";
-
- }else {
-$id_empresa = $_SESSION['id_empresa'];
-$id_especialista = $_SESSION['id'];
- $buscar_campo_nombre = remplacetas('form_campos','campo_nombre',$campo_nombre,'campo_nombre'," id_empresa = '$id_empresa' AND campo_area = '$campo_area' ") ;
- if($buscar_campo_nombre[0] == $campo_nombre) {
- $respuesta->addAlert("El Nombre del campo ( $campo_nombre ) ya existe en la misma área ");
- $respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
- return $respuesta;
- }
-if($campo_identificador == "") { $campo_identificador = md5($_SESSION['id_usuario']."-".microtime()); }
-$consulta = "
- INSERT INTO `form_campos`
- (`id_especialista`, `campo_nombre`,`campo_descripcion`,`campo_tipo`, `campo_area`, `orden`, `activo`, `identificador`, `id_empresa`)
- VALUES ('$id_especialista','$campo_nombre','$campo_descripcion','$campo_tipo','$campo_area','$campo_orden','1','$campo_identificador','$id_empresa')";
- $sql =mysqli_query($link,$consulta);
- $ultimo_id = mysqli_insert_id($link);
-$w_campo= "identificador = '$campo_identificador'";
-if($sql) {
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'div_campos')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
- $campos_formulario ="
-
-
- El campo se creó con éxito
- Crear un nuevo campo
- Modificar campo $listado_campos
- ";
- if(@$form['agregar_id_form'] !="") {
- $respuesta->AddScript("xajax_agregar_campos('grabar_campos','contenido','$ultimo_id','$form[agregar_id_form]') ");
- ///$respuesta->addAssign("$div","innerHTML",$resultado);
- //return $respuesta;
- }
- }else {$campos_formulario = "
Problemas al grabar el campo $consulta";}
- }
-
-if($id_campo_editar !='' AND $tipo_accion =='editar'){$id_form_campo = $id_campo_editar;}else {
-//$id_form_campo = mysqli_insert_id($link);
-$id_form_campo = $ultimo_id;
-}
-//$respuesta->addAlert("( $campo_tipo / $id_form_campo / $ultimo_id / $form[opciones] ) $consulta");
-//$respuesta->addAssign("contenido","innerHTML","$consulta_campos_valores");
-//return $respuesta;
-if($campo_tipo == '23' ){
-$grabar_campos_valores = "(".$id_form_campo.",'".$form[opciones]."')";
-}
-/// separacion por comas
-else {
-$opciones=str_replace(', ',',',"$form[opciones]");
-$opciones = explode(",",$opciones);
-
-foreach($opciones as $c=>$v){
-
- //if($v !='') {$v = ucfirst(strtolower($v));
- if($v !='') {$v = trim($v);
-
-$grabar_campos_valores .= "( $id_form_campo ,'$v'),";
- }
-
- }
-$grabar_campos_valores =substr ("$grabar_campos_valores",0,-1);
-} /// fin de separacion por comas
-
-$borrar_campos_valores = "DELETE FROM `form_campos_valores` WHERE `id_form_campo` = '$id_form_campo'";
-$consulta_campos_valores = "INSERT INTO form_campos_valores (id_form_campo,campo_valor) VALUES ".$grabar_campos_valores."";
-
- $sql_borrar_campos_valores =mysqli_query($link,$borrar_campos_valores);
- $sql_campos_valores =mysqli_query($link,$consulta_campos_valores);
-
- $campos=mysqli_query($link,"
- SELECT id_form_campo, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, orden
- FROM `consulta_campos` , `tipo_campo`
- WHERE $w_campo
-
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- LIMIT 1");
-
-$edicion = "
$campo_nombre ";
-$campos_formulario .= "
$edicion
";
-while( @$row = mysqli_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "
".$row['orden']."";}
-else{
-$campos_formulario .= "
".$row['orden']." ";
- } }
-if($id_campo_editar !='') {
-$respuesta->addAssign("contenido_$misma_area"."$id_form_campo"."","innerHTML",$campos_formulario);
-}else {
-$respuesta->addAssign("contenido_$misma_area","innerHTML",$campos_formulario);
-}
-return $respuesta;
-}$xajax->registerFunction("formulario_campos_procesar");
-
-
-
-function formulario_opciones_select($tipo,$id_campo){
- $valores="";
- $respuesta = new xajaxResponse('utf-8');
- $div = 'opciones_select';
-if($id_campo !=''){
-$consulta= "SELECT * FROM form_campos_valores WHERE id_form_campo = '$id_campo'";
-$link = Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-while( $row = mysqli_fetch_array( $sql ) ) {
- $valores .= "$row[campo_valor],";
- }
- $valores = substr($valores,0,-1);
- }
- }
-if($tipo =='8'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='9'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='16'){
- if($valores =='') {$valores = "1,10";}
-$resultado = "
$valores ";
- }
-elseif($tipo =='17'){
- $resultado ="
";
-}elseif($tipo =='10'){
- $resultado ="
$valores ";
-}elseif($tipo =='6'){
- $resultado ="
$valores ";
-}elseif($tipo =='3'){
- $resultado ="
$valores ";
-}elseif($tipo =='33'){
-
- if ($valores =='diario') {$selected_diario= "checked"; $selected_historico ="";}
- if ($valores =='historico') {$selected_diario= ""; $selected_historico ="checked";}
- $resultado ="
-
- Reinicio diario
-
-
-
-
- Sin reinicio
-
-
-
";
-}
-else{
-$resultado = "
$valores ";
-}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_opciones_select");
-
-
-
-function crear_campos_formulario($form,$id_form){
- $id_form=$id_form;
- $area="";
- $Campo_tipo_definido="";
- $Tipo_campo="";
- $campo_nombre ="";
- $campo_descripcion ="";
- $editar ="";
-
-$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-if($form['div'] !="") { $div = $form['div'];}else{$div="div_campos";}
-
-@$especialista = $form["id_especialista"];
-@$id_campo_editar = $form["id_campo_editar"];
-$resultado = "
-
-$id_campo_editar";
-$link = Conectarse();
-mysqli_set_charset($link, "utf8");
-$capa = "crear_campos_consulta_$area";
-$formulario ="manejo_campos_$area";
-
-if ($id_campo_editar > 0){
-$sql=mysqli_query($link,"SELECT * FROM form_campos WHERE id = '$id_campo_editar' AND activo ='1'");
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .="";
-$campo_descripcion =$row['campo_descripcion'];
-$campo_nombre =$row['campo_nombre'];
-$orden =$row['orden'];
-$especialista =$row['id_especialista'];
-
-$formulario ="manejo_campos_$id_campo_editar";
-$editar="
-
-
-
";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
- }
-
-$Tipo_campo ="
Tipo:
-
";
-$tipos=mysqli_query($link,"
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1' ORDER BY tipo_campo_nombre
- ");
-while( $row = mysqli_fetch_array( $tipos ) ) {
-
-if($row['id_tipo_campo'] == $Campo_tipo_definido){
-$Tipo_campo .= " > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row['tipo_campo_nombre']." [".$row['id_tipo_campo']."] ";
-}
-$Tipo_campo .="
";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-
-
-
- Incluir este campo en el formulario actual
-
-
- ";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]' or id_empresa ='1' ",'campo_area',"");
-$resultado .= "
-
-
-
-
-
-
-
- Nombre del campo
-
-
-
-
-
-
- Estado
-
- Activo: el campo puede ser usado en formularios
- Inactivo: El campo NO se usará
-
-
-
-
-
-
-
- Área o grupo del campo
- $areas
-
-
-
-
- Descripción o ayuda para el campo
- $campo_descripcion
-
-
-
-
-
-
-
- $agregar_a_formulario
-
- Grabar
-
-
- $editar
-
-
-
-
-
-
";
-$resultado = "
-
-
- Crear un nuevo campo
- $resultado
-
-";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("crear_campos_formulario");
-
-function formulario_crear_campo($area,$campo,$div){
- $campos_formulario="";
- $misma_area="";
-$respuesta = new xajaxResponse('utf-8');
- if($div==''){
- $div = "contenido$campo";
- $cerrar = "
[X] ";
-$resultado = "
Campos ";
-
- return $resultado;
- }
- //$div="div_campos";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta_campos ="SELECT id, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, form_campos.activo, form_campos.campo_tipo
- FROM `form_campos` , `form_tipo_campo`
- WHERE id_empresa = '$_SESSION[id_empresa]' AND id = $campo
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- ORDER BY orden ASC";
- $campos=mysqli_query($link,$consulta_campos);
-if($campo ==''){
-
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'$div')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
-$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-$tabla_campos = campos_tabla('id_especialista','','20','0','');
- $buscador = campos_buscador("","");
-$campos_formulario = "
-
-
-
-
-
-
-
-
-
-
-
-
$buscador
-
$tabla_campos
-";
-}else{
-$campos_formulario .= "
";
-while( $row = mysqli_fetch_array( $campos ) ) {
-// if($row[campo_tipo] =='8'){
- $respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-// }
- $Tipo_campo ="
Tipo:
-
";
-$tipos=mysqli_query($link,"
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ");
-while( $row_tipo = mysqli_fetch_array( $tipos ) ) {
-
-if($row_tipo['id_tipo_campo'] == $row['campo_tipo'] ){
-$Tipo_campo .= " > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-if($row['activo'] =='1'){$activo = "
Activo: el campo puede ser usado en formularios ";}
-else{$activo = "
Inactivo: El campo NO se usará ";}
-$formulario = "editar_campos_$row[id]";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]' or id_empresa ='1'",'campo_area',"$row[campo_area]");
-$edicion = "$row[campo_nombre]";
-$campos_formulario .= "
-
-
-
-
-
-
-
-
-
-
-
- Nombre del campo
- $row[campo_nombre]
-
-
-
- $Tipo_campo
-
-
-
- Estado
-
- $activo
- Activo: el campo puede ser usado en formularios
- Inactivo: El campo NO se usará
-
-
-
-
-
-
-
-
- Área o grupo del campo
- $areas $row[campo_area]
-
-
-
-
-
- Descripción del campo
- $row[campo_descripcion]
-
-
-
-
-
-
-
-
-
-
-
-
-
- ";
-
- }
- }///fin de edicion
-
-
-
-$respuesta->addAssign($div,"innerHTML",$campos_formulario);
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_crear_campo");
-
-function agregar_campos($tipo,$div,$id,$formulario){
-$respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-if($tipo==''){
- $div="contenido";
-$resultado = " Editar ";
-print $resultado;
-return;
- }
- if($tipo=='consultar_listado'){
- $consulta="SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ASC";
- $sql =mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado .="Formulario: ";
-$resultado .= "Selecciona ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "$row[nombre] ";
- }
-$resultado .=" $cerrar";
- }else {
-$resultado = " No hay formularios para editar
";
- }
- }
-
-if ($tipo=='consultar_campos'){
- /// restringe campo a propios form_campos.id_empresa = '$_SESSION[id_empresa]' AND
- $consulta="
- SELECT form_contenido_campos.id_campo, form_contenido_campos.id,
- campo_nombre, obligatorio,control,multiple,form_contenido_campos.orden, form_campos.campo_tipo
- FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_form = $id
- AND form_contenido_campos.id_campo = form_campos.id
- ORDER BY form_contenido_campos.orden";
- $sql =mysqli_query($link,$consulta);
- $consulta_nombre="SELECT * FROM form_id WHERE id ='$id'";
- $sql_nombre =mysqli_query($link,$consulta_nombre);
- $nombre =mysqli_result($sql_nombre,0,"nombre");
- $id_formulario = $id;
- //if (mysqli_num_rows($sql)!='0'){
-$resultado ="$cerrar$nombre
- ";
-
- $parametrizacion = parametrizacion_titulo("$id",'','') ;
-$resultado .= "Configuración del formulario
-
- ";
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- /* $multiple = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = '$row[id]' AND descripcion REGEXP '^multiple:' ") ;
- $multiple = explode(":",$multiple[0]);
- $multiple = $multiple[1];*/
-
- //$multiple = $multiple[0];
-
- $privado = remplacetas('form_parametrizacion','campo',"$id_formulario",'opcion'," tabla='form_id' AND descripcion ='$row[id_campo]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
- if($privado == "") { $privado="0";}
- if($row['obligatorio'] =='0') { $valor_obligatorio ='1'; $obligatorio_check='';}else{$valor_obligatorio='0'; $obligatorio_check='checked'; }
- if($row['multiple'] =='0') { $valor_multiple ='1'; $multiple_check='';}else{$valor_multiple='0'; $multiple_check='checked'; }
- if($privado =='0') { $valor_privado ='1'; $privado_check='';}else{$valor_privado='0'; $privado_check='checked'; }
-
-
-$edicion = " Editar ";
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"",'') ;
- //$multiple = $multiple[0];
-
-
-$resultado .= "
-
-
- Campo: $row[campo_nombre] Id: $row[id_campo] Tipo: $tipo_nombre[0]
-
-
-
-
-
";
- }
-
-$consulta_campos_todos ="SELECT form_campos.id, form_campos.campo_nombre, form_campos.campo_descripcion FROM form_campos WHERE form_campos.id_empresa = '$_SESSION[id_empresa]' OR form_campos.tipo_contenido ='1'
- ORDER BY campo_nombre ";
-$sql_consulta_campo =mysqli_query($link,$consulta_campos_todos);
-
-$crear_nuevo ="
-
-
-
-
-
-
-
-
-";
- while( $row = mysqli_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "$row[campo_nombre] [$row[id]] ";
- }
-$resultado .="
-
-
-
-$crear_nuevo ";
-
- }/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
- if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado=" Seleccione un campo";}
-else {
-$id_form=func_get_arg(3);
-$consulta = "SELECT id_campo FROM form_contenido_campos WHERE id_empresa = '$_SESSION[id_empresa]' AND id_campo= '$id' AND id_form= $id_form";
-$sql_consulta =mysqli_query($link,$consulta);
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if(mysqli_num_rows($sql_consulta) =='0') {
-$microtime = microtime();
-$orden = remplacetas('form_contenido_campos','id_form',$id_form,'orden',"") ;
-$nuevo_orden = $orden[0]+1;
-$consulta_grabar=" INSERT INTO form_contenido_campos (
-`id_campo` ,
-`id_empresa` ,
-`orden` ,
-`id_form` ,
-`obligatorio`,
-`control`
-)
-VALUES (
-'$id', '$id_empresa','$nuevo_orden', '$id_form', '0', md5('$microtime' + rand())
-)";
-$sql_consulta_grabar =mysqli_query($link,$consulta_grabar);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_form')");
-return $respuesta;
- }else{
-$div='atencion';$resultado=" El campo ya pertenece a este formulario ";
- }
- }
-
- }///fin de grabar_campos
-
-if($tipo=='eliminar'){
-$confirmar=func_get_arg(3);
-
-
-if($id==''){
-$id_c=func_get_arg(4);
-$capa_original=func_get_arg(5);
-$resultado = "
- Seguro que desea eliminar el campo de esta consulta?
- [SI]
- [NO]
-
- ";}
- else{
- if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "
- Quitar del formulario
- ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{
-$consulta="DELETE FROM `form_contenido_campos` WHERE `control` = '$confirmar' LIMIT 1";
-$sql_consulta_eliminar = mysqli_query($link,$consulta);
-$div=func_get_arg(5);
-$id_consulta=func_get_arg(4);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_consulta')");
-
- }
- }
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }/// fin de eliminar
-if($tipo == 'obligatorio'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `obligatorio` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($link,$consulta);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-if($tipo == 'orden'){ /// orden
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `orden` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($link,$consulta);
-$a =" $id
- ";
-
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-
-if($tipo == 'prellenado'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `consulta_tipo_campos` SET `prellenado` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($link,$consulta);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de oprellenado
-$respuesta->addAssign($div,"style.display","block");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("agregar_campos");
-
-function formulario_nuevo($formulario,$div){
- $resultado ="";
- $formulario = mysql_seguridad($formulario);
- $respuesta = new xajaxResponse('utf-8');
- //$formulario=mysqli_real_escape_string($formulario);
- $id_empresa= $_SESSION['id'];
- if($div==''){
- $div = "contenido";
-
-$resultado .= " Formulario ";
-
- return $resultado;
- }
-if($formulario ==''){
- $formulario_nombre = "nuevo_formulario";
- $formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-
-Crear un formulario
-
- Nombre para el formulario
-
-
-
- Descripción
-
-
-
- Formulario anidado con:
- $formulario_respuesta
-
-
- Grupo:
-
-
-
-
- Privado
-
- Público
-
-
-
-
-
- Grabar
-
-
- ";
-
- }else{
-$control = md5(rand(1,99999999).microtime());
-
-$nombre = $formulario['nombre']; // aa
-$descripcion = $formulario['descripcion']; // dxddc
-$publico = $formulario['publico']; // dxddc
-$grupo = $formulario['grupo'];
-$id_empresa = $_SESSION['id_empresa'];
-
-if($publico =='') {$publico ='0';}
-$propietario= $_SESSION['id'];
-$formulario_respuesta = $formulario['formulario_respuesta']; // dxddc
-$link=Conectarse();
-@$formulario=mysqli_real_escape_string($link,$formulario);
-mysqli_set_charset($link, "utf8");
-$consulta = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-VALUES ('$nombre', '$descripcion', '1', '1', '$publico', '$propietario','$formulario_respuesta','$id_empresa');";
-$sql=mysqli_query($link,$consulta);
-$ultimo_id = mysqli_insert_id($link);
- if($grupo !="") {
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo' ,id_empresa= '$id_empresa'";
- $sql_grupo=mysqli_query($link,$consulta_grupo);
- }
-
-$respuesta->addscript("xajax_formulario_listado('','contenido'); ");
-}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_nuevo");
-
-
-function formulario_listado($filtro_grupo,$div,$id_form){
- $item="";
- $grupo_formularios="";
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} if($div==''){
- $div = "contenido";
- if(isset($_SESSION['grupo_formularios'])) { $sesion_grupo_formularios = $_SESSION['grupo_formularios'];}else { $sesion_grupo_formularios = "";}
-$resultado = " Formularios ";
-
- return $resultado;;
- }
-$control = md5(rand(1,99999999).microtime());
-$respuesta = new xajaxResponse('utf-8');
-$_SESSION['grupo_formularios'] = $filtro_grupo;
-
-$link=Conectarse();
- $id=mysqli_real_escape_string($link,'$id');
-mysqli_set_charset($link, "utf8");
-if($id_form !="") {
- if(is_numeric($id_form)) { $w_id ="AND form_id.id = '$id_form' ";}else{ $w_id ="AND form_id.nombre LIKE '%%$id_form%%' ";} $mostrar_panel ="in";}else{ $w_id="";}
-if($filtro_grupo =="") {
-$consulta = "SELECT * FROM form_id WHERE id_empresa ='$_SESSION[id_empresa]' $w_id ORDER BY orden ASC";
- }
-else {
- $mostrar_panel ="in";
-$consulta = "
-SELECT * FROM form_id, form_grupo
-WHERE form_grupo.id = form_id.id
-AND form_grupo.grupo = '$filtro_grupo' $w_id
-AND form_id.id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
-}
-$sql=mysqli_query($link,$consulta);
-if($filtro_grupo !="") {
- $leyenda_filtro_grupo ="Grupo $filtro_grupo ";
-
- }else{ $leyenda_filtro_grupo ="Administración de Formularios ";
- unset($_SESSION['grupo_formularios']);
- }
-$resultado_link = " Formularios ";
-$respuesta->addAssign("link_formulario","innerHTML",$resultado_link);
-
-
-$divider = 1;
-$columnas = intval(12/$divider);
-// $listado_grupos = select_empresa('form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","AGRUPADO",'','',"$id_empresa");
- $listado_grupos = select_empresa('form_id, form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido','')","form_grupo.id = form_id.id",'','',"$id_empresa");
- $buscador = " ";
- $listado_grupos ="
-
-
-
- Grupos
- $listado_grupos
-
-
-
-
-
- Buscador
- $buscador
-
-
-
-
- ";
- $clonar = clonar_formulario($formulario,$id_empresa,"","","formato");
- $mover = mover_formulario($formulario,$id_empresa,"formato");
- $nuevo_formulario = "
- ";
- $resultado = "
-
- $nuevo_formulario
-
-
- $listado_grupos
-
- $leyenda_filtro_grupo
-
-
-
- ";
-
-if (mysqli_num_rows($sql)!='0' ){
- $i =0;
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- $id= $row['id'];
- $C = $id;
-
- $cantidad = formulario_contar($row['id']);
- if($cantidad >0) {$cantidad ="Llenado: $cantidad veces ";}else{$cantidad = "";}
- $propietario = remplacetas('usuarios','id',$row['propietario'],'email',"") ;
- $estado = remplacetas('form_id','id',$id,'publico',"") ;
- $nombre_formulario = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion_formulario = remplacetas('form_id','id',$id,'descripcion',"") ;
- $estado = "
-
- Contenido privado
-
- Público
-
- ";
- $modificable = remplacetas('form_id','id',$id,'modificable',"") ;
- if($modificable[0] !="") {
- if($modificable[0] =='0') { $Modificable= "Privado";}
- elseif($modificable[0] =='1') { $Modificable= "Público";}
- else { $Modificable= "Semi-público";}
- $select_modificable ="$Modificable ";
- }
- $modificable = "
- ";
-
-
- $primer = formulario_uso("$id",'','primer') ;
- if(@$primer[0] !='') {$primer = "Primer registro: ".date ( "Y-m-d h:i:s" , $primer[0])." ";}else{$primer='';}
- $ultimo = formulario_uso("$id",'','ultimo') ;
- @$ultimo_control = $ultimo[1];
- if(@$ultimo[0] !='') {$ultimo = "Último registro: ".date ( "Y-m-d h:i:s" , $ultimo[0])." ";}else{$ultimo='';}
-
- $nombre = editar_campo("form_id",$row['id'],"nombre","","","","");
- $orden = editar_campo("form_id",$row['id'],"orden","","","","");
- $descripcion = editar_campo("form_id",$row['id'],"descripcion","","","","");
- $geo = buscar_campo_tipo($id,"14");
- $email_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- $mensaje_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
- $mostrar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='mostrar_portal'") ;
- $llenar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='llenar_portal'") ;
- $ver_data = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='ver_data_portal'") ;
- $pagina_inicio = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='pagina_inicio'") ;
- if($pagina_inicio[0] !="1"){$pagina_inicio[0] ="0";}
- $vista_favorita = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='vista_favorita'") ;
-
- if($geo[0] !='') { $mapa= " Mapa ";}else {$mapa='';}
-
- if($i % $divider==0) {
-
-//$item .= "";
- }
- $i++;
- $grupo_actual = remplacetas('form_grupo','id',$row['id'],'grupo',"") ;
- if(is_null($grupo_actual[3])) {
- $valores_grupo['id']=$row['id'];
- $valores_grupo['grupo']="";
- $grupo = "
-
- ";
- // $grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }else
- {
- $grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
- }
-
-$item .= "
-
-
-
-
-
-
-
-
-
Agregar o quitar campos
-
-
-
-
-
-
-
-
-
-
- $estado
-
-
- $modificable
-
-
-
-
-
-
";
-
-
- if($i%$divider==0) {
- $item .= " ";
- }
-
- }
-
-
- //$resultado .="";
- }
-
-
-else{ $resultado .= "
No hay formularios para mostrar ";}
-
- $resultado_formulario ="
-
-
- ";
-/*
-
- */
- $resultado = "$resultado $resultado_formulario ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_listado");
-
-function formulario_eliminar($id,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre_form = $nombre[0];
- if($tipo =='') {
-$resultado =" ";
-}elseif($tipo=='cancelar') {
- $resultado =" Eliminar ";
-}elseif($tipo =='eliminar'){
-$consulta = "DELETE FROM form_id WHERE form_id.id = '$id' ";
-$link=Conectarse();
- $sql=mysqli_query($link,$consulta);
- if($sql) {
- $respuesta->addAlert("Se eliminó el formulario \" $nombre_form \" ");
- $respuesta->addAssign("panel_$id","innerHTML","");
- return $respuesta;
-
- }
-}
-else {}
-$respuesta->addAssign("eliminar_$id","innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_eliminar");
-
-
-function campo_multiple($id_campo,$id_form,$control,$item){
-//if ( !isset ( $_SESSION['id'] ) ) { return;}
-
- if($item==''){$item=1;}
- $id= $item;
-$render = formulario_campos_render($id_campo,$id_form,$control,$item+1);
- $ingredientes = "
-
- $render
-
-
-
-
-
- ";
- $boton= "
- Agregar campo
-
";
-$div = "id_campo_$id_campo"."_".$id;
-$respuesta = new xajaxResponse('utf-8');
-#$respuesta->addAssign($div,"innerHTML",$ingredientes);
-$respuesta->addAssign("multiple_$div","innerHTML",$ingredientes);
-$respuesta->addAssign("boton_".$id_campo."","innerHTML","$boton ");
-return $respuesta;
-
-}
-$xajax->registerFunction("campo_multiple");
-
-function subidor_generico($campo,$item,$form,$valor,$ubicacion){
-$campo_mapa = buscar_campo_tipo($form,"14");
-$campo_mapa = $campo_mapa[0];
-
-$name= $campo."[".$item."]";
-$tipo_campo = remplacetas("form_campos","id","$campo","campo_tipo","");
- if($tipo_campo[0] =='15'){
- $onchange= "comprueba_imagen('$campo','$item', (this.value),'$campo_mapa' ,'$ubicacion') ;";
- }else {
- $onchange= "comprueba_archivos('$campo','$item', (this.value),'$campo_mapa','$ubicacion' ) ;";
- }
-
-$resultado = "
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
-
-return $resultado;
-}
-
-function formulario_campos_render($id_campo,$id_form,$control,$item,$id_dato,$ubicacion){
-$cols ="";
-$style="";
-$campo_multiple="";
-$render="";$value="";
-$boton="";
-$script="";
-//if($control ==="") {$control="vacio";}else {$control=$control;}
- if($id_form !="") {
- $w_form = " AND form_contenido_campos.id_form = '$id_form' ";
- }
- else{
- $w_form ="";
- }
-
-$consulta ="
- SELECT *
- FROM form_contenido_campos,form_campos, form_tipo_campo
- WHERE form_contenido_campos.id_campo = '$id_campo'
- $w_form
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = form_campos.campo_tipo ";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0'){
- if($id_dato !='') {
-if($control !="") {
- $value = remplacetas('form_datos','id',$id_dato,'contenido'," control = '$control'") ;
- }
- $multiple='0';
- $esta_editando =1;
- }
- else {
- if($control !="") {
- $value = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$control'") ;
-
- }
-$multiple=mysqli_result($sql,0,"multiple");
- }
- if($item=='') {$item ="0";}else {$item=$item;}
- $clase_item="clase_$id_campo";
- $value_original = $value;
- if(@$value[0] !='') {$value= "$value[0]";}ELSE{$value='';}
- $campo_nombre=mysqli_result($sql,0,"campo_nombre");
- $campo_descripcion=mysqli_result($sql,0,"campo_descripcion");
- $campo_tipo_accion=mysqli_result($sql,0,"tipo_campo_accion");
- $campo_obligatorio=mysqli_result($sql,0,"obligatorio");
- if($campo_obligatorio =='1') {$obligatorio ="danger";}else{$obligatorio ="default";}
-
- if($campo_tipo_accion == 'text'){$render = " ";}
- elseif($campo_tipo_accion == 'date'){
-
- $rango = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $campos = explode(":",$rango[0]);
- $valores_rango = explode(";",$campos[1]);
- $min= $valores_rango[0];
- $max= $valores_rango[1];
-
-
- $render = " $campo_descripcion $rango[0]";
- }
- elseif($campo_tipo_accion == 'datetime'){
-
- $rango = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $campos = explode(":",$rango[0]);
- $valores_rango = explode(";",$campos[1]);
- $min= $valores_rango[0];
- $max= $valores_rango[1];
-
-
- $render = " $campo_descripcion $rango[0]";
- }
- elseif($campo_tipo_accion == 'rango'){
- $rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = "$rango $campo_descripcion ";}
- elseif($campo_tipo_accion == 'mapa'){
- $lat="";
- $lon="";
- $zoom="";
- if($value !=""){
-
- $campos = explode(" ",$value);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- if($lat =="") {
- $localizacion = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- //$render= $localizacion[0];
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
-
- }
- $exif="&exif";
- }
-if($zoom =="") { $zoom="12";}
- $render .= "
-
-
-
-
-
- ";
- //
- $cols='12';
- }
-elseif($campo_tipo_accion == 'email'){$render = "
-
- Escriba un email válido
";}
- elseif($campo_tipo_accion == 'envio'){$render = "
-
- Se enviará un email
";}
- elseif($campo_tipo_accion == 'textarea'){
- $render = "
-
-
- $value ";
- $cols='12';
- }
- //$subir_imagen = subir_imagen('');
- elseif($campo_tipo_accion == 'imagen'){
- // $style ="display:hidden";
- // $gps = leer_exif($file);
- //$render= " "; //subir_imagen('',$id_campo[$item]);
- $render=subidor_generico("$id_campo","$item","$id_form","$value","$ubicacion");
- $cols='12'; }
- elseif($campo_tipo_accion == 'adjunto'){
-
- $render=subidor_generico("$id_campo","$item","$id_form","$value","$ubicacion");
-
- $cols='12'; }
-
- elseif($campo_tipo_accion == 'html'){
- $render = "
-
- Editor HTML
-
- $value
-
-
-
- ";
- $cols='12';
- /*$respuesta = new xajaxResponse('utf-8');
- $respuesta->addscript("$(document).ready(function() {
- $('.$clase_item').summernote();
- });");
- */
- }
- elseif($campo_tipo_accion == 'limit'){
- $limite = limite("".$id_campo."[".$item."]",'','limite');
- $rows = ceil($limite / 50 )+1;
- if ($limite > 50){
- $cols='12';
- $dibujar_campo ="$value ";
- }
- else{
- $cols='6';
- $size= $limite."em";
- $dibujar_campo =" ";}
- $render = "$limite /
-
-
- $dibujar_campo ";
-
- }
- elseif($campo_tipo_accion == 'select'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- //select_edit($id_campo,$form_id,$valor,$name,$control)
- $select = select_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select$campo_descripcion "; $cols='6'; }
- elseif($campo_tipo_accion == 'radio'){
- $select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select $campo_descripcion ";
- $cols='6';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_campos'){
- //radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control)
- $campos_valores = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $mensaje = remplacetas('form_campos','id',$id_campo,'campo_descripcion',"") ;
- $campos = explode(":",$campos_valores[0]);
- $titulos = explode(";",$campos[0]);
- $campos_incluidos = explode(";",$campos[1]);
- for($i=0;$i$campos_incluidos[$i] ";
- //$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "
-
-
-
- $mensaje[0]
- $listado_titulos
- $listado_campos
-
-
-
";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_linea'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = " ";
- $cols='12';
- }
-
- elseif($campo_tipo_accion == 'combo'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = combo_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'select_multiple'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_multiple($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
-// $cols='12';
- }
- elseif($campo_tipo_accion == 'checkbox'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = checkbox_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select $campo_descripcion ";}
- elseif($campo_tipo_accion == 'relacion'){
- $select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'buscador'){
- $select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'base'){
- $select = buscador_base($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";}
- elseif($campo_tipo_accion == 'vinculado'){
- $vinculado = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $select = formulario_areas('',$vinculado[0],'campos','','','','');
- $render = "
- $select
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'firma'){
-
-$render = "
-
-
-";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'number'){
- $rango = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $campos = explode(":",$rango[0]);
- $valores_rango = explode(";",$campos[0]);
- $min= $valores_rango[0];
- $max= $valores_rango[1];
- $pasos= $valores_rango[2];
- $aviso_rango="";
- $aviso_pasos="";
- if( $rango[0] !=""){
-
- $onchange=" onkeyup= \"xajax_validar_rango((this.value),'$min','$max','$pasos','".$id_campo."[".$item."]');\"
- onchange= \"xajax_validar_rango((this.value),'$min','$max','$pasos','".$id_campo."[".$item."]');\" ";
- $aviso_rango =" Mínimo: $min Máximo: $max"; if($pasos !=""){ $aviso_pasos ="Pasos: $pasos";}
-
- }else{
- $onchange="";
- }
-
- $render = "
-
- (solo números)
$aviso_rango $aviso_pasos";
- $cols='6';
- }
-
- elseif($campo_tipo_accion == 'password'){
- if( $control != "" or $control ==="vacio") {
- $render="";$label=""; $campo_tipo_accion="oculto";
- }else {
- $render = "
-
- ";
- }
- //else {}
- $cols='12'; }
- elseif($campo_tipo_accion == 'unico'){
- $render ="
-
";
- }
- else{$render = " ";}
- if($multiple =='1'){
- if ($item=='0'){
-$boton= "
- Agregar campo
-
";}else{ $boton=""; }
-/* $campo_multiple = "
-
-
-
-
-
- ";*/
-}
- if($item == 0) { $label = " $campo_nombre ";}
- else {$label = "$campo_nombre $campo_obligatorio ";}
- ///// CAMPOS QUE NO SE MOSTRARAN
- // if($campo_tipo_accion == 'imagen'){ $label=""; $campo_descripcion=""; }
- if($cols =="") {$cols = "6";}
- $input = "
-
-
- $campo_multiple
-
-
-
- ";
-
-///campos que no se muestran en el formulario
-if($campo_tipo_accion == "oculto" OR $campo_tipo_accion == "consecutivo" ) {
- $input= "";
- }else { $input = $input;}
-
- }
- return $input;
-}
-
-function validar_rango($valor,$min,$max,$step,$id_campo){
-$div_input = "input_$id_campo";
-$respuesta = new xajaxResponse('utf-8');
-
-$restante="$valor";
-if($valor < $min ){
- $respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
- $respuesta->addAssign("$div_input","className","has-error ");
- $respuesta->addAssign("$id_campo","value","");
- $restante="El valor $valor es inferior al rango";
- }
-elseif($valor > $max ){
- $respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
- $respuesta->addAssign("$div_input","className","has-error ");
- $respuesta->addAssign("$id_campo","value","");
- $restante="El valor $valor es superior al rango";
- }
- else{
- $respuesta->addAssign("aviso_$id_campo","className","alert-success");
-$respuesta->addAssign("$div_input","className","has-success ");
-$restante='';
- }
-$respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-return $respuesta;
-
-
-
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("validar_rango");
-
-
-function validar_email($email) {
-
-if (preg_match('/^[^0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9_-]+)*[@][a-zA-Z0-9_-]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
- return 1;
-}else{
- return 0;
-}
-}
-
-function formulario_valor_campo_ORIGINAL($perfil,$id_campo,$valor,$id_control){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$valor=mysqli_real_escape_string($link,$valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-$consulta = "SELECT * FROM `form_datos` WHERE `form_id` = '$perfil' AND id_campo='$id_campo' $valor AND `control` = '$id_control' ORDER BY timestamp DESC limit 1";
-$sql =mysqli_query($link,$consulta);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$timestamp=mysqli_result($sql,0,"timestamp");
-mysqli_data_seek($sql, 0);
-if($cant === 1) {
- $contenido=mysqli_result($sql,0,"contenido");
- }else {
-while( $row = mysqli_fetch_array( $sql ) ) {
- $contenido .= "$row[contenido]\n ";
- }
- }
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = $contenido;
-}
-return $existe;
- }
-
-
-
-function formulario_valor_campo($perfil,$id_campo,$valor,$id_control,$orden,$timestamp){
-$contenido="";
-$editable="";
-$contenido_li="";
-$contenido_array=array();
-if ($timestamp != ""){$where_timestamp = "AND form_datos.timestamp = '$timestamp' ";}ELSE { $where_timestamp = ""; }
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-$campo_multiple = remplacetas("form_contenido_campos","id_campo",$id_campo,"multiple"," id_form ='$perfil'");
-$tipo_campo = remplacetas("form_campos","id","$id_campo","campo_tipo","");
-$campo_multiple = $campo_multiple[0];
-//if($tipo_campo[0] =="24") {$campo_multiple = "1";}
-/// SI EL CAMPO ES MULTIPLE O CHECK BOX MUESTRA LAS MULTIPLES ENTRADAS
-if($campo_multiple !="1" ){ $limite =" asc limit 1 ";}else {$limite =" asc ";}
-if(@$orden !=""){ $campo_orden =" AND orden ='$orden' ";}else {$campo_orden ="";}
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$valor=mysqli_real_escape_string($link,$valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-/*
-$consulta = "SELECT * FROM `form_datos`
-WHERE `form_id` = '$perfil'
-AND id_campo='$id_campo' $valor
-AND `control` = '$id_control' $campo_orden
-GROUP BY orden
-ORDER BY timestamp $limite ";
-*/
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$perfil'
- AND id_campo ='$id_campo' $valor
- AND control ='$id_control' $campo_orden
- $where_timestamp
- group by orden
- ORDER BY orden $limite";
-
-$sql =mysqli_query($link,$consulta);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$timestamp=mysqli_result($sql,0,"timestamp");
-$orden=mysqli_result($sql,0,"orden");
-$id_usuario=mysqli_result($sql,0,"id_usuario");
-$ip=mysqli_result($sql,0,"ip");
-mysqli_data_seek($sql, 0);
-$md5_contenido = "";
-if($cant === 1) {
- //$contenido=mysqli_result($sql,0,"contenido");
- $identificador=mysqli_result($sql,0,"identificador");
- $identificador = explode(',',$identificador);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $md5_contenido = $contenido_campo[3];
- //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
- //$md5_contenido = $md5_contenido[0];
- $contenido = "$contenido_campo[0]";
- //$contenido_array[]=$contenido_campo[0];
- }else {
-while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_campo[0]\n";
- $contenido_li .= "$contenido_campo[0] ";
- $contenido_array[]=$contenido_campo[0];
- $editable .= "".editar_campo("form_datos","$identificador","contenido","","","","")." ";
-
- }
- }
-// $contenido .="$consulta";
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = "$contenido";
-$existe[] = $md5_contenido;
-$existe[] = $orden;
-$existe[] = $id_usuario;
-$existe[] = $ip;
-$existe[] = $contenido_li;
-if($cant === 1) { $existe[] = $contenido;}else{
-$existe[] = json_encode($contenido_array);
-}
-$existe[] = $contenido_array;
-$existe[] = $editable;
-}
-return $existe;
- }
-
-function formulario_grabar($formulario,$accion) {
- $formulario_original = $formulario;
-
- if($accion == "api"){
- $respuesta = new xajaxResponse('utf-8');
- $Formulario_original = $formulario;
- $formulario = json_decode($formulario,true);
- //$formulario = print_r($formulario,true);
- $respuesta->addAssign("resultado_triage","innerHTML","hOLA $formulario_original" );
- //return $respuesta;
-
- }
- $debug="";
- $respuesta = new xajaxResponse('utf-8');
- $datos="";
- $envio="";
-
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
- $consulta_grabada ='0';
- $control = $formulario['control']; //
- $form_id = $formulario['form_id']; //
- $tipo = $formulario['tipo']; //
- $metadatos = json_decode($formulario['metadatos']);
- $campo_consecutivo = buscar_campo_tipo($formulario["form_id"],"33");
- if($formulario["tipo"] !="edit"){
- if($campo_consecutivo[0] != ""){
- $valores = remplacetas('form_campos_valores','id_form_campo',$campo_consecutivo[0],'campo_valor',"") ;
- if($valores[0] =='diario'){
- $timestamp = time();
- $hora=date('H:i:s');
- $hoy=date('Y-m-d');
-
- $ano = date('Y');
- $mes = date('m');
- $dia = date('d');
-
- $hoy_timestamp=mktime(0,0,0, $mes, $dia, $ano);
-
- $ultimo_consecutivo = remplacetas('form_datos','form_id',"$formulario[form_id]",'contenido'," id_campo = '$campo_consecutivo[0]' AND FROM_UNIXTIME(timestamp, '%Y-%m-%d') = '$hoy' ") ;
-
-
- }else{
- $ultimo_consecutivo = remplacetas('form_datos','form_id',"$formulario[form_id]",'contenido'," id_campo = '$campo_consecutivo[0]' ") ;
-
-
- }
- $ultimo_consecutivo = $ultimo_consecutivo[0];
-
- if ($ultimo_consecutivo !=''){
- $consecutivo = ($ultimo_consecutivo +1);}else{$consecutivo='1';}
-
-
- $formulario["$campo_consecutivo[0]"][0] = $consecutivo ;
- }
-
- }
-
-// if(@$formulario['imagen'] !=''){$formulario[0][0] = $formulario['imagen'];}
-
- $consulta_form = "SELECT * FROM form_contenido_campos,form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$form_id' ";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
- if(isset ( $_SESSION['id_empresa'])){$id_empresa = $_SESSION['id_empresa']; }else{
- $id_empresa = remplacetas('form_id','id',$formulario['form_id'],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- }
-
- if(isset ( $_SESSION['equipo'])){$equipo = $_SESSION['equipo']; }else { $equipo = NULL;}
-
-
-foreach($formulario as $c=>$v){
-
-
-if (is_array($v) ){
- foreach($v as $C=>$V){
-
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if(@$campo_tipo[0] =="30" OR @$campo_tipo[0] =="24") {
- $V=array();
- $V[$c]=$v;
-
- $V = json_encode($V);
-}
- if($V != '') {
-
-
-
-$datos .= "$$c = \$formulario['$c'][$C]; // $V /$campo_tipo[0]
";
- if($campo_tipo[0] =='12' OR $campo_tipo[0] =='13') {
- $validar = validar_email($V);
- if($validar == '0') {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }else {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- }
- }
- if($campo_tipo[0] =='3' ) {
- $validar = is_numeric($V);
- if(is_numeric($V) ) {
- $rango = remplacetas('form_campos_valores','id_form_campo',$c,'campo_valor',"") ;
- $campos = explode(":",$rango[0]);
- if($campos[0] =='rango') {
- $valores_rango = explode(";",$campos[1]);
-
- $min= $valores_rango[0];
- $max= $valores_rango[1];
- if($V < $min OR $V > $max) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] debe estar entre $min y $max");
- return $respuesta;
- }
-
- }
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
- }else{
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] solo acepta valores numéricos");
- return $respuesta;
- }
- }
- if($campo_tipo[0] =='11' ) {
-
- $rango = remplacetas('form_campos_valores','id_form_campo',$c,'campo_valor',"") ;
- $campos = explode(":",$rango[0]);
- if($campos[0] =='rango') {
- $valores_rango = explode(";",$campos[1]);
- $min= strtotime("$valores_rango[0]");
-
- $ano = date("Y", strtotime($valores_rango[0]));
- $mes = date("m", strtotime($valores_rango[0]));
- $dia = date("d", strtotime($valores_rango[0]));
-
-
- if($valores_rango[1] =='0') { $max = time(); $valores_rango[1]= $max; $max_fecha = date("Y-m-d");}else{$max= strtotime("$valores_rango[1]"); $max_fecha= $valores_rango[1];}
-
-
- $fecha = strtotime("$V");
-
- if($fecha < $min OR $fecha > $max) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] debe estar entre $valores_rango[0] y $max_fecha");
- return $respuesta;
- }
-
- }
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
-
- }
-
- if($campo_tipo[0]=='17') {
- $limite = limite("$c",'','limite');
- $size= strlen($V);
- $restante = ($limite - $size);
- if( $restante < 0) {
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] no debe tener mas de $limite caractéres, sobran $restante");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
- }
-
-
-
- }
-else{ //busca campos vacios
-
-$campo_obligatorio = remplacetas("form_contenido_campos","id_campo",$c,"obligatorio","id_form = '$formulario[form_id]'");
-if($campo_obligatorio[0] =='1'){
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] es obligatorio");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
-
-}
-
-$md5 = md5($V);
-$igual = formulario_valor_campo("$form_id","$c","$md5","$formulario[control]","$C","");
-$existe = formulario_valor_campo("$form_id","$c","","$formulario[control]","$C","");
-//$valor_anterior .= $existe[3]."| ";
-//$debug .= "$existe";
-$valor_original =$V;
-
-if(!is_null($existe) AND $tipo =='edit' AND $V =='') {
- $consulta_vacio ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa, equipo,proceso)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa','$equipo','$formulario[proceso]');";
-
- $sql=mysqli_query($link,$consulta_vacio);
- if($sql) {
- $consulta_grabada ='1';
- }
-}
-if(is_null($igual) ){$repetido = 0;}else{
-$repetido = 1;
-}
-
-//$campo_tipo_general = remplacetas("form_campos","id",$campo_consecutivo[0],"campo_tipo","");
-
-
-
-if(($V !='' ) && (is_numeric($c)) AND $repetido !=1 ) {
- $V = mysqli_real_escape_string($link,$V);
-
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if(@$campo_tipo[0] =="30" OR @$campo_tipo[0] =="24") { $V=$V;}else{$V = htmlentities($V);}
-
-
-
-if(@$campo_tipo[0] =="18") {
- $V = md5("$V");
-}
-
-
-else{$V=$V;}
-
-
- $consulta ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa, equipo,proceso)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '".@$_SESSION[id]."', '$V', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa','$equipo','$formulario[proceso]');";
-$json_datos[] = array($c, array("nombre_campo",$campo_nombre[0]), array("contenido",$V),array("orden",$C));
- $sql=mysqli_query($link,$consulta);
- $debug .= "$consulta = $sql ,";
- if($sql) {
- $consulta_grabada ='1';
- }
- }
-
- } ///fin del array
-
- }///fin del array primario
- else {
- if($v !='') { }
- }
- }
-
-
-
-
-// }
-// }
-
-//$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-
-
- $x= $metadatos[1][1];
- $y= $metadatos[2][1];
- $z= $metadatos[3][1];
- $autor= $metadatos[4][1];
-
- if($formulario['clase'] !=""){
- parametrizacion_linea('form_id',"$formulario[form_id]",'clase',"$formulario[clase]",'mensaje_$control','',"$formulario[control]");
- //parametrizacion_linea('form_id','$id','clase','green','mensaje_$row[control]','','$row[control]');
-
- }
-
- $posicion = parametrizacion_linea('form_id',"$formulario[form_id]",'posicion',"$x-$y-$z",'mensaje_$control','',"$formulario[control]");
- $metadatos_iniciales = parametrizacion_linea('form_id',"$formulario[form_id]",'metadatos_iniciales',"$x-$y-$z-$autor",'mensaje_$control','',"$formulario[control]");
- $autor = parametrizacion_linea('form_id',"$formulario[form_id]",'autor',"$autor",'mensaje_$control','',"$formulario[control]");
-
- if(@$formulario['continuar']=='1') {
-// xajax_formulario_embebido_ajax($form[0],'$identificador','edit')
- //$respuesta->addscript("$('#muestraInfo').modal('hide')");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("xajax_formulario_embebido_ajax('','$formulario[form_id]','$formulario[control]','edit') ");
- return $respuesta;
- }
-
-if($tipo == "embebidoX" )
-{
- $exito ="
-
- $formulario[mensaje]
-
- ";
- $mail = '1';
- }
- elseif($tipo == "funcion" ){
-
- return "grabado";
- }
-
- elseif($tipo == "solocampos" ){
-
-
- $exito ="
-
ok
-
-
- ";
-
- $mail='0';
- }
- else{
- $campo_envio = buscar_campo_tipo($formulario['form_id'],"13");
- if($campo_envio[0] != "") {
-$envio = email_contenido("$formulario[form_id]","$formulario[control]","$campo_envio[0]",'');
- }
-
-if($tipo = "embebido") {
-$otro_formulario ="
-
- Llenar otro formulario
-
-";
-}else {
- $otro_formulario = "
-
- Llenar otro formulario
-
-
- ";
-}
-$json_encabezado = array( array("form_id",$formulario['form_id']),array("usuario","$_SESSION[id]"),array("timestamp",time()),array("empresa","$id_empresa"),array("ip","$ip"),array("equipo","$equipo"));
-$json_datos= array($formulario["control"],array($json_encabezado,array("datos",$json_datos) ));
-$mostrar_json = json_encode($json_datos,JSON_PRETTY_PRINT);
-
-$impresion = formulario_imprimir("","$formulario[control]","preview",'');
-$mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
-//$impresion = mostrar_identificador($formulario['control']);
- $exito ="
-
- $mensaje_agradecimiento[0]
-
-
- $impresion
-
-
- Gracias por aportar $formulario[form_nombre]
-
-
- $otro_formulario
-
-
- $envio
-
-
-
";
-
-// $mail ='1';
- }
-
-//if($mail =='1') {
-
- //$propietario = remplacetas('form_id','id',$formulario[form_id],'propietario',"") ;
- //$propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $email_envio = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($email_envio[0] !="") {
- $impresion = formulario_imprimir("","$formulario[control]","preview");
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email = remplacetas("empresa","id","1","email","");
- $email = remplacetas("empresa","id","$id_empresa","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$formulario[form_id],"nombre","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $razon_social[0] <$reply[0]>\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0]" . "\r\n";
-
-$asunto= "$nombre_formulario[0]";
-$cuerpo ="
-$mensaje_agradecimiento[0]
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]I$formulario[control]
-
-Descargo de responsabilidades
-Esta herramienta es creada y proporcionada por Tupale.co, como portal para el activismo de datos no nos hacemos responsables por el uso de la herramienta y cuando utilizas esta herramienta para enviar una carta firmas la petición con tu nombre personal, de esta forma es responsabilidad de cada persona que diligencie el formulario así como los comentarios escritos y los datos personales, por motivos de seguridad almacenamos temporalmente algunos metadatos como tu dirección IP y la hora de diligenciamiento de la carta, los demás datos personales son aquellos pedidos en el formulario que se encuentran protegidos por las politicas que puedes leer a continuación: Políticas de privacidad y protección de datos.
-
";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $exito .=""; }else {$exito .="error enviando correo";}
- //$exito .= "$email[0] $headers ";
- }
- /// }
- if($formulario['tipo_form'] =='mini'){
- $respuesta -> addScript("xajax_limpia_div('nueva_nota_$formulario[control]')");
- $respuesta->addScript("make_draggable($('.note'));");
-
- return $respuesta;
-
-
- }
- $respuesta->addAssign("div_$control","innerHTML","$exito ");
- return $respuesta;
- }else{
-
- $datos = print_r($formulario,true);
- $mensaje ="
-
-
Todo bien pero al parecer no se modificaron registros $formulario[control] // $formulario[tipo] // ";
- $respuesta->addAssign("div_$control","innerHTML","$mensaje");
-
- }
-//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
-return $respuesta;
-}
-$xajax->registerFunction("formulario_grabar");
-
-function mysql_seguridad($inp) {
- if(is_array($inp))
- return array_map(__METHOD__, $inp);
-
- if(!empty($inp) && is_string($inp)) {
- return str_replace(array('\\', "\0", "'", '"', "\x1a"), array('\\\\', '\\0', "\\*", "\\*", '\\Z'), $inp);
- }
-
- return $inp;
-}
-
-function formulario_campos_render_multiple($id_campo,$id_form,$control,$item,$ubicacion) {
-
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$id_form'
- AND id_campo ='$id_campo'
- AND control ='$control'
- group by orden ORDER BY orden asc";
- $link=Conectarse();
- //$resultado .= "$consulta";
- mysqli_set_charset($link, "utf8");
- $sql =mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0' ){
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- //$identificador = $row[identificador];
-
- /// banear para que el campo 24 no se comporte como multiple en la edicion
-# $resultado .= $identificador;
- $resultado .= formulario_campos_render($row['id_campo'],$id_form,$control,$row['orden'],$identificador,$ubicacion);
- $item = $item + 1;
- }
- $boton= "
- Agregar campo
-
";
- $resultado .= "
-
- $boton
-
";
- return $resultado;
- }
-
- $resultado .= formulario_campos_render($id_campo,$id_form,'',$item,'',$ubicacion)."";
-
- return $resultado;
-}
-
-
-
-function formulario_modal($id,$form_respuesta,$control,$tipo) {
-
- $respuesta = new xajaxResponse('utf-8');
- $solo_campos ="";
- $subir_imagen ="";
-
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
- $formulario_respuesta = formulario_respuesta("$id","$control");
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"",'') ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = "$formulario_respuesta";
- $pie .= empresa_datos("$id_empresa",'pie');
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $cabecera ="".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
-
- $nuevo_formulario = "Llenar otro formulario ";
-if($control !='' AND $tipo =='' ) {
- $impresion = formulario_imprimir("$id","$control","");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $muestra_form = "$impresion
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $modificable = remplacetas('form_id','id',$id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
-
-$consulta = "
- SELECT * FROM form_id, form_contenido_campos
- WHERE form_id.id = form_contenido_campos.id_form
- AND form_id.id = '$id' ORDER BY form_contenido_campos.orden ASC
- ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- $descripcion=mysqli_result($sql,0,"descripcion");
- $nombre=mysqli_result($sql,0,"nombre");
- $id_empresa=mysqli_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera = "
- $salir
-
-
-
-
-
-
-
-
-
$nombre $descripcion
-
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($id,"15");
-@$campo_imagen_nombre = $campo_imagen[1];
-@$campo_imagen = $campo_imagen[0];
-
-
-/*if (@$campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$id","$campo_imagen"."[0]");
-
-
- }*/
- $muestra_form = "
-
-
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {
-
- //if(null === @$_SESSION['id'] AND $permiso_identificador != $control) {
- if($_SESSION['id_empresa'] !== $id_empresa AND $permiso_identificador != $control) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
-
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //// si no esta logueado nose puede editar ////
- $control_edit = "$control";
-
- }else {$control_edit = "";}
-
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas("form_campos","id","$row[id_campo]","campo_tipo","");
- //if($tipo_campo[0] =="24") { $row[multiple] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos = formulario_campos_render_multiple($row['id_campo'],$id,$control_edit);
- }else{
- $campos = formulario_campos_render($row['id_campo'],$id,$control_edit,'','');
- }
- $muestra_form .= "$campos ";
- $solo_campos .= "$campos ";
- }
- $muestra_form .="
-
- ";
- }
-
-$muestra_form .="
-
-
-
";
- $muestra_form = "$muestra_form
";
-if($tipo=='campos') {
- return $solo_campos;
-}
-if($tipo=='embebido') {
- return $muestra_form;
-}
-
-$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
-$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
-$respuesta->addAssign("pie_modal","innerHTML","$pie");
-$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-//$respuesta->addscript("$('textarea').markdown({autofocus:false,savable:false})");
-//$respuesta->addscript("$(document).ready(function () { $(\"#24[0]\").cleditor(); })");
-//$(document).ready(function () { $("#input").cleditor(); });
-
-
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_modal");
-
-
-
-function limpia_div($capa){
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($capa,"style.padding","0px");
-$respuesta->addClear($capa,"innerHTML");
-
-return $respuesta;
-}$xajax->registerFunction("limpia_div");
-
-function contenido_ocultar($capa){
-$respuesta = new xajaxResponse('utf-8');
-//$respuesta->addAssign($capa,"innerHTML","$contenido");
-$respuesta->addAssign("$capa","className","hidden");
-
-return $respuesta;
-}$xajax->registerFunction("contenido_ocultar");
-
-function contenido_show($capa){
-$respuesta = new xajaxResponse('utf-8');
-//$respuesta->addAssign($capa,"innerHTML","$contenido");
-$respuesta->addAssign("$capa","className","show");
-
-return $respuesta;
-}$xajax->registerFunction("contenido_show");
-
-function contenido_cambiar($div,$contenido){
-$respuesta = new xajaxResponse('utf-8');
-//$respuesta->addAssign($capa,"innerHTML","$contenido");
-$respuesta->addAssign("$div","innerHTML","$contenido");
-
-return $respuesta;
-}$xajax->registerFunction("contenido_cambiar");
-
-
-function select_key($tabla,$key,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_set_charset($link, "utf8");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($link,$consulta);
-if($nombre==''){$name=$tabla."_".$key;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-$resultado="
-Seleccione
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] =="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados 0011
";}
-
-return $resultado;
-}
-
-function select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_set_charset($link, "utf8");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
-if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where; $group ="GROUP BY $campos[0]";}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($link,$consulta);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row["$value"]=="") {$resultado.="";}else{
-if($row["$value"] =="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-//$valor= urlencode($row["$value"]);
-//$valor=$row["$value"];
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " " ;
- }else{$resultado = " No hay resultados 0011
";}
-
-return $resultado;
-}
-
-
-function select_campos_formulario($id,$nombre,$onchange,$valor){
-$link=Conectarse();
-$name="";
-$vacio="";
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT form_campos.id , form_campos.campo_nombre FROM form_campos, form_contenido_campos WHERE form_contenido_campos.id_form = '$id' AND form_campos.id = form_contenido_campos.id_campo ";
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- //if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
-Todos
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-
-$resultado .= " ".substr(@$row['campo_nombre'], 0, 150 )." ";
- }
-
-$resultado .= " ";
- }else{$resultado = " No hay resultados hygfj5
";}
-
-return $resultado;
-
-}
-
-function select_empresa($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor,$id_empresa){
- $w ="";
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$tablas= explode(",",$tabla);
-$tabla1= $tablas[0];
-@$tabla2= $tablas[1];
-
-$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_set_charset($link, "utf8");
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- if($where =='AGRUPADO'){$group="GROUP BY $value ";}
- elseif($where != ''){$w = "AND ".$where; $group="GROUP BY $value "; }
- else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE $tabla1.id_empresa = '$id_empresa' $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($link,$consulta);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados 0012
";}
-
-return $resultado;
-}
-function sin_acentos($cadena) {
-$no_permitidas= array ("á","é","í","ó","ú","Á","É","Í","Ó","Ú","ñ","À","Ã","Ì","Ò","Ù","Ù","à ","è","ì","ò","ù","ç","Ç","â","ê","î","ô","û","Â","Ê","ÃŽ","Ô","Û","ü","ö","Ö","ï","ä","«","Ò","Ã","Ä","Ë");
-$permitidas= array ("a","e","i","o","u","A","E","I","O","U","n","N","A","E","I","O","U","a","e","i","o","u","c","C","a","e","i","o","u","A","E","I","O","U","u","o","O","i","a","e","U","I","A","E");
-$texto = str_replace($no_permitidas, $permitidas ,$cadena);
-return $texto;
-}
-
-function select_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-/// otro
-$otro = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","campo_valor = 'otro'");
-$valor_otro = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","campo_valor = '$valor'");
-if($valor !="" and $valor_otro[0] ==""){
-
- $valor_otro ="Otro: $valor ";
- }else{ $valor_otro ="";}
-
-if($otro[0] !=""){
- $onchange ="onchange= \"xajax_select_otro('$name','$valor',(this.value));\"";
- }else{$onchange="";}
-// fin otro
-
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado=" $valor_otro
-Seleccione
- $valor_otro " ;
-$valor=html_entity_decode("$valor");
-while( $row = mysqli_fetch_array( $sql ) ) {
- //$coll = collator_create( 'en_US' );
- //$res = collator_compare( $coll, $row['campo_valor'], $valor );
-if( $row['campo_valor'] == "$valor"){$selected="selected";}else{$selected ="";}
-//if($res === 0){$selected="selected";}else{$selected ="";}
-//if(strcmp($row['campo_valor'], $valor) === 0 ){$selected="selected";}else{$selected ="";}
-
-$resultado .= " $row[campo_valor] ";
-
- }
-$resultado .= "
";
- }else{$resultado = " No hay resultados 013
";}
-
-return $resultado;
-}
-
-function select_otro($id_campo,$valor,$seleccion){
- $respuesta = new xajaxResponse('utf-8');
- if(strtolower($seleccion) =='otro'){
-
- $resultado ="
-
- ";
- // $respuesta->addAssign("div_otro_$id_campo","value","");
- $respuesta->addAssign("div_otro_$id_campo","innerHTML","$resultado");
-
- }else{
- $respuesta->addAssign("div_otro_$id_campo","innerHTML","$seleccion ");
-
- }
- return $respuesta;
- }
-$xajax->registerFunction("select_otro");
-
-
-function radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-$valor = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-$nombre_linea = mysqli_result($sql,0,"campo_nombre");
-$descripcion_linea = mysqli_result($sql,0,"campo_descripcion");
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor[0]"){$selected="checked";}else{$selected ="";}
-$lineas .= " $row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados 0014
";}
-
-return $resultado;
-}
-
-function radio_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-$nombre_linea = mysqli_result($sql,0,"campo_nombre");
-$descripcion_linea = mysqli_result($sql,0,"campo_descripcion");
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$lineas .= "$row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados 0014
";}
-
-return $resultado;
-}
-
-
-function radio_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado="" ;
-while( $row = mysqli_fetch_array( $sql ) ) {
- $valor=html_entity_decode("$valor");
-
-if($row['campo_valor'] ==="$valor"){$selected="checked";}else{$selected ="";}
-$resultado .= "
-
-
- $row[campo_valor]
-
-
";
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados 0015
";}
-
-return $resultado;
-}
-
-
-function checkbox_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-$valor_actual = json_render("$valor","csv","$control");
- if (mysqli_num_rows($sql)!='0'){
- // $resultado=" " ;
- //$name= array();
- while( $row = mysqli_fetch_array( $sql ) ) {
- $existe = strpos($valor_actual, $row[campo_valor]);
- if( $existe != ""){$selected="checked";}
- else{$selected ="";}
- $valor_limpio = trim($row['campo_valor']);
- $resultado .= "
-
-
-
- $valor_limpio
-
-
";
- }
- //$resultado .= " $valor_actual";
- }
- else{$resultado = " No hay resultados 0027
";}
-return $resultado;
-
-////
-
-
-return $resultado;
-}
-
-function select_multiple($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-$valor_actual = json_render("$valor","csv","$control");
- if (mysqli_num_rows($sql)!='0'){
- $resultado=" " ;
- while( $row = mysqli_fetch_array( $sql ) ) {
- $existe = strpos($valor_actual, $row[campo_valor]);
- if( $existe != ""){$selected="selected";}
- else{$selected ="";}
- $resultado .= "$row[campo_valor] ";
- }
- $resultado .= " $valor_actual";
- }
- else{$resultado = " No hay resultados 0026
";}
-return $resultado;
-}
-
-
-function rango($tabla,$campo,$key,$valor,$selected,$nombre,$onchange){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT min($campo) as min , max($campo) as max FROM $tabla WHERE $key ='$valor' ";
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- $min=mysqli_result($sql,0,"min");
- $max=mysqli_result($sql,0,"max");
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-///if($selected ==""){$selected = "$min";}
-$resultado="
- $min
-
- $max $selected
-
" ;
-
-
- }else{$resultado = " No hay resultados 0017
";}
-
-return $resultado;
-}
-
-function limite($id_campo,$contenido,$tipo){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT campo_valor FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- $limite=mysqli_result($sql,0,"campo_valor");
-
- }else{}
- if($tipo =='limite') { return $limite;}
-$respuesta = new xajaxResponse('utf-8');
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("limite");
-
-function confirma_campo($valor_1,$valor_2,$campo,$campo_confirmacion){
- $respuesta = new xajaxResponse('utf-8');
- $pos = strpos($campo,"email");
-
-if($pos == "") { //// si no es un email
- }
- else {//// si es un email se revisa
- $email = validar_email("$valor_1");
- if($email === 0 ) {
- $respuesta->addAssign("$campo","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("El email no es valido ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- return $respuesta;
- }
- else{
- }
- }
-
-
-
- if($valor_1 != $valor_2){$resultado = "Los valores NO son iguales";
- $respuesta->addAlert("$resultado");
- /// $respuesta->addAssign("$campo","style.color","red");
-
-
- $respuesta->addAssign("$campo","value","$pos");
- $respuesta->addAssign("$campo_confirmacion","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- // document.getElementById('mobileno').focus();
-
-
- }else{
- //$respuesta->addAssign("$campo_confirmacion","style.color","green");
-
- $respuesta->addAssign("$campo","className"," form-control ");
- $respuesta->addAssign("$campo_confirmacion","className"," form-control ");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-success ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-success ");
- }
- return $respuesta;
-}
-$xajax->registerFunction("confirma_campo");
-
-
-function validar_campo($valor,$campo,$tabla,$div,$id){
-$valor = mysql_seguridad($valor);
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta="SELECT $campo FROM $tabla WHERE $campo = '$valor' LIMIT 1";
-$sql =mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0' ){
-$verificacion = "atencion"; $existe='';
-
-$respuesta->addAssign($campo,"value","");
-///$respuesta->addAlert("El valor $valor $existe existe");
-$resultado = "Grrr $valor $existe existe ";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else {$verificacion ="check"; $existe='NO';}
-$resultado = "Ok, buen $campo ! ";
-$respuesta->addAssign("$id","style.backgroundColor","#CBE7CB");
-//$resultado .= "$valor,$campo,$tabla,$div";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-
-return $respuesta;
-}
-$xajax->registerFunction("validar_campo");
-
-
-function comprobar_email($email,$tipo,$campo){
-$email = mysql_seguridad($email);
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='tercero') {$id_campo='tercero_email';}
-
-
-else{$id_campo = 'email';}
-
-if($campo !=''){
-$id_campo="$campo";
-}
-
-
-if ($email == "" AND $tipo==''){
- $respuesta->addAlert("El campo email es obligatorio ");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- return $respuesta;
- }
-
- $mail_correcto = 0;
- //compruebo unas cosas primeras
- if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
- if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
- //miro si tiene caracter .
- if (substr_count($email,".")>= 1){
- //obtengo la terminacion del dominio
- $term_dom = substr(strrchr ($email, '.'),1);
- //compruebo que la terminación del dominio sea correcta
- if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
- //compruebo que lo de antes del dominio sea correcto
- $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
- $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
- if ($caracter_ult != "@" && $caracter_ult != "."){
- $mail_correcto = 1;
- }
- }
- }
- }
- }
- if ($mail_correcto AND $tipo=='' )
- {
-$consulta= "SELECT email FROM usuarios WHERE email = '$email' LIMIT 1 ";
- $link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-$revisa=mysqli_result($sql,0,"email");
-if ($revisa != ''){
-
- $respuesta->addAlert("$email: ya está registrado ");
- $respuesta->addAssign("email","style.color","red");
- $respuesta->addAssign("email","value","");
- return $respuesta;
- }
- $respuesta->addAssign("email","style.color","green");}
- elseif ($mail_correcto AND $tipo==='revisar' ) {
- $revisar = remplacetas("usuarios","email",$email,"email","");
- if($revisar[0] != '') {
-
- $respuesta->addAssign("$campo","style.color","white");
- $respuesta->addAssign("$id_campo","style.backgroundColor","green");
- }else{
- $respuesta->addAlert("$email: No existe en el sistema)");
- $respuesta->addAssign("$campo","value","");
- }
- return $respuesta;
- }
-
- elseif ($mail_correcto AND $tipo==='tercero' ) {
- $documento = remplacetas("terceros","email",$email,"documento","");
- if($documento[1] =='') { /// si el tercero NO existe
-
- }else { /// si el tercero existe en el sistema
-
- $tipo_persona = remplacetas("terceros","id",$documento[1],"tipo_persona","");
-
- if($tipo_persona[0] =='1') {
- $razon_social = remplacetas("terceros","id",$documento[1],"razon_social","");
- $resultado .= " $razon_social[0]] Nit: $documento[0]";
- } else {
- $primer_nombre = remplacetas("terceros","id",$documento[1],"p_nombre","");
- $segundo_nombre = remplacetas("terceros","id",$documento[1],"s_nombre","");
- $primer_apellido = remplacetas("terceros","id",$documento[1],"p_apellido","");
- $segundo_apellido = remplacetas("terceros","id",$documento[1],"s_apellido","");
- $resultado .=" \r $primer_nombre[0] $segundo_nombre[0] $primer_apellido[0] $segundo_apellido[0] \r Documento: $documento[0]";
- }
-
- $respuesta->addAlert("$email: $resultado");
- $respuesta->addAssign("tercero_documento","value","$documento[0]");
- $respuesta->addAssign("tercero_primer_nombre","value","$primer_nombre[0]");
- $respuesta->addAssign("tercero_segundo_nombre","value","$segundo_nombre[0]");
- $respuesta->addAssign("tercero_primer_apellido","value","$primer_apellido[0]");
- $respuesta->addAssign("tercero_segundo_apellido","value","$segundo_apellido[0]");
- $respuesta->addAssign("tercero_razon_social","value","$razon_social[0]");
- $respuesta->addAssign("tercero_id","value","$documento[1]");
-
- }
-
- }
- else
- {$respuesta->addAlert("$email: no es un correo válido");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("comprobar_email");
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-
-function milfs(){
-
- if($_SESSION['grupo'] != "1") {
- $menu = "Continuar... ";// header("Location: ../");
- }else{
-
- $crear_campos = formulario_crear_campo('','','');
- $listado = formulario_listado('','','');
- $url_home = remplacetas('empresa','id',"$_SESSION[id_empresa]",'web','');
- $url_home = "$url_home[0]";
-
-
- //$consultas = formulario_consultar('','');
- //$importador = formulario_importador('');
- //$limpiar_cache = borrar_tmp('');
- $configuracion= configuracion('');
-
- $login = login_boton('');
- $usuarios = "
-
-
- Gestión de usuarios
- ";
- $menu =
-"
-
-
-
-
- $crear_campos
-
- $listado
- $usuarios
- $configuracion
-
-
-
-
-
";
- }
- return $menu;
-}
-
-function url_existe($url)
-{
- $handle = @fopen($url, "r");
- if ($handle == false)
- return NULL;
- fclose($handle);
- return $url;
-}
-function es_imagen($url)
- {
- $imageSizeArray = getimagesize($url);
- $imageTypeArray = $imageSizeArray[2];
- return (bool)(in_array($imageTypeArray , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG )));
- }
-function parametrizacion($array) {
- //return $array;
- $link=Conectarse();
- mysqli_real_escape_string($link,$array);
- $accion = $array[accion];
- $tabla = $array[tabla];
- $campo = $array[campo];
- $opcion = $array[opcion];
- $descripcion= $array[descripcion];
- $visible= $array[visible];
- $id= $array[id];
-
- if($accion =='grabar'){
- $consulta= "INSERT INTO form_parametrizacion set tabla='$tabla', campo ='$campo',opcion ='$opcion' , descripcion ='$descripcion' ,visible='$visible'";
- }
- // return $consulta;
- $sql=mysqli_query($link,$consulta);
- if($sql){return "Campo grabado"; }else{return "";}
-
-}
-
-
-
-function registro_express($formulario,$accion) {
- //$formulario = mysql_seguridad($formulario);
- require("includes/datos.php");
- require ("includes/parametrizacion.php");
-
- //if($nombre_formulario =="") {$nombre_formulario = "login";}
- $nombre_formulario = "login";
- $boton ="Grabar
";
-$respuesta = new xajaxResponse('utf-8');
-
-
- if($accion =='confirmar')
- {
- $div = "registro_confirmacion_email";
- $email_existe = remplacetas("$tabla_autenticacion","email",$formulario[email_express_confirmar],"email","");
- $documento_existe = remplacetas("$tabla_autenticacion","documento_numero",$formulario[documento_express],"documento_numero","");
- if($email_existe[0] !="" or $formulario[email_express_confirmar] ==="") {
- $respuesta->addAlert("No se ha especificado un email o ya está en uso ");
- $respuesta->addAssign("email_express_grupo","className"," input-group has-error ");
- ///$respuesta->addAssign("debug","innerHTML"," $email_existe[2]");
- $respuesta->addScript("document.getElementById('email_express').focus(); ");
- return $respuesta;
- }
- if($documento_existe[0] !="" OR $formulario[documento_express] === "") {
- $respuesta->addAlert("No se ha proporcionado un documento único // $formulario[documento_express] // ");
- $respuesta->addAssign("documento_express_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('documento_express').focus(); ");
- return $respuesta;
- }
- if( !isset($formulario[password_express_confirmar]) ){
- $resultado ="Por favor escribe una clave. $formulario[password_express_confirmar] // $formulario[password_express]
$boton";
- $respuesta->addAssign("password_express"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("Por favor escribe una la clave ");
- $respuesta->addScript("document.getElementById('password_express').focus(); ");
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }
- if($formulario[password_express_confirmar] =="" or $formulario[password_express_confirmar] !== $formulario[password_express] ){
- $resultado ="Por favor escribe y confirma una clave. $formulario[password_express_confirmar] // $formulario[password_express]
$boton";
- $respuesta->addAssign("password_express"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("Por favor escribe y confirma la clave XXX");
- $respuesta->addScript("document.getElementById('password_express').focus(); ");
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }
- if($formulario[email_express_confirmar] ==="") {
- $resultado .= "$boton No hay un email válido // $formulario[email_express_confirmar]
";
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }else{
- $email_envio = $formulario['email_express_confirmar'];
-
- $rrn = rand(123,999);
- $rrncode = MD5("$rrn");
-// $aviso= aviso('','mail privacidad','');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-
-$asunto= "Código de validación";
-$cuerpo ="
-
-
Registro
-
-
-
Código de validación
-
Bienvenido a nuestra aplicación. Por favor digita el siguente código para validar tu cuenta.
-
$rrn
-
-
-
- $aviso
- ";
-
-mail("$email_envio","$asunto","$cuerpo","$headers") ;
- $boton ="Confirmar
";
- $control = MD5(mktime().$rrncode);
- $resultado .="
-
- $boton
- ";
- }
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
- }elseif($accion =="elegir") {
- $form = "
-
-
-
-
-
-
Ya estoy registrado
-
-
-
-
-
-
Antes de continuar, por favor revisa nuestras Políticas de privacidad y protección de datos.
- ";
- return $form;
- }
-elseif($accion =="validar") {
- $boton ="
Confirmar
";
- $div = "registro_confirmacion_email";
-
-
-if($formulario[password_express_confirmar] =="" OR $formulario[password_express_confirmar] != $formulario[password_express] ){
- $resultado ="
Por favor escribe y confirma una clave.
$boton";
- $respuesta->addAssign("password_express"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("Por favor escribe y confirma la clave");
- $respuesta->addScript("document.getElementById('password_express').focus(); ");
- $respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
- }
-$codigo_confirmacion = $formulario[codigo_confirmacion]; //
-$rrn = $formulario[rrn]; //
-$codificado = md5("$codigo_confirmacion");
-if($rrn == $codificado) {
-$control = $formulario[control]; // nuevo_
-$id_empresa = $formulario[id_empresa]; // nuevo_
-$equipo = $formulario[equipo]; // nuevo_
-if($id_empresa =="") {$id_empresa= $_SESSION['id_empresa'];}
-$nombre_formulario = $formulario[nombre_formulario]; // nuevo_
-$email_express = $formulario[email_express]; // aa@gmail.com
-$email_express_confirmar = $formulario[email_express_confirmar]; // aa@gmail.com
-$nombre_express = $formulario[nombre_express]; // nombre
-$apellido_express = $formulario[apellido_express]; // apellido
-$telefono_express = $formulario[telefono_express]; // 324343
-$password_express = $formulario[password_express]; // 1234
-$documento = $formulario[documento_express]; // 1234
-$password_express_confirmar = $formulario[password_express_confirmar]; // 23456
- $ip = obtener_ip();
-
- $link = Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "INSERT INTO $tabla_autenticacion (username,p_nombre,p_apellido,email,passwd,control,status,lastip,id_empresa,documento_numero,equipo)
- VALUES ('$email_express_confirmar','$nombre_express','$apellido_express','$email_express_confirmar','".MD5($password_express_confirmar)."','$control','1','$ip','$id_empresa','$documento','$equipo')";
-//$respuesta->addAssign("debug","innerHTML",$consulta);
-//return $respuesta;
- $sql_consulta=mysqli_query($link,$consulta);
- if($sql_consulta) {
- $id = mysqli_insert_id($link);
-
- $consulta_localizacion = "INSERT INTO localizacion (id_localizado,telefono,id_grupo) VALUES ('$id','$telefono_express','1')";
- $consulta_empresa = "INSERT INTO empresa SET razon_social = '$nombre_express $nombre_express', regimen_tributario = 'simplificado' ,id_responsable='$id'";
- $sql_localizacion=mysqli_query($link,$consulta_localizacion);
- //$sql_empresa=mysqli_query($link,$consulta_empresa);
- if($sql_empresa) {
- $id_empresa = mysqli_insert_id($link);
- $_SESSION[id_empresa] = $id_empresa;
- $_SESSION[id] = $id;
- }
- //// faltan variables de session
-
- }
-$resultado = "
Bienvenido
-
Felicitaciones, tu registro se efectuó correctamente, ahora puedes usar nuestros servicios.
-
";
-$div = "contenido";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}else{
-$resultado = "
Error El Código de confirmación no es correcto, por favor inténtalo nuevamente.";
-}
-
-$resultado .= "$boton";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
-}
-elseif($accion =="nuevo") {
-//$respuesta = new xajaxResponse('utf-8');
- $div="contenido";
- if($_SESSION['id'] == 1 AND @$soporte_multiempresa !== 0) {
-
-$empresa = select('empresa','id','razon_social','',"estado = '1'",'id_empresa','');
-$empresa ="
-
-
- Proyecto
-
- $empresa
-
-
-";
-}
-$listado_usuarios = usuarios_listado($tabla_autenticacion,"");
-$mailer = mailer('','','','');
-$id_empresa = "document.getElementById('id_empresa').value";
-$equipo = equipos('',"$id_empresa",'equipo','') ;
-$form = "
-
-
-
-
- Usuario
-
-
-
- $empresa
-
-
-
-
-
-
-
- $equipo
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-$mailer
-$listado_usuarios
-
-
-";
-$respuesta->addAssign("$div","innerHTML",$form);
-return $respuesta;
-
- }
-
-
-elseif($accion =="boton"){
-
-$modal ="
-
-
-
-
-
-
-
-
- ";
-return; //$modal;
- }
- else{}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-}
-$xajax->registerFunction("registro_express");
-
-
-function sucursales($id_usuario,$id_sucursal){
- $respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $consulta = "show tables LIKE 'sucursales'";
- $sql = mysqli_query($link,$consulta);
-
- if (mysqli_num_rows($sql)!=0){
- $onchange="xajax_sucursales_permitidas(this.value,'$id_usuario','','grabar')";
- $listado_sucursales = select("sucursales","id","sucursal_area,sucursal_nombre",$onchange,$where,"sucursales",$valor);
- $sucursales_permitidas = sucursales_permitidas($id_sucursal,$id_usuario,$onchange,"listado");
-
- $resultado ="
-
-
- Sucursales Permitidas
- $listado_sucursales
- $sucursales_permitidas
-
-
-
-
- ";
- }else{ $resultado="";}
-
-return "$resultado";
-}
-$xajax->registerFunction("sucursales");
-
-
-function sucursales_permitidas($id_sucursal,$id_usuario,$onchange,$accion){
-$respuesta = new xajaxResponse('utf-8');
-
-$opciones="";
-$link=Conectarse();
- mysqli_set_charset($link, "utf8");
- mysqli_real_escape_string($link,$id_usuario);
- $consulta ="
- SELECT * FROM `form_parametrizacion` WHERE tabla ='sucursales' AND campo = '$id_usuario'
- AND descripcion ='sucursal' ";
- $sql=mysqli_query($link,$consulta);
-
-
-
-if($accion =="listado" OR $accion =="comprobar" OR $accion=="establecer"){
-
-
- if($sql){
- if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- $sucursal_area = remplacetas('sucursales',"id","$row[opcion]",'sucursal_area',"") ;
- $sucursal_nombre = remplacetas('sucursales',"id","$row[opcion]",'sucursal_nombre',"") ;
- $sucursal_descripcion = remplacetas('sucursales',"id","$row[opcion]",'sucursal_descripcion',"") ;
- if($accion=='listado'){
- $revocar= "
-
-
-
";
- //xajax_parametrizacion_editar_sucursal(this.value,'establecer','$capa','1','')
- }elseif($accion=='establecer'){
- $revocar="
- ESTABLECER
-
";
- }else{}
-
-
- $opciones .="
$sucursal_area[0] $sucursal_nombre[0] $sucursal_descripcion[0] $revocar ";
-
- if(mysqli_num_rows($sql) == 1 AND $accion =='comprobar'){
-
- return $row['opcion'] ;
- }
-
- }
-
- $resultado="$opciones";
-
-
-
-
- }
- else { $resultado="
No hay sucursales autorizadas ";}
- }
-
- if($accion=="listado"){
- return "
";
- }
- elseif($accion=="establecer"){
- return "
";
- }else{
-
-
- $resultado= "multiples";
- return $resultado;
-
-
- }
-
-}elseif($accion =="grabar") {
-
- $existe = remplacetas('form_parametrizacion','campo',"$id_usuario",'opcion',"opcion='sucursal' and descripcion = 'sucursal'") ;
- if( $existe[0] == $id_sucursal ) {
- $respuesta->addAlert("El usuario ya está autorizado para esta sucursal ");
- return $respuesta;
- }
- $sucursal_area = remplacetas('sucursales',"id","$id_sucursal",'sucursal_area',"") ;
- $sucursal_nombre = remplacetas('sucursales',"id","$id_sucursal",'sucursal_nombre',"") ;
- $sucursal_descripcion = remplacetas('sucursales',"id","$id_sucursal",'sucursal_descripcion',"") ;
- $insertar = parametrizacion_linea('sucursales',"$id_usuario","$id_sucursal",'sucursal','','','');
- $revocar= "";
- $linea ="
$sucursal_area[0] $sucursal_nombre[0] $sucursal_descripcion[0] $revocar ";
- //$respuesta->addScript("xajax_parametrizacion_linea('id_usuario','$usuario','$form_id','autorizacion','autorizacion_confimar')");
- //$actualizado = formulario_permisos_usuario("$form_id","$usuario","listado");
- $respuesta->addAppend("listado_sucursal_linea","innerHTML","$linea");
- return $respuesta;
-
- }
-// elseif($accion =="comprobar") { $resultado = "$accion"; return $resultado ; }
-
-else{}
-}
-$xajax->registerFunction("sucursales_permitidas");
-
-function cambiar_grupo($id_usuario,$id_grupo){
- $respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $consulta = "UPDATE $_SESSION[tabla_autenticacion]
- SET `id_grupo` = '".mysqli_real_escape_string($link,$id_grupo)."'
- WHERE `id` = '".mysqli_real_escape_string($link,$id_usuario)."' ";
- $sql = mysqli_query($link,$consulta);
-$respuesta->addScript("");
- return $respuesta;
-
-}
-$xajax->registerFunction("cambiar_grupo");
-
-
-function buscar_funcionario($formulario,$tipo,$div){
-
- $tabla_autenticacion = $_SESSION['tabla_autenticacion'];
- $respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
- if($tipo =="buscador"){
- $div ="div_mostrar_funcionario";
- $resultado= "
-
-
-
-
- Documento
-
-
-
-
-
-
-
-
-
- ";
-
-print $resultado; return;
- }
- elseif( $tipo =='busqueda') {
- $id = $formulario;
-//$consulta= "SELECT * FROM $tabla_autenticacion ,usuarios_grupo WHERE $tabla_autenticacion.id_grupo = usuarios_grupo.id_grupo AND documento_numero ='".$documento."' LIMIT 1";
-$consulta= "SELECT *, usuarios_grupo.id AS id_grupo , $tabla_autenticacion.id AS id_usuario
- FROM $tabla_autenticacion ,usuarios_grupo
- WHERE $tabla_autenticacion.id_grupo = usuarios_grupo.id AND $tabla_autenticacion.id ='".$id."' LIMIT 1";
-
-
- //$respuesta->addAlert(" ya $consulta");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
-
- //return $respuesta;
- $sql = mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!=0){
- $resultado ="
";
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($_SESSION['grupo'] === "1") {
- //($tabla,$key,$campo,$valor,$accion,$div,$indice)
- $username = editar_campo("$tabla_autenticacion",$row['id_usuario'],"username","","","","");
- $email = editar_campo("$tabla_autenticacion",$row['id_usuario'],"email","","","","");
- $p_nombre = editar_campo("$tabla_autenticacion",$row['id_usuario'],"p_nombre","","","","");
- $s_nombre = editar_campo("$tabla_autenticacion",$row['id_usuario'],"s_nombre","","","","");
- $p_apellido = editar_campo("$tabla_autenticacion",$row['id_usuario'],"p_apellido","","","","");
- $s_apellido = editar_campo("$tabla_autenticacion",$row['id_usuario'],"s_apellido","","","","");
- $fecha_nacimiento = editar_campo("$tabla_autenticacion",$row['id_usuario'],"fecha_nacimiento","","","","");
- $telefono_celular = editar_campo("$tabla_autenticacion",$row['id_usuario'],"telefono_celular","","","","");
- $titulo_profesional = editar_campo("$tabla_autenticacion",$row['id_usuario'],"titulo_profesional","","","","");
- $ocupacion = editar_campo("$tabla_autenticacion",$row['id_usuario'],"ocupacion","","","","");
- $cargo = editar_campo("$tabla_autenticacion",$row['id_usuario'],"cargo","","","","");
- $equipo = editar_campo("$tabla_autenticacion",$row['id_usuario'],"equipo","","","","");
- if($row['imagen'] =="") { $imagen = "images/profile.jpg"; }
- else{$imagen= "images/secure/?file=300/$row[imagen]";}
- if($row['firma'] =="") { $firma = ""; }
- else{$firma= "images/secure/?file=300/$row[firma]";}
-
- //$grupo = seleccionar_grupo('id_grupo',"$row[id_grupo]");
- $grupo = select('usuarios_grupo','id','grupo_nombre',"xajax_cambiar_grupo('$row[id_usuario]',(this.value))",'',"","$row[id_grupo]");
- //select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor)
- $grupo ="
-
-
- Grupo:
-
- $grupo
-
-
- ";
- }
-
- //$ = editar_campo("$tabla_autenticacion",$row['id_usuario'],"","","","");
- $listado_formularios = formulario_permisos_usuario("","$id",'');
- $listado_sucursales = sucursales("$id",'');
- $subir_imagen = subir_imagen("","imagen","milfs");
- $subir_firma = subir_imagen("","firma","milfs");
- $resultado .= "
-
-
-
Perfil de usuario
-
-
-
-
-
-
- $subir_imagen
-
-
Cambiar imagen
-
-
-
- Nombre de usuario: $username
- Primer nombre: $p_nombre
- Otros nombres: $s_nombre
- Primer apellido: $p_apellido
- Otros apellidos: $s_apellido
- Fecha de nacimieno: $fecha_nacimiento
- Teléfono: $telefono_celular
- Titulo profesional: $titulo_profesional
- Ocupación: $ocupacion
- Cargo: $cargo
-
-
-
- $listado_formularios
- $listado_sucursales
-
- Firma escaneada
-
- $subir_firma
-
- Establece firma
-
-
-
-
-
-
-
-
- ";
-
-
- }
-
- $resultado .= "";}else {
-
- $resultado ="
No existe el usuario
";
- }
-
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$regresar");
- //$respuesta->addAssign("titulo_modal","innerHTML","$datos_usuario");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-
- }
- elseif( $tipo =='nuevo') {
- ///$grupo = select('usuarios_grupos','id','nombre,regimen','xajax_eapbs((this.value))',"",'');
- $grupo = seleccionar_grupo('id_grupo');
- $resultado ="
-
-
- ";
-
- }
- elseif( $tipo =='grabar') {
- $password = generar_password();
- $password_md5 = md5($password);
- $consulta ="INSERT INTO $tabla_autenticacion SET
-
-
- username='$formulario[username]',
- email='$formulario[email]',
- p_nombre='$formulario[p_nombre]',
- s_nombre='$formulario[s_nombre]',
- p_apellido='$formulario[p_apellido]',
- s_apellido='$formulario[s_apellido]',
- fecha_nacimiento='$formulario[fecha_nacimiento]',
- telefono_celular='$formulario[telefono_celular]',
- titulo_profesional='$formulario[titulo_profesional]',
- documento_numero='$formulario[documento_numero]',
- ocupacion='$formulario[ocupacion]',
- cargo='$formulario[cargo]',
- id_grupo='$formulario[id_grupo]',
- passwd ='$password_md5'
-
- ";
- $insertar = mysqli_query($link,$consulta);
- $resultado = "$consulta";
- }
-else {}
-
- $resultado .="";
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAlert(" ya $resultado");
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("buscar_funcionario");
-
-
-
-function usuarios_listado($tabla,$div){
-
- if($_SESSION['id'] == 1) { $w_empresa="";} else {$w_empresa = "WHERE id_empresa= '$_SESSION[id_empresa]' ";}
-
-$link=Conectarse();
-
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT * FROM $tabla $w_empresa ORDER BY username ";
-$sql=mysqli_query($link,$consulta);
-
-$resultado="
-
-Id Username Nombre Email Proyecto Equipo
- " ;
-if (mysqli_num_rows($sql)!='0'){
-// if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$username= editar_campo("$tabla",$row['id'],"username","","","","");
-$p_nombre= editar_campo("$tabla",$row['id'],"p_nombre","","","","");
-$p_apellido= editar_campo("$tabla",$row['id'],"p_apellido","","","","");
-$email= editar_campo("$tabla",$row['id'],"email","","","","");
-$equipo= editar_campo("$tabla",$row['id'],"equipo","","","","");
-//$empresa_id= editar_campo("$tabla",$row['id'],"id_empresa","","","");
-$empresa_id= $row['id_empresa'];
-$grupo = remplacetas('usuarios_grupo','id',"$row[id_grupo]","grupo_nombre","") ;
-$empresa = remplacetas('empresa','id',"$row[id_empresa]","razon_social","") ;
-
-
- require ("includes/parametrizacion.php");
- if($_SESSION['id'] == 1 AND @$soporte_multiempresa !== 0) {
- $empresa_id= editar_campo("$tabla",$row['id'],"id_empresa","","","","");
- }else {$empresa_id= $row['id_empresa'];}
-if($row['id'] !="1") {
- $acciones = " ";}
- else {$acciones="";}
-$resultado .= "$row[id] $username $p_nombre $p_apellido $email $empresa[0] $grupo[0] $equipo Editar
$acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados 0018
";
- }
-
- if($div =="") {
- $div="contenido";
- // $resultado ="Configuración multiempresa ";
- return $resultado;
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("usuarios_listado");
-
-
-function XXX($identificador,$tipo,$usuario,$div){
- if($tipo=="todo") {
- $w_tipo ="";
- }else {
- $w_tipo ="AND tipo= '$tipo'";
- }
-$consulta = "SELECT * FROM form_interacciones WHERE identificador = '$identificador' $w_tipo ORDER BY timestamp DESC ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
- mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = mysqli_num_rows($sql);
-
-require ("milfs/includes/parametrizacion.php");
-
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $usuario = remplacetas('form_datos','control',"$row[usuario]","contenido","id_campo = '$login_campo_nombres'") ;
- $nombre_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido"," id_campo = '$login_campo_nombres'") ;
- $avatar_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_avatar'") ;
- if($tipo =="todo") {
- if($row[tipo] =="Mensaje"){ $alerta='default'; }
- elseif($row[tipo] =="Si"){ $alerta='success'; }
- elseif($row[tipo] =="No"){ $alerta='warning'; }
- elseif($row[tipo] =="Comentar"){ $alerta='info'; }
- else{ $alerta=''; }
-
- }
-
- $listado .= "
-
-
- ".strip_tags($row['mensaje'])."
- $usuario[0] $row[timestamp]
-
-
- ";
-
- }
-$resultado= "
-
-
-
- Interacciones
-
-
-
-
-
";
-}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("XXX");
-
-function cmp($a, $b) {//Ordenar los numeros descendientemente
- if ($a == $b) return 0;
- return ($a < $b) ? 1 : -1;
-}
-
-
-function holamundo() {
-
- $respuesta = new xajaxResponse('utf-8');
- //$respuesta->addAssign("mensaje_$control","innerHTML","");
- $respuesta->addAlert("Hola mundo!");
- return $respuesta;
-}
-
-$xajax->registerFunction("holamundo");
-
-
-?>
diff --git a/milfs/funciones/funciones_20151115.php b/milfs/funciones/funciones_20151115.php
deleted file mode 100644
index be13f64..0000000
--- a/milfs/funciones/funciones_20151115.php
+++ /dev/null
@@ -1,8396 +0,0 @@
-addScript("javascript:location.reload(true);"); return $respuesta;}
- $campo = buscar_campo_tipo($form,"18");
- $campo_password = $campo[0];
- $comprobar_clave = remplacetas('form_datos','form_id',"$form",'control'," BINARY contenido = MD5('$password') AND id_campo = '$campo_password'") ;
- $password = md5($password);
- $aviso = "";
-
-if($comprobar_clave[0] !== $control ) {
- unset($_SESSION['permiso_identificador']);
- $respuesta->addAlert("La clave no es válida ");
- return $respuesta;
- }
- else{
- $_SESSION['permiso_identificador']="$control";
- $respuesta->addAssign("pie_modal","innerHTML",$aviso);
- $respuesta->addScript("javascript:location.reload(true);");
- }
- return $respuesta;
-}
-$xajax->registerFunction("autoriza_formulario_mostrar");
-
-
-
-function landingpage_contenido_identificador($identificador){
- $linea="";
-$id_empresa = remplacetas('form_datos','control',$identificador,'id_empresa',"") ;
- $form = remplacetas('form_datos','control',$identificador,'form_id',"") ;
- $impresion = mostrar_identificador($identificador,"","landingpage");
- $imagen = buscar_imagen($form[0],$identificador,"","$id_empresa[0]");
- if($imagen !="") { $clase = "col-lg-5 col-sm-6";}else {$clase = "col-lg-12 col-sm-12";}
- $uri = " Ver mas ... ";
- //$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- $linea = "$identificador
-
-
-
-
-
-
-
-
-
-
-
- $impresion
- $uri
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
-
- return $linea;
- }
-
-
-function landingpage_contenido_formulario($form){
-$consulta= "SELECT control FROM form_datos WHERE form_id = '$form' GROUP BY control ORDER BY id DESC ";
- $id_empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $linea="";
- $fila = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
- $impresion = mostrar_identificador($row['control'],"","landingpage");
- $imagen = buscar_imagen($form,$row['control'],"","$id_empresa[0]");
- if($imagen !="") { $clase = "col-lg-5 col-sm-6";}else {$clase = "col-lg-12 col-sm-12";}
- $uri = " Ver mas ... ";
- $linea .= landingpage_contenido_identificador($row['control']);
- //$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- /*$linea .= "$row[control]
-
-
-
-
-
-
-
-
-
-
-
- $impresion
- $uri
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";*/
-}
- }
- return $linea;
- }
-
-function landingpage_contenido($id_empresa){
-$consulta= "SELECT * FROM form_id WHERE publico ='1' AND id_empresa= '$id_empresa' ORDER BY id DESC";
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $linea="";
- $fila = 1;
- include("includes/datos.php");
- $error_token = "";
- $contenido = "";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; } else {$error_token = "";}}
- while( $row = mysql_fetch_array( $sql ) ) {
- $contenido = "Mas información ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- if($ultimo_mapa[0] !="") {
- $campos = explode(" ",$ultimo_mapa[0]);
- $lat = $campos['0'];
- @$lon = $campos['1'];
- @$zoom = $campos['2'];
-
- if($error_token != 1) {
- $miniatura = "
-
-
- "; }else{ $miniatura ="No se ha definido un token de mapbox
";}
- }
- if($geo[0] !='') { $mapa= "$miniatura ";}else {$mapa='';}
- if ( $fila%2==0){
-
- $linea .= "
-
-
-
-
-
-
-
-
-
$row[nombre]
-
$row[descripcion]
- $mapa
-
-
-
- $contenido
-
-
-
-
-
-
-
-
- ";
-
- }else{
- $linea .= "
-
-
-
-
-
-
-
-
-
-
$row[nombre]
-
$row[descripcion]
- $mapa
-
-
-
- $contenido
-
-
-
-
-
-
-
- ";
- }
-
-
- //$linea .= "$fila $plantilla$row[nombre] ";
- $fila++;
- }
- }
-return $linea;
-}
-
-function buscar_imagen($form,$control,$tipo,$empresa) {
- $imagen="";
- if($control !="") { $w_control = "AND form_datos.control ='$control'";}else{$w_control ="";}
- if ($form ==""){
- $consulta = "SELECT form_datos.id_empresa, contenido , campo_nombre , id_campo FROM form_id, form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_id.id = form_datos.form_id
- AND form_datos.id_empresa = '$empresa'
- AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $imagen = mysql_result($sql,0,"contenido");
- }
-if($tipo == "consulta") { return $consulta; }
- return $imagen;
-
- }
-$publico = remplacetas('form_id','id',"$form",'publico',"") ;
-if($publico[0] !="0" ){
-$campo_imagen = buscar_campo_tipo("$form","15");
-$imagen = remplacetas('form_datos','form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ;
-//$imagen = "$imagen[0]";
-return $imagen[0];
-}
-return;
-}
-
-function wait($div){
-$respuesta = new xajaxResponse('utf-8');
-$resultado =" Procesando ... ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-
-function campos_tabla($filtro,$div) {
-$mio ="";
-$lineas ="";
-$w_empresa ="";
-$w_especialista ="";
-if($filtro == 'id_empresa') { $w_empresa = " AND id_empresa = '$_SESSION[id_empresa]' ";}
-if($filtro == 'id_especialista') { $w_especialista = " AND id_especialista = '$_SESSION[id]' ";}
-if($filtro == 'llenos') {
-$consulta= " SELECT * , form_campos.id as id FROM form_campos, form_datos WHERE form_campos.id = form_datos.id_campo $w_empresa $w_especialista GROUP BY id_campo ORDER BY campo_area, campo_nombre ";
-}elseif($filtro == 'vacios') {
-$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_datos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-}else{
-$consulta= " SELECT * FROM form_campos WHERE id = id $w_empresa $w_especialista ORDER BY campo_area, campo_nombre ";
-}
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- //$div = "div_tabla_campos";
- $filtros = "
-
-
-
- Seleccione
- Todos
- Mis campos
- Mi empresa
- Vacios
- Llenos
-
-
-
- ";
- if (mysql_num_rows($sql)!='0'){
- while( $row = mysql_fetch_array( $sql ) ) {
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"") ;
- $campo_tipo ="$tipo_nombre[0] ";
- if($_SESSION['id_empresa'] == $row['id_empresa']) {
- $row['campo_nombre']= editar_campo("form_campos","$row[id]","campo_nombre","","","","");
- $row['campo_descripcion']= editar_campo("form_campos","$row[id]","campo_descripcion","","","","");
- $row['campo_area']= editar_campo("form_campos","$row[id]","campo_area","","","","");
- $row['activo']= editar_campo("form_campos","$row[id]","activo","","","","","");
- $accion = " ";
- $class='success';
- }else {
- $class='';
- $accion ="";
- }
- if($_SESSION['id'] == $row['id_especialista']) {
- $row['id_especialista'] = " $row[id_especialista]";
- }
-
- $lineas .= "$row[id] $row[campo_nombre] $row[campo_descripcion] $campo_tipo $row[campo_area] $row[activo] $row[id_empresa] $row[id_especialista] $mio $accion ";
- }
- $tabla = "
-
-
- id Nombre Descripcion Tipo
- $lineas
-
-
- ";
- }
- if($div !=""){
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$tabla");
- return $respuesta;
- }
- else{
- $resultado = "$filtros $tabla";
- return $resultado;
-}
-}
-$xajax->registerFunction("campos_tabla");
-
-function remplacetas_noid($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysql_query($consulta,$link);
-if (@mysql_num_rows($sql)!=0){
-$resultado[] = mysql_result($sql,0,$por);
-$resultado[] = mysql_result($sql,0,"$campo");
-$resultado[] = $consulta;
-$resultado[] = mysql_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-
-
-function contar_visitas($id,$tipo) {
-$id_visitas = remplacetas('form_parametrizacion','campo',$id,'id'," tabla='form_id' AND opcion='$tipo'") ;
-$visitas = remplacetas('form_parametrizacion','id',$id_visitas[0],'descripcion',"") ;
-$cantidad = $visitas[0]+1;
-if($visitas[0] =="") {
- $consulta = "INSERT INTO form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'";
- }
-else {
- $consulta = "UPDATE form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'
- WHERE id ='$id_visitas[0]' LIMIT 1";
-}
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-
-return $cantidad;
-}
-
-
-function geocoder($valor,$campo){
-$respuesta = new xajaxResponse('utf-8');
-if(strlen($valor) > 3) {
-$valor = urlencode($valor);
-$json = "https://nominatim.openstreetmap.org/search.php?format=json&limit=5&addressdetails=1&q=$valor";
-$data = file_get_contents("$json");
-$geocoder = json_decode($data, true);
-if($data ==="[]") {$vacio="
-
- No se encontraron resultados
-";}
-
-foreach ($geocoder as $clave => $valor) {
- $ciudad = $valor['address']['city'];
- $municipio = $valor['address']['town'];
- $pais = $valor['address']['country'];
- $departamento = $valor['address']['state'];
- $licencia= $valor['licence'];
- $link = "$_SESSION[url]mapero.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo";
- $linea .= "
-
-
- $valor[display_name]
-
- $ciudad $municipio $pais $departamento
-
-
-
- ";
-//foreach ($valor as $clave => $valor) { $linea .= "CLAVE : $clave > VALOR: $valor"; }
-}
-$resultado = "
-
- $vacio $licencia
-
";
-}
- //$div_contenido = "$div
";
- //$respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("muestra_geocoder","innerHTML","$resultado");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("geocoder");
-
-
-function mostrar_psi(){
-$respuesta = new xajaxResponse('utf-8');
-include("psi.php");
- //$div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_psi");
-
-function multiempresa_crear($tabla,$formulario,$div) {
-$formulario = limpiar_caracteres($formulario);
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '".mysql_real_escape_string($v)."',";
- }
- $valores = "$valores id_responsable = '$_SESSION[id]'";
-
-$respuesta = new xajaxResponse('utf-8');
-
- $insertar = "INSERT INTO $tabla set $valores";
- $sql=mysql_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
-
-
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("multiempresa_crear");
-
-
-function multiempresa($tabla,$div){
- if($_SESSION['id'] == 1) {
- if($div =="") {
- $div="contenido";
- $resultado =" Configuración multiempresa ";
- return $resultado;
- }
-$link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$consulta = "SELECT * FROM empresa ";
-$sql=mysql_query($consulta,$link);
-
-$resultado="
-$name
-Id Nombre Sigla Email Web Dirección Teléfono
- " ;
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
-$razon_social= editar_campo("empresa",$row['id'],"razon_social","","","");
-$sigla= editar_campo("empresa",$row['id'],"sigla","","","");
-$email= editar_campo("empresa",$row['id'],"email","","","");
-$web= editar_campo("empresa",$row['id'],"web","","","");
-$direccion= editar_campo("empresa",$row['id'],"direccion","","","");
-$telefono= editar_campo("empresa",$row['id'],"telefono","","","");
-$estado= editar_campo("empresa",$row['id'],"estado","","","");
-
-if($row[id] !=1) {$acciones = " Estado: $estado";}
-$resultado .= "$row[id] $razon_social $sigla $email $web $direccion $telefono $acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-Agregar empresa
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa");
-
-
-
-
-
-
-function contar_valores_formulario($campo,$key,$valor){
-$consulta = "SELECT distinct($campo) as cantidad FROM form_datos WHERE $key LIKE '$valor' ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = mysql_num_rows($sql);
-//$resultado = mysql_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-function listar_campos_formulario($id_form,$tipo){
- $tipo="";
-$consulta = "SELECT distinct(id_campo),campo_nombre FROM form_datos,form_campos WHERE form_id = '$id_form' AND form_datos.id_campo = form_campos.id ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-while( $row = mysql_fetch_array( $sql ) ) {
- if($tipo=="nombres"){
-$resultado[] = "$row[campo_nombre]";}
- elseif($tipo=="select"){
- $option .= "$row[campo_nombre] ";
- }
- else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){
-$resultado = "
-
- Campo
- $option
- ";
-
-}
-//$resultado = mysql_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-//($formulario,$div,$registros,$pagina,$formato)
-function consultar_formulario($form,$registros,$pagina,$tipo){
- $imagen ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
-$respuesta = new xajaxResponse('utf-8');
-//if(is_array($form)) {$id_form = $form['id_form'];}else { $id_form = $form;}
-$id_empresa = $_SESSION['id_empresa'];
-if(is_array($form)) {
- $fecha_inicio = $form["inicio"];
- if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
- $fin = $form["fin"];
- if( $fin !="") { $fechas = " AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') AND UNIX_TIMESTAMP('$fin 23:59:59')";}
- $id_form = $form['id_form'];
- @$id_campo = $form['id_campo'];
- $busqueda = $form['busqueda'];
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$form[busqueda]%%'";}else{$busca ='';}
-if($id_campo !=''){$campo ="AND id_campo = '$id_campo'";}else{$campo ='';}
-}else{
-$id_form = $form;
-}
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' AND form_datos.id_empresa = '$id_empresa' $busca $campo $fechas GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql_total=mysql_query($consulta_principal,$link);
-$total_registros = mysql_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- if($tipo == "csv" ) {$consulta_limite = "$consulta_principal";}
- else{$consulta_limite = $consulta_principal.$limite;}
- $sql=mysql_query($consulta_limite,$link);
-
-//$sql=mysql_query($consulta_principal,$link);
-if (mysql_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-$fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $campos = listar_campos_formulario($id_form,"select");
- $peticion = "
-
-
-
-
-
-
-
-
- ";
-/////// FILTRO
-
-$boton_borrar = "
-
-
-
- ";
-
- if($formato!='csv'){
- $boton_exportar = " Exportar ";}
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
-
- $paginacion = "";
-
-
-
-
- $encabezado = "
- ";
-
- $total_registros = mysql_num_rows($sql);
- $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- $listado_nombres = "Identificador $listado_nombres ";
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-while( $row = mysql_fetch_array( $sql ) ) {
-//$cantidad_campos = contar_valores_formulario("id_campo","control","$row[control]");
-
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-foreach($listado_campos as $campo=>$valor){
- $contenido = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo ='$valor' ") ;
-@$listado_campos .= "$contenido[0] ";
-
- }
- if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
- $menu ="
-
-
-
- ";
-$lineas .= " $menu$row[control] $listado_campos ";
-
- }
-
-$tabla ="
-
- $listado_nombres
-
- $lineas
-
-
";
-$resultado = "
-$encabezado
-
-
-
-$tabla
-
-
-";
- }
-else {
-$resultado ="
No hay resultados $consulta_limite";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-if($tipo =="csv") {
-$html = str_get_html($tabla);
- // header('Content-type: application/ms-excel');
- // header('Content-Disposition: attachment; filename=sample.csv');
- $nombre_archivo ="tmp/Prueba_Formulario_".mktime()."_".$_SESSION['id'].".csv";
- //$fp = fopen("php://output", "w");
- $fp=fopen($nombre_archivo , "w");
- foreach($html->find('tr') as $element)
- {
- $td = array();
- foreach( $element->find('th') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- if (!empty($td)) {
- fputcsv($fp, $td);
- }
-
- $td = array();
- foreach( $element->find('td') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- fputcsv($fp, $td);
- }
-
- fclose($fp);
-$boton_descarga ="Descargar ";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = " $datos
";
- $div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- if($tipo =="modal") {
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-}
- return $respuesta;
-
-}
-$xajax->registerFunction("consultar_formulario");
-
-
-function datos_array($identificador) {
-
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$consulta ="SELECT * FROM form_datos WHERE control = '$identificador'
-GROUP BY id_campo ORDER BY timestamp DESC ";
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
-$array = array();
-$array[identificador] = "$identificador";
-while($row = mysql_fetch_array( $sql ))
- {
- $contenido = remplacetas('form_datos','id',$row[id],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id],'id_campo',"") ;
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- //$array[id_campo] = $row[id_campo];
- $array[$nombre_campo[0]] = "$contenido[0]";
- $array['timestamp'] = "$row[timestamp]";
- $array['proceso'] = "$row[proceso]";
- $array['id'] = "$row[id]";
- $array['orden'] = "$row[orden]";
- //$array[] = $row;
-
-
- }
- return $array;
-}
-
-function parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div){
- $respuesta = new xajaxResponse('utf-8');
-
-
- $link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = '".mysql_real_escape_string($tabla)."' AND campo ='".mysql_real_escape_string($campo)."' AND opcion ='".mysql_real_escape_string($opcion)."' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = '".mysql_real_escape_string($tabla)."' , campo ='".mysql_real_escape_string($campo)."', opcion ='".mysql_real_escape_string($opcion)."', descripcion ='".mysql_real_escape_string($descripcion)."', visible='1' ";
-$sql=mysql_query($consulta,$link);
-if($sql) {
- $resultado = "$descripcion";
- $respuesta->addAssign("$div","innerHTML",$resultado);
-
- }else {
-$respuesta->addAlert("$consulta");
-}
-//$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("parametrizacion_linea");
-
-function email_contenido($id,$control,$id_campo,$email_envio){
-
-if($email_envio =="") {
- $email = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$id' AND id_campo ='$id_campo' ") ;
- $formulario =
-
- "
- ";
-return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
-
- $validar = validar_email($email_envio);
- if($validar == '0') {
- $respuesta->addAssign("input_email_envio","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('email_envio').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
-
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $propietario[0]" . "\r\n";
-$impresion = formulario_imprimir("$id","$control","email");
-
-$impresion ="
-$encabezado
-$impresion
";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en http://$_SERVER[HTTP_HOST]/milfs?id=$id&c=$control
-Saludos de MILFS
-";
- if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="Se envió un email a $email_envio "; }else {$exito .="error enviando correo";}
-
-$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("email_contenido");
-
-
-function mapa_ficha($id) {
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
- $id_empresa = $id_empresa[0];
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $imagen = " ";
- $datos ="$nombre[0] $descripcion[0] ";
- $empresa = "$razon_social[0] |
$web[0] | $direccion[0] | $email[0]
";
-
- //$prueba = json_decode($prueba);
-
- $resultado ="
-
-
-
-
- $imagen
-
-
-
$nombre[0]
- $descripcion[0]
-
-
-
-
$razon_social[0]
-
MILFS
-
-
-
- ";
- return $resultado;
-}
-
-function formulario_parametrizacion($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($accion =='categorias') {
-
- }
- elseif($accion =='grabar'){
-
- }
- else {
- $listado ="
-
-
-
-
-
-
Parametrización
-
Parametrización del formulario $nombre[0]. Por favor seleccione una opción
-
-
-
-
- ";
- $respuesta->addAssign($div,"innerHTML",$listado);
- return $respuesta;
- }
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "Filtro
-
- Todos ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= " ";
- }
-else{$resultado = 'nada';}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_parametrizacion");
-
-
-
-function lista_categorias($perfil,$categoria,$tipo) {
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
- $categoria_campo = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- if($categoria_campo >0 ) {
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$categoria_campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "";
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $icono = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$row[md5_contenido]'") ;
- if($icono[0] =='') {
- $icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- $contenido= substr($row[contenido],0, $length = 15);
-$resultado .= "
$contenido ";
- }
-$resultado .= "
";
- }
-else{$resultado = '';}
-}
-return $resultado;
-}
-
-function parametrizacion_categoria($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-$categorias = lista_categorias($perfil,$categoria,$tipo);
-if($accion =='categorias') {
- $resultado = "
-
- La categorización se usa para filtrar los datos de un formulario en categorias que pueden ser usadas por ejemplo para diferenciar los datos en un mapa.
- Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza
- $categorias
-
-
-
-
- Icono para la categoría
-
-
- URL
-
-
-
-
- Grabar
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- $respuesta -> addScript("xajax_formulario_campos_select('$perfil','parametrizacion')");
- return $respuesta;
- }
- elseif($accion =='grabar'){
- if($form[tipo] =='categoria') {
- $url_icon = "$form[icon]";
- $es_imagen = es_imagen("$url_icon");
- $altura = GetImageSize($url_icon);
- $altura= $altura[1];
- if($form[id_campo] =='') { $error = "Seleccione un campo";}
- elseif($form[campo_filtro] =='') { $error = "Seleccione Filtro";}
- elseif(!$es_imagen ) { $error = " [ $url_icon ] no es una imagen válida para el ícono";}
- elseif($altura > 500 ) { $error = " El ícono no debe tener mas de 300 pixeles de alto.";}
- elseif($form[icon] =='') {
- $error = "Escriba la dirección del ícono";
- }
- else {$error='';}
- if( $error !='') {
- $respuesta -> addAlert("$error $revisar_url ");
- return $respuesta;
- }else{
- $categoria_icono[tabla] = "form_id";
- $categoria_icono[campo] = "$form[perfil]";
- $categoria_icono[opcion] = "$form[tipo]:icon:$form[campo_filtro]";
- $categoria_icono[descripcion] = "$url_icon";
- $categoria_icono[visible] = "1";
- $categoria_icono[accion] = "grabar";
- $grabar_icono = parametrizacion($categoria_icono);
-
- $categoria_campo[tabla] = "form_id";
- $categoria_campo[campo] = "$form[perfil]";
- $categoria_campo[opcion] = "$form[tipo]:campo";
- $categoria_campo[descripcion] = "$form[id_campo]";
- $categoria_campo[visible] = "1";
- $categoria_campo[accion] = "grabar";
- $grabar_campo = parametrizacion($categoria_campo);
-
- $categoria_filtro[tabla] = "form_id";
- $categoria_filtro[campo] = "$form[perfil]";
- $categoria_filtro[opcion] = "$form[tipo]:filtro:$form[id_campo]";
- $categoria_filtro[descripcion] = "$form[campo_filtro]";
- $categoria_filtro[visible] = "1";
- $categoria_filtro[accion] = "grabar";
- $grabar_filtro = parametrizacion($categoria_filtro);
-
-
- $resultado =" $form[campo_filtro] $form[id_campo] ($altura ) [$grabar_icono]";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-
- }/// fin de parametrizacion categorias
- }
-}
-$xajax->registerFunction("parametrizacion_categoria");
-
-
-function parametrizacion_plantilla_campos($formulario){
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-while( $row = mysql_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen =" "; $identificador=" ";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= " $imagen $row[campo_nombre] [$row[id_campo]] ";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-
-";
-}
-return $resultado;
-}
-
-
-function parametrizacion_plantilla($formulario,$div,$valores) {
- $respuesta = new xajaxResponse('utf-8');
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$link=Conectarse();
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-mysql_query("SET NAMES 'utf8'");
-if($valores =="boton") {
-$consulta ="SELECT * FROM form_parametrizacion WHERE campo = '$formulario' AND `opcion` REGEXP '^plantilla:' ORDER BY opcion";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $campos_opcion = explode(":",$row[opcion]);
- $plantilla_nombre = $campos_opcion[1];
-$listado .= "$row[opcion] ";
-$li .= "
- $plantilla_nombre
-
-
-
- ";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-
-
-
-";
-$lista ="
-
-Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas HTML5 , CSS3 y clases de Bootstrap
-
-
- Nombre
- Editar
- Ver
-
-$li
-
-Nueva plantilla
-";
- $respuesta->addAssign("$div","innerHTML","$lista");
- return $respuesta;
-
-}
-else {
-
-$resultado ="
-
-
-
Aún no se han definido plantillas para este formulario
- Crear una plantilla
-
-
-";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-
-elseif($valores =="formulario" OR is_numeric($valores)) {
- $campos = parametrizacion_plantilla_campos("$formulario");
- $descripcion = remplacetas('form_parametrizacion','id',$valores,'descripcion',"") ;
- $opcion = remplacetas('form_parametrizacion','id',$valores,'opcion',"") ;
- $campos_opcion = explode(":",$opcion[0]);
- $plantilla_nombre = $campos_opcion[1];
- include("includes/bootsrap_class_list.php");
-$resultado ="
-
-
-
-
-
-
-
- A
A
')); \">
-
-
A
-
A
-
div
-
H1
-
H2
-
H3
-
-
<li>
-
-
MB
-
-
-
-
-
- $descripcion[0]
-
-
- $campos
-
-
-
-
-";
-
-}
-
-elseif(is_array($valores)) {
- $texto=str_replace('"',"'",$valores[text_contenedor]);
-$plantilla = htmlentities($texto);
-if($valores[nombre_plantilla] == "") {
- $respuesta->addAlert("No ha especificado un nombre para la plantilla");
- $respuesta->addAssign("input_nombre_plantilla","className","input-group has-error");
- return $respuesta;
- }
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='plantilla:$valores[nombre_plantilla]' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='plantilla:$valores[nombre_plantilla]', descripcion =\"$plantilla\", visible='1' ";
-$sql=mysql_query($consulta,$link);
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-$datos = contenido_mostrar("$formulario","$ultimo[1]",'',"$valores[nombre_plantilla]");
-$preview = " $valores[nombre_plantilla] $datos ";
- $div_contenido = "$preview
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- $respuesta->addAssign("titulo_modal","innerHTML","$resultado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- return $respuesta;
-
-}
-else{
-$resultado ="";
-}
-$resultado .= "";
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla");
-
-
-function parametrizacion_titulo($formulario,$div,$valores) {
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if($valores =="") {
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "$row[campo_nombre] [$row[id_campo]] ";
-}
-$resultado = "
-
- El campo titulo, se usa como indice del formulario en algunas visualizaciones como el timeline
- Campo de Título actual $campo_titulo_nombre[0] [$campo_titulo[0]]
-
-
- Cambiar campo título
-
-
- $listado
-
-
-
-";
-}
-}else {
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='titulo' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='titulo', descripcion ='$valores', visible='1' ";
-$sql=mysql_query($consulta,$link);
-if($sql){
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$resultado ="addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_titulo");
-
-
-function mostrar_modal($form,$control,$plantilla){
-$respuesta = new xajaxResponse('utf-8');
-if( $control == "") {
- $datos = formulario_areas($form,"");
-}else {
-$datos = contenido_mostrar("$form","$control",'',"$plantilla");
-}
-$div ="contenido_de_modal";
-
-$resultado = "
-
- $datos
-
-
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_modal");
-
-function portal_filtro_cadena($formulario,$id_campo,$control,$div,$plantilla){
-$cadena = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$formulario' AND id_campo ='$id_campo' ") ;
-$consulta ="SELECT * FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' AND contenido = '$cadena[0]'
- GROUP BY control ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-
- $datos = contenido_mostrar("$formulario","$row[control]",'',"$plantilla");
- if($plantilla == "") {
-$listado .= "
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-
- $listado
-
-";
-}
-
-if ($div ==""){$div="mostrar_contenido";}
-else {$div = "$div";}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("portal_filtro_cadena");
-
-
-
-function portal_filtro_campos($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $formulario_nombre[0] / $campo_nombre[0]
- {json}
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_filtro_campos_select($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $campo_nombre[0]
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_listado_campos($formulario){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_contenido_campos.orden";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[campo_nombre] ";
-}
-$resultado = "
-
-
- $formulario_nombre[0]
- {json}
- $listado
-
-
-";
-}
-return $resultado;
-}
-
-
-function portal_listado_formularios(){
-
-$consulta ="SELECT * FROM form_id WHERE publico = '1'";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[nombre] ";
-}
-$resultado = "
-
- Set de datos
-
- ";
-}
-return $resultado;
-}
-
-
-function insertar_linea($tabla,$key,$campo,$valor,$control,$orden,$div){
- $respuesta = new xajaxResponse('utf-8');
- $key = limpiar_caracteres($key);
- $valor = limpiar_caracteres($valor);
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
-if($tabla =="form_datos") {
-$consulta = "INSERT INTO form_datos ( orden, timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( '$orden',UNIX_TIMESTAMP(),'$_SESSION[id]','$_SESSION[id_empresa]','$key',$ip ,'$control', '$campo' , '$valor')
- ";
-
-}
-
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
-
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_linea");
-
-
-function select_combo($id,$tabla,$campo_valor,$campo_descripcion,$tipo){
-
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$Campo_descripcion = ucwords($campo_descripcion);
-$Campo_valor = ucwords($campo_valor);
-$nombre=$tabla."_".$campo_valor;
-$div=$nombre."_hijo";
-$combo = $id."_".$tabla;
-if($tipo!=''){
-$respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE $campo_valor = '$tipo' AND id_empresa = '$id_empresa'";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado .= "
$Campo_descripcion
-
";
-$resultado .= " Seleccione $Campo_descripcion ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[$campo_valor] $row[$campo_descripcion] ";
- }
-$resultado .= " ";
- }
-
-
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;}
-ELSE{ /// si no especifica $tipo
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE id_empresa = '$id_empresa' GROUP BY $campo_valor ";
-$sql=mysql_query($consulta,$link);
-///$Documento=mysql_result($grupo,0,"documento_numero");
-$resultado = "
$Campo_valor
-
";
- $resultado .= " Seleccione $Campo_valor ";
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "$row[$campo_valor] ";
- }
- }
-$resultado .= "
";
- }/// FIN de $tipo no especifico
-
-return $resultado;
-}
-$xajax->registerFunction("select_combo");
-
-
-
-function crear_session ($form,$control) {
-
-$consulta = " SELECT distinct(id_campo),contenido FROM form_datos WHERE control = '$control' AND form_id = '$form' order by timestamp DESC ";
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!=0){
- $resultado ="
";
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $id_form = $row[form_id];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre = strtolower( str_replace(' ','_',$campo_nombre[0]));
- $_SESSION[$nombre] = $row[contenido];
- $resultado .= "$_SESSION[$nombre] ";
- }
- $resultado .= " ";
- }
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla){
- $resultado="";
- if($form != "") {$id_form = "$form";}else {$id_form ="";}
-/*$consulta = " SELECT distinct(form_id) FROM form_datos WHERE control = '$control' ";
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!=0){
- $session = crear_session ('16',$control);
- $resultado ="$session
";
- mysql_data_seek($sql, 0);
- //while( $row = mysql_fetch_array( $sql ) ) {
- $id_form = $row[form_id];*/
- $impresion = formulario_imprimir("$id_form","$control","$plantilla");
- if($impresion !="") {
- $visitas= contar_visitas($control,'identificador') ;
- $visitas= "
$visitas";
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
- $resultado .= "$visitas
$nombre[0] $descripcion[0] $impresion
";
- // }
-$resultado = "
$resultado
";
- }else{
-$resultado ="
No hay resultados ";
- }
-
- // }
-return $resultado ;
-}
-
-function buscar_campo_nombre($form_id,$nombre) {
-
-$consulta ="SELECT form_campos.id FROM `form_campos` , form_contenido_campos WHERE `campo_nombre` = '$nombre' AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='$form_id' LIMIT 1";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- $id_campo=mysql_result($sql,0,"id");
-return $id_campo;
-}
-
-function conversorSegundosHoras($tiempo_en_segundos) {
- $horas = floor($tiempo_en_segundos / 3600);
- $minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
- $segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
-
- return $horas . ':' . $minutos . ":" . $segundos;
-}
-
-function mensajes($tipo,$campos_form,$datos,$control) {
- $campo_remitente = $campos_form['remitente'];
- $campo_destinatario = $campos_form['destinatario'];
- $campo_asunto = $campos_form['asunto'];
- $campo_mensaje = $campos_form['mensaje'];
- $form_id = $campos_form['formulario_id'];
- $form_usuarios = $campos_form['formulario_usuarios'];
- $campo_usuarios = $campos_form['campo_usuario'];
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='formulario') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
-
-//$campos = formulario_areas($form_id,'campos');
-$control_original = $control;
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
- $respuesta->addAssign("div_mensaje_$control_original","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo =='responder') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
- $remitente = buscar_campo_nombre("$form_id","Para");
- $destinatario = buscar_campo_nombre("$form_id","De");
- $mensaje = buscar_campo_nombre("$form_id","Mensaje");
- $asunto = buscar_campo_nombre("$form_id","Asunto");
-
- $asunto_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$asunto' AND control='$control'") ;
- $mensaje_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$mensaje' AND control='$control'") ;
- $remitente_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$remitente' AND control='$control'") ;
- $destinatario_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$destinatario' AND control='$control'") ;
-
-$formulario ="
-
-
-
-
-
-
-
-
- Asunto
-
-
-
- Mensaje
- $mensaje_value[0]
-
- ";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
-";
- $respuesta->addAssign("div_mensaje_$control","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo=="recuperar") {
-
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
-
- $consulta ="SELECT *, FROM_UNIXTIME(timestamp) as fecha , DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d') as dia, DATE_FORMAT(FROM_UNIXTIME(timestamp),'%H:%i') as hora FROM form_datos WHERE form_id ='$form_id' AND id_campo = '$campo_destinatario' AND contenido ='$_SESSION[usuario_milfs]' GROUP BY control, timestamp order by timestamp DESC ";
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-
- $mensajes = mysql_query($consulta,$link);
-// $destinatario ="$campo_destinatario"."[0]";
-// $para = buscador_campo("$campo_destinatario","$form_id","","$destinatario","","");
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
-
-
-
-$lista ="
-
-
-
-";
-while( $row = mysql_fetch_array( $mensajes ) ) {
- $asunto = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_asunto' AND control='$row[control]'") ;
- $mensaje = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_mensaje' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_remitente' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_usuarios",'contenido'," id_campo = '$campo_usuarios' AND control='$remitente[0]'") ;
- if($remitente[0] =='') {$remitente[0]="
Sistema";}
- $hoy=date('Y-m-d');
- $control = $row[control];
- if($hoy == $row[dia]){$momento = $row[hora];}else {$momento=$row[dia];}
-//function contenido_mostrar($id,$control,$div,$plantilla)
-//$contenido = contenido_mostrar("$form_id","$control","",'');
- $lista .="
-
- ";
-}
- // $respuesta->addAssign("div_mensaje","innerHTML",$lista);
- $lista .=" ";
- return $lista;
-
-}
-
-$resultado ="hola";
-
- $respuesta->addAssign("div_mensaje","innerHTML",$resultado);
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("mensajes");
-
-function revisar_campo_unico($id,$campo,$id_form,$valor) {
- $respuesta = new xajaxResponse('utf-8');
- $div= "div_$id";
- $existe = remplacetas('form_datos','form_id',"$id_form",'control'," BINARY contenido = '$valor' AND id_campo = '$campo'") ;
- if($existe[0] != "") {
- $texto ="El valor ya existe";
-$respuesta->addAssign("$div","className","text-danger");
-$respuesta->addAssign("input_$id","className","form-group has-error");
- }else{
- $texto ="";
-$respuesta->addAssign("$div","className","text-success");
-$respuesta->addAssign("input_$id","className","form-group has-success");
- }
-
- $respuesta->addAssign("$div","innerHTML",$texto);
- return $respuesta;
-}
-$xajax->registerFunction("revisar_campo_unico");
-
-
-
-function milfs_session($form_id,$campo_usuario,$campo_password,$tipo,$datos){
- $datos = mysql_seguridad($datos);
- $respuesta = new xajaxResponse('utf-8');
-
-if($tipo =="") {
-
-
-
-if($_SESSION[usuario_milfs]) {
- $formulario = "
SALIR";
-}else {
-$formulario ="
-$accion
-
-
-
-";
-
-
-}
-return $formulario;
-}
-elseif($tipo =='salir') {
- session_destroy();
- $respuesta->addScript("javascript:location.reload(true);");
-
-}
-elseif($tipo=='registrarse') {
- $modificable = remplacetas('form_id','id',$id,'modificable') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $formulario = "
Función no disponible, por favor comuníquese con el administrador
";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
- }
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-
-Registrarse
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-$boton
-
-
-";
-
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
- if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-
Usuario
-
-
-
Código de recuperación Deja este campo vacío si aun no tienes el código de recuperación
-
-
-";
-$boton ="
-
Solicitar clave
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-
-$boton
-
-
-
-";
- }else{
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- if($usuario[0] !="") {
- $password = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_password' ") ;
- if($datos[codigo] !="") {
- if( $datos[codigo] =="$password[0]" ){
- $control = remplacetas('form_datos','control',"$usuario[0]",'control'," id_campo = '$campo_password' ") ;
- $campos ="
-
-
-
-
-
-
-
- ";
-
- $formulario ="$campos";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
-
- }else {
- $respuesta->addAlert("El código no es correcto, por favor rectifíquelo o solicítelo nuevamente dejando el campo VACIO");
- return $respuesta;
- }
- }
- $campo_email = buscar_campo_tipo("$form_id","12");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $formulario="$usuario[0] $password[0] // $campo_email[0] $email[0]";
- $email_empresa = remplacetas('empresa','id','1','email','') ;
- $sigla = remplacetas('empresa','id','1','sigla','') ;
- $razon_social = remplacetas('empresa','id','1','razon_social','') ;
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] <$email_empresa[0]>\r\n";
- $headers .= "Reply-To: $email_empresa[0]\r\n";
- $headers .= "Return-path: $email_empresa[0]\r\n";
- $asunto= "[ $sigla[0] ] Código para recuperar contraseña ";
- $cuerpo ="
-
Hola $datos[usuario]
- El código para recuperar tu contraseña es:
-
$password[0]
- Regresa pronto :-)
-
- ";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="
Te hemos enviado un correo a $email[0] con el código de recuperación "; }
- else {$formulario ="
Error enviando correo ";}
-
- }else{
-
- $formulario="
No pudimos encontrar tu usuario $datos[usuario] . Por favor rectifícalo y prueba nuevamente ";
- }
-
-
- }
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='confirmar_recuperar') {
-
- if($datos[password] != $datos[confirmar_password]) {
- $respuesta->addAlert("Los valores no son iguales");
- return $respuesta;
-
- }
- $link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-
-
-
-
- $consulta="UPDATE form_datos SET contenido = MD5('$datos[password]')
- WHERE control ='$datos[control]'
- AND contenido ='$datos[codigo]'
- AND form_id ='$form_id'
- AND id_campo = '$campo_password' ";
-
- if (mysql_query($consulta,$link)){
-$resultado ="
Se cambió el password Por favor ingrese con sus nuevos datos
aquí ";
-$respuesta->addAssign("login_div","innerHTML",$resultado);
-return $respuesta;
- };
-
-
-
-}
-
-elseif ($tipo=='ingreso'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $password = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = MD5('$datos[password]') AND id_campo = '$campo_password'") ;
-
-if ( $usuario[0] != "" AND $usuario[0] === $password[0]) {
-$respuesta->addAssign("login_milfs","className"," has-success ");
-$resultado ="$usuario[0] // $password[0] ";
-$_SESSION['usuario_milfs'] = $usuario[0];
-$_SESSION['nombre_usuario_milfs'] = $datos['usuario'];
-$respuesta->addScript("javascript:location.reload(true);");
-}else {$resultado ="
Error Los datos no son correctos :( ";
-$respuesta->addAssign("login_milfs","className"," has-error ");
-}
-
-$respuesta->addAssign("resultado","innerHTML",$resultado);
-//$respuesta->addAlert("resultado");
-
-
-}
-elseif ($tipo=='nuevo'){
-
-$usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-
-$campos_consulta_obligatorio="
- SELECT id_campo, obligatorio
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
- AND obligatorio='1'
- ";
-
-
- $campos_obligados= mysql_query($campos_consulta_obligatorio,$link);
-
-while( $row = mysql_fetch_array( $campos_obligados ) ) {
-$campo_valor=$datos[$row[id_campo]][0];
-
-if($row[obligatorio]=='1'){
- $obligatorios .= "$row[id_campo]";
-if($campo_valor == '' && $row[obligatorio]=='1'){
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
-$error = "Revise campos obligatorios $campo_nombre[0]";
-
- }else {$error ="";}
-if($error !=''){
-$respuesta->addAlert($error);
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
- return $respuesta; }
- }
-
-
- }/// fin de registros obligatorios
-
-
-
- $campos_consulta="
- SELECT id_campo, obligatorio, id_empresa
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
-
- ";
- $campos= mysql_query($campos_consulta,$link);
-$ip = obtener_ip();
-$control = $datos['control'];
-while( $row = mysql_fetch_array( $campos ) ) {
-$campo_valor=$datos[$row['id_campo']][0];
-$campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
-/// Si el campo es password (18) se guarda su equivalente en md5
-if($campo_tipo[0] =="18") {
- $campo_valor = MD5("$campo_valor");
-}
-if($campo_tipo[0] =="19") {
-$existe = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$campo_valor' AND id_campo = '$row[id_campo]'") ;
-if($existe[0] !='') {
-$respuesta->addAlert("Revise los campos únicos !");
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
-
-
- return $respuesta;
-}else{
-//$respuesta->addAlert("$existe[2]"); return $respuesta;
-}
-}
-
- if ($campo_valor !=''){
-
-$insertar_consulta = "
- INSERT INTO `form_datos`
- SET
- id_campo = '$row[id_campo]',
- contenido = '$campo_valor',
- control ='$control',
- timestamp = UNIX_TIMESTAMP(),
- form_id = '$form_id',
- ip = '$ip',
- id_empresa = '$row[id_empresa]'
- ";
-
-
- }else{
-
-
- }
-
-if ($error ==''){
-$sql_consulta=mysql_query($insertar_consulta,$link);
-if($sql_consulta){
-$login = milfs_session("$form_id","$campo_usuario","$campo_password","","");
-$resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-
-
- }else{$resultado.= "
La consulta no se grabó
";}
-}else { }
-
- }
- $resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-$respuesta->addAssign("login_div","innerHTML",$resultado);
-return $respuesta;
-
-
-}
-
-else{}
-return $respuesta;
-
-}
-$xajax->registerFunction("milfs_session");
-
-
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='') {
-$resultado="
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form contenido like '%%$valor%%' group by control LIMIT 200 ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-$fila=1;
-$divider=3;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
- /* $contenido = htmlentities($row[contenido]);
- $p = stripos($contenido, $valor);
- $s1 = substr($contenido, 0, $p);
- $s2 = substr($contenido, $p, strlen($valor));
- $s3 = substr($contenido, ($p + strlen($valor)));
- $r = $s1."
$s2 ".$s3;
- */
- $datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
$datos
";
-
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor $encontrados ";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql_total=mysql_query($consulta_total,$link);
-$total = mysql_num_rows($sql_total);
-$sql=mysql_query($consulta,$link);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = $descripcion[0];
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion";
-
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysql_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
$buscador
-
-
-
- $contenido
-
- Mostrar mas resultados
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-
-function insertar_registro($tabla,$formulario,$div,$principal) {
- //$valores ="$formulario[0]";
- $formulario = limpiar_caracteres($formulario);
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
-
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- $ultimo_id = mysql_insert_id();
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $valores = limpiar_caracteres("$valores");
- $grupo = editar_campo("$tabla",$ultimo_id,"$principal","","","");
- $respuesta->addAssign($div,"innerHTML","
$formulario[$principal] ");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- //$respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_registro");
-
-
-
-function formulario_area_campos($perfil,$area) {
- $tipo="";
- $control_edit ="";
- $solo_campos ="";
- $muestra_form ="";
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} $campos= "";
-
-$consulta = "
- SELECT * FROM form_campos , form_contenido_campos
- WHERE form_contenido_campos.id_form = '$perfil'
- AND form_contenido_campos.id_campo = form_campos.id
- AND campo_area='$area'
- ORDER BY form_contenido_campos.orden";
-
- $link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-
-
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- if( $row['obligatorio'] == '1'){$obligatorio="*";}else {$obligatorio='X';}
-
- if($row['campo_tipo'] =="24") { $row['multiple'] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos .= formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }else{
- $campos .= formulario_campos_render($row['id_campo'],$perfil,$control_edit,'','');
- }
- $muestra_form .= "$campos $obligatorio ";
- $solo_campos .= "$campos $obligatorio ";
-
- }
-
-
-}
-
-
-$resultado = "$muestra_form";
- return $campos;
-
-}
-
-function formulario_areas($perfil,$tipo,$respuesta){
- $id="";
- $resultado_campos ="";
- $subir_imagen ="";
- $campo_imagen_nombre ="";
- if(func_get_arg(2)=='respuesta'){$control =func_get_arg(3);}else{
-$control = md5(rand(1,99999999).microtime());
-}
- $respuesta = new xajaxResponse('utf-8');
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- /*$consulta = "SELECT * FROM form_areas, form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
- AND form_areas.id = form_campos.campo_area AND form_areas.id_empresa = '$id_empresa'
- OR (form_contenido_campos.id_form = '$perfil' AND form_campos.campo_area ='0' )
- AND form_areas.estado = '1' GROUP BY form_areas.id ORDER BY form_areas.orden";
- */
- $consulta= "SELECT * FROM form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
-
- GROUP BY form_campos.campo_area
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- //$campo_titulo = remplacetas('parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
- $descripcion = remplacetas('form_id','id',$perfil,'descripcion','') ;
- $formulario_respuesta = remplacetas('form_id','id',$perfil,'formulario_respuesta','') ;
- $empresa = remplacetas('form_id','id',$perfil,'id_empresa','') ;
- $empresa = $empresa[0];
-
- $nombre= strtoupper($nombre[0]);
- $descripcion= $descripcion[0];
- $respuesta= $formulario_respuesta[0];
-
-
-//// encabezado form
-
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- //$descripcion=mysql_result($sql,0,"descripcion");
- //$nombre=mysql_result($sql,0,"nombre");
- //$empresa=mysql_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$empresa",'encabezado');
- $pie = empresa_datos("$empresa",'pie');
- $cabecera = "
-
-
-
-
-
-
-
$nombre$descripcion
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($perfil,"15");
-if($campo_imagen[0] !="") {
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen_nombre = ucwords($campo_imagen_nombre);
-$campo_imagen = $campo_imagen[0];
- }
-
-if ($campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$perfil","$campo_imagen"."[0]");
-if($tipo != "campos") {
- $imagen = "
-
- ";
-
- }else {$imagen =" ";}
- }
-
- $muestra_form = "
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
-
-////fin encabezado form
-
-
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row['campo_area']=="0"){$area_nombre ="";}
- else{
- $area_nombre = remplacetas('form_areas','id',$row['campo_area'],'nombre','') ;
- $area_nombre = $area_nombre[0];
- }
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- //$producto = remplacetas('farmacia_cum','id',$row[id_producto],'fabricante_importador') ;
- ///// para pasar el parametro de medicamentos al formulario no pos se adiciona ".func_get_arg(2)."
- $campos = formulario_area_campos($perfil,$row['campo_area']);
-$resultado_campos .= "$area_nombre
-$campos
- ";
- }
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos
-
- ";
-
-//// fin botonera form
-
- }
-
-//// cierre form
-
-$muestra_form .="
-
-
-
";
-if($tipo=='campos') {
-
- $resultado = "$resultado_campos $imagen ";
- return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-
-";
-return $resultado;
-
-/// fin cierre form
- // $resultado .= "$consulta";
-//$respuesta->addAssign($div,"style.display","block");
-//$respuesta->addAssign($div,"innerHTML",$resultado);
-//return $respuesta;
- //print $muestra_form;
-// return $muestra_form;
- }
-
- $xajax->registerFunction("formulario_areas");
-
-
-
-function tabla_areas($tabla,$value,$descripcion,$onchange,$where,$nombre,$div){
- $group ="";
- if($div =="") {
- $div="div_campos";
- $resultado = "
-
Modificar areas
- ";
- return $resultado;
- }
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$campo3 = $campos[2];
-$campo4 = $campos[3];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="group by $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT * FROM $tabla WHERE 1 $w AND id_empresa='$_SESSION[id_empresa]' $group ORDER BY orden ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-
-$resultado="
-$name
-Id $campo1 $campo2 $campo3 $campo4
- " ;
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
-$editar_campo1= editar_campo("$tabla",$row['id'],"$campo1","","","","");
-$editar_campo2= editar_campo("$tabla",$row['id'],"$campo2","","","","");
-$editar_campo3= editar_campo("$tabla",$row['id'],"$campo3","","","","");
-$editar_campo4= editar_campo("$tabla",$row['id'],"$campo4","","","","");
-$eliminar = " ";
-$resultado .= "$row[$value] $editar_campo1 $editar_campo2 $editar_campo3 $editar_campo4 $eliminar ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-
-
-
-
-Agregar área
-
-
-
-
-
-
-
-
-
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("tabla_areas");
-
-
-
-
-function importar_coleccion($form){
-$div ="confirmar_importacion";
-//$archivos = listado_archivos("$form[path]");
-//$archivos = listar_archivos("$form[path]",'cantidad','',$form);
-
- $directorio = opendir("$form[path]"); //ruta actual
-$resultado = " ";
-while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
-{
- if (is_dir($archivo))//verificamos si es o no un directorio
- {
- // $resultado .= "[".$archivo . "]
"; //de ser un directorio lo envolvemos entre corchetes
- }
- else
- {$autor="";
- $ext = explode(".", $archivo);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {
- $cantidad_imagenes++ ;
-
- $exif = leer_exif("$form[path]/$archivo");
- //$name = $exif['exif']['FileName']." ".$form['38']['0']."*" ;
- $form['0']['0'] = "$archivo";
- $autor= $exif['exif']['Artist'];
- $creator = $form['40'][0];
- if($autor !="" ) { $remplazo = array('40' => array("$autor")); }else{ $remplazo; }
-
- }
- //$form = array_replace_recursive($form, $reemplazo);
- $resultado .= $archivo ." / $name ".$form['0'][0]."
";
- }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= "( $c : $V )
";
- if($V != '') {
- }
- }
-}
-}
-*/
-//$resultado="$archivos $campo";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("importar_coleccion");
-
-
-
-
-function listar_archivos( $path ,$opcion, $div,$datos){
- // Abrimos la carpeta que nos pasan como parámetro
-
- $resultado ="";
- //$link = Conectarse();
- $dir = opendir($path);
- $cantidad =0;
- $cantidad_imagenes =0;
-//$datos['61'] = array ( 0 => "otro valor");//"OTRO VALOR";
- if(is_file($path)) {$esarchivo="Escriba la ruta a un directorio en el servidor
"; }
- // Leo todos los ficheros de la carpeta
- //if($esarchivo =="") {
- // $elemento = readdir($dir);
- //}
- while ($elemento = readdir($dir) ){
-
- // Tratamos los elementos . y .. que tienen todas las carpetas
- if( $elemento != "." && $elemento != ".."){
- // Si es una carpeta
- if( is_dir($path.$elemento) ){
- // Muestro la carpeta
- // $resultado .= "
CARPETA: ". $elemento ."
";
- // Si es un fichero
- } else {
- $ext = explode(".", $elemento);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {$cantidad_imagenes++ ;
-
- $exif = leer_exif("$path/$elemento");
- $name = $exif['exif']['FileName'];
- $title= "$name ";
- $date= $exif['exif']['DateTimeOriginal'];
- $autor= $exif['exif']['Artist'];
- if(!isset($autor)) { $autor = $datos['40'][0]; }
- $licencia= $exif['exif']['Copyright'];
- if($licencia ==="") { }
- else{
-// $datos['61'][0]= " XX $licencia XXX";
- }
-
-
- //$datos['61'][0] = $licencia;
- if(isset($exif['exif']['UndefinedTag:0xC4A5'])) {
- $exif['exif']['UndefinedTag:0xC4A5']= base64_encode($exif['exif']['UndefinedTag:0xC4A5']);
- }
- if(isset($exif['exif']['MakerNote'])) {
- $exif['exif']['MakerNote']= base64_encode($exif['exif']['MakerNote']);
- }
- if ( $exif['lon'] =="" )
- {
- $geo = $datos['58'][0];
- $mundo ="";
- $datos['58'][0] = $datos['58'][0];
-
- }
- else {
- $geo = "$exif[lon] $exif[lat] 18" ;//$datos['58'][0];
- $mundo ="
";
- $datos['58'][0]= "$geo";
-
-
- }
-
- // $remplazos = array('40');
- // else { $mapa="";}
- //$json = json_encode($exif['exif'],JSON_PRETTY_PRINT);
- //if ( $exif['lon'] =="" ){$datos['58'][0] = $geo;}else {$datos['58'][0] = $datos['58'][0];}
- $resultado .= "
$geo $mundo / ".$datos['58'][0]." ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]." ";
-
- }
-
- $cantidad ++;
-
- $campo .= "";
-
-
- }
- }
-
- }
-
-
- if($div !="" ) {
- if($opcion == "cantidad") {
- $resultado = "
-
- $esarchivo $cantidad archivos, $cantidad_imagenes imágenes jpg, $mapa georeferenciadas
-
-
";
- }
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }else {
-
-
-
- return " $campo $resultado"; }
-}
-$xajax->registerFunction("listar_archivos");
-
-
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( "$file" );
- $resultado['exif'] = $exif;
- $resultado['file']= $file;
- $resultado['FileName']=$exif['FileName'];
-
-if($exif === false) {
-//return false;
-}
-
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado['lat'] = $gps_latitude;
- $resultado['lon'] = $gps_longitude;
-
- //$resultado = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
- }else{}
-
-}
-
-
- $resultado['DateTime'] = $exif['DateTimeOriginal'];
- $resultado['estado'] = "oK";
-
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-
-function relacion_render($form_id,$id_campo,$valor,$cantidad){
-
-
-
-
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-$link = "
Ver referencia ";
-}
-
- return " $valor_actual $link";
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_render");
-
-function buscador_base($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_base_$name";
-$onchange = " xajax_buscador_select_base('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select_base('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_base");
-
-
-function buscador_select_base($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_base_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $tabla = explode(':',$claves[0]) ;
- $tabla = $tabla[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion1 = explode(':',$claves[2]) ;
- $descripcion1 = $descripcion1[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $descripcion3 = explode(':',$claves[4]) ;
- $descripcion3 = $descripcion3[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT * FROM $tabla WHERE $descripcion1 like '$valor%%' GROUP BY $key limit 50 ";
-
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-//$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-//$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select_base");
-
-
-
-function buscador_campo($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_$name";
-$onchange = " xajax_buscador_select('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_campo");
-
-
-function imprimir_buscador_campo($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function imprimir_base($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $campo1 = remplacetas("$formulario","$key","$valor","$descripcion","");
- $campo2 = remplacetas("$formulario","$key","$valor","$descripcion2","");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function buscador_select($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and (id_campo ='$key' OR id_campo ='$descripcion' )AND contenido like '$valor%%' GROUP BY control limit 50 ";
-
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $campo_key[0] $campo_descripcion[0] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select");
-
-
-
-function relacion_select($id_campo,$form_id,$valor,$name,$control,$tipo){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit =="" ) {$limit = 20;}
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_select");
-
-function combo_select($id_campo,$form_id,$valor,$name,$control,$control_combo){
- $selected="";
- $and="";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if($control_combo !="") {
- $div ="combo_$name";
-$and ="AND campo_valor LIKE '$control_combo:%%'";
-}else{
-$onchange ="xajax_combo_select('$id_campo','$valor','$valor','$name','$control',(this.value)) ";
-$div ="combo_$name";
-$name ="primario_$name";
-}
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' $and ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado=" $valor
-Seleccione
- " ;
- // $resultado = array_unique($entrada);
-while( $row = mysql_fetch_array( $sql ) ) {
- $campos = explode(':',$row['campo_valor']);
-
- IF($control_combo ==""){
- $campo_primario[]=$campos[0];
- $campo_primario = array_unique($campo_primario);
- }
- else {
- $campo_primario[] = "$campos[0] $campos[1]";
- }
- //$identificador = $identificador[0];
-//if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-//$resultado .= " $campos[0] ";
- }
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "$V ";
-}
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-if($control_combo =='') {
- return $resultado;
- }
-else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-$xajax->registerFunction("combo_select");
-
-
-function aplicacion_carrusel($nombre,$id,$plantilla){
- if($id =='') {
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- }
- if($nombre =='') {
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre = $nombre[0];
- }
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
- $descripcion = $descripcion[0];
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
- $campo_titulo = $campo_titulo[0];
- $consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
- $link=Conectarse();
- $sql=mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysql_data_seek($sql, 0);
-// $contenido = "
$nombre[0] ";
-// $contenido .= "
$descripcion[0] ";
-
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- if($orden === 0) {$activo = "active";}else{$activo="";}
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $campo = buscar_campo_tipo($id,"15");
- $id_campo = $campo[0];
- $imagen = remplacetas('form_datos','control',$row[control],'contenido',"id_campo = '$id_campo'") ;
- $items .= "
-
-
- $contenido_desplegado
-
-
";
- $indicador .= "
";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- //$contenido .= "$contenido_desplegado ";
- $orden = ($orden +1 );
- }
-$contenido .= "
-
-
-
$nombre[0] $descripcion[0]
-
-
-
- ";
- //$contenido = " $links
";
- }
-
-
-return $contenido;
-}
-
-
-function formulario_embebido($id){
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- $impresion = formulario_areas($id,"embebido",'');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
- ( $visitas )
-
$formulario_nombre[0]$formulario_descripcion[0]
- $impresion
-
-
-
-
-
-
-
";
- return $muestra_form ;
-}
-
-
-function formulario_embebido_campos($id,$opcion){
- $impresion = formulario_modal("$id",$form_respuesta,$control,"$opcion");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $muestra_form = "
-
-
$formulario_nombre[0]
-
$formulario_descripcion[0]
- $impresion
-
-
-
";
- return $muestra_form ;
-}
-
-function json($datos){
-if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND
-form_id.publico = '1' "; $w_publico = "WHERE form_id.publico = '1'
-"; }
-else { $publico = "AND form_id.id_empresa = '$_SESSION[id_empresa]'
-"; $w_publico = "WHERE form_id.id_empresa = '$_SESSION[id_empresa]' ";
-}
-$datos = mysql_seguridad($datos);
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-if($datos[id] !=''){
-if($datos[tipo] =='simple') {
-$campos ="control " ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-GROUP BY form_datos.control
-ORDER BY form_datos.timestamp DESC";
-
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysql_fetch_array( $sql ))
- {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $nuevos_datos = $datos;
- $nuevos_datos[identificador]="$row[control]";
- $nuevos_datos[tipo]="array";
- //$features[$row[control]] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- $features[] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-
-if($tipo == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-return $resultado;
-
-}
-else {
-$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo , contenido ,timestamp, control as identificador ,
-form_datos.orden" ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-ORDER BY form_datos.control ,form_datos.timestamp ";
-}
-
-}
-elseif($datos[identificador] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo ,contenido ,timestamp, control as identificador ,
-form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (control = '$datos[identificador]' )
-$publico
-";
-}
-elseif($datos[dato] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, nombre as formulario,
-campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp,
-control as identificador, form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_datos.id = '$datos[dato]' )
-$publico
-";
-}
-else {
-$consulta = "SELECT id as form_id, nombre as form_nombre, descripcion
-as form_descripcion , creacion , publico AS contenido_publico ,
-modificable AS formulario_publico
-FROM form_id $w_publico";
-}
-
-
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysql_fetch_array( $sql ))
- {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $features[] = "$nombre_campo[0] : $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-if($datos[tipo] == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-
-return $resultado;
-}
-
-
-
-
-function imprime_geojson($id,$id2,$plantilla){
- $id_form = mysql_seguridad($id);
- $id_form2 = mysql_seguridad($id2);
- $campo = buscar_campo_tipo($id_form,"14");
- $campo2 = buscar_campo_tipo($id_form2,"14");
- $id_campo = $campo[0];
- $id_campo2 = $campo2[0];
- if($id_form2 !=""){$w_id2 =" OR form_id = '$id_form2'"; $or_2 ="or id_campo = '$id_campo2'";}
-
-$link=Conectarse();
-
- $consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data
-FROM `form_datos`
-WHERE (form_id = '$id_form' $w_id2 )
-AND ( id_campo ='$id_campo' $or_2 )
-group by control
-ORDER BY orden desc";
-//return $consulta;
-
- mysql_query("SET NAMES 'UTF8'");
- $sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
- $id = 1;
- $features = array();
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $marcador = array();
- $propiedades = array();
- $identificador = explode(',',$row[data]);
- $identificador = $identificador[0];
- $campos = explode(" ",$identificador);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- $formulario = formulario_imprimir($row[id],$row[control],"$plantilla");
-
- $marcador["type"] = "Point";
- $marcador["coordinates"] = array($lat,$lon);
- $propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
- //$propiedades[description] ="HOLA MUNDO";
- $propiedades[description] ="
$formulario
";
- $propiedades[sounds] ="";
- $propiedades[url] ='';
- $propiedades[icon][iconSize] =[60,60];
- //$propiedades[icon][shadowSize] =[70,70];
- //$propiedades[icon][shadowUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
-
- //$propiedades[title] ='Hola mundo';
- if($propiedades[icon][iconUrl] =="") {
- $propiedades[icon][iconUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }
- $geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)."},";
- $features[] = $marcador;
-
- $id++;
- }
-
-}
-//-75.58295 6.25578 16
-
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
- \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
- \"type\": \"FeatureCollection\",
- \"features\": [$geometria ]}";
-return $geometria;
-}
-
-
-function aplicacion_presentacion($id,$div,$timeout){
- if($timeout < '1000') {$timeout =5000;};
- $respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT * FROM form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$control = mysql_result($sql,0,control);
-$impresion = formulario_imprimir("$id","$control","");
-
- }
-$siguiente = "
SIGUIENTE ";
-if($div ==''){
- $presentacion = "
$siguiente $impresion
";
- }else{
- //$respuesta->addAlert("$consulta");
- $respuesta->addScript("setTimeout(function(){xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout')},$timeout)");
- $respuesta->addAssign("$div","innerHTML","$siguiente $impresion");
- return $respuesta;
- }
-return " $presentacion";
-
-
-}
-$xajax->registerFunction("aplicacion_presentacion");
-
-function aplicaciones_listado($id_form,$tipo,$div){
-
-// if($id_empresa !=''){ $_empresa = " ";}
- //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";}
- if($id_form !="") {$w_form = " AND id = '$id_form'";}
- $w_publico =" publico ='1'";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE $w_publico $w_form ORDER BY orden asc ";
-mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado_li .= "
";
- }else {$resultado_li = "";}
-
-if($tipo =='li') { return $resultado_li.$resultado;}
-elseif($tipo =='nav') { return $resultado_nav;}
-elseif($tipo =='grid') {
-if($div !="") {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado_grid");
- return $respuesta;
- }else{
- return $resultado_grid;
- }
-}
-elseif($tipo =='banner') { return $resultado_banner;}
-elseif($tipo =='carrusel') { return $resultado_carrusel;}
-else {return $resultado;}
-}
-$xajax->registerFunction("aplicaciones_listado");
-
-
-function contenido_aplicacion($id,$plantilla){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
- $control = mysql_result($sql,0,"control");
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysql_data_seek($sql, 0);
-
- //$contenido = "
$nombre[0] ";
- $contenido = "
$descripcion[0] ";
-
- $orden = 0;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- //return "$row[form_id] $row[control] $plantilla";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado
";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- if($id[0] =="") {$aviso = "
No se ha definido una aplicación con el nombre $nombre ";
- return $aviso;}
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
-
- mysql_data_seek($sql, 0);
- $contenido = " ";
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado ";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-
-
-function contenido_parallax($id){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- $contenido = "";
- mysql_data_seek($sql, 0);
-
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
- //$orden = $orden+500;
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'','contenido');
-
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $nav_li .="
-
- ";
- $style .=" a[id= '$row[control]']:target ~ #main_$id article.article
- {
- -webkit-transform: translateY(-$orden"."px);
- transform: translateY( -$orden"."px );
- } ";
- $links .= "
";
- $contenido .= "
-
- $contenido_desplegado
-
- ";
- $orden = $orden +800;
- }
- $contenido = "
-
-
- $links
-
-
-
-
- ";
- }
-
-//return " $contenido";
- $respuesta->addAssign("$div","innerHTML","$contenido");
- return $respuesta;
-
-}
-$xajax->registerFunction("contenido_parallax");
-
-function contenido_timeline($id){
-$div = "contenedor";
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- //$contenido = "
-
- $subir_imagen
-
-
- ";
-
- $respuesta->addAssign($div,"innerHTML",$resultado);
-
-}
-
-return $respuesta;
-}
-$xajax->registerFunction("configuracion");
-
-
-function cambiar_imagen($imagen,$tabla,$id) {
- $respuesta = new xajaxResponse('utf-8');
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "UPDATE $tabla SET `imagen` = '".$imagen."' WHERE `id` = '$id';";
- $sql_consulta=mysql_query($consulta,$link);
- if($sql_consulta) {
-if($tabla =='empresa') {
- $respuesta->addAssign("banner","style.backgroundImage","url('images/secure/?file=600/$imagen')");
- $respuesta->addAssign("formUpload","innerHTML","");
-}
-
- //$respuesta->addAlert("$consulta");
-return $respuesta;
-}
-}
-$xajax->registerFunction("cambiar_imagen");
-
-
-
-
-function limpiar_caracteres($valor){
-$b=array("{","}","]","[",";","¡","!","¿","?","'",'"' );
-$c=array(" "," "," "," "," "," "," "," ","'"," ");
-$resultado=str_replace($b,$c,$valor);
-return $resultado ;
-}
-
-function actualizar_campo($tabla,$key,$campo,$valor,$accion,$div) {
- $valor = limpiar_caracteres($valor);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' $accion limit 1; ";
- $sql=mysql_query($edit,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $respuesta->addAssign($div,"innerHTML",$valor);
- }
- return $respuesta;
-}
-$xajax->registerFunction("actualizar_campo");
-
-
-function eliminar_campo($tabla,$key,$div) {
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $borrar = "DELETE FROM $tabla WHERE id = '$key' limit 1";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($borrar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $respuesta->addAssign($div,"innerHTML","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("eliminar_campo");
-
-
-function insertar_campo($tabla,$formulario,$div) {
- //$valores ="$formulario[0]";
- $nombre = $formulario['nombre'];
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-// $respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_campo");
-
-function insertar_campo_area($tabla,$formulario,$div) {
- //$valores ="$formulario[0]";
- $nombre = $formulario['nombre'];
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- $respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_campo_area");
-
-
-function editar_campo($tabla,$key,$campo,$valor,$accion,$div,$indice){
- $indice=$indice;
- if ( !isset ( $_SESSION['id'] ) ) { return;}
- if($indice =="") {$id = "id";}
- else {$id = "$indice";}
- ////NO SE PUEDE EDITAR EL CAMPO (id )
-
-//
-if(@$div=='') {$div = "div_$tabla".$campo;}
-else {$div = $div;}
- $respuesta = new xajaxResponse('utf-8');
- $valor = limpiar_caracteres($valor);
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $consulta = "SELECT $id , $campo AS valor FROM $tabla WHERE $id = '$key' LIMIT 1";
- $sql_consulta=mysql_query($consulta,$link);
- $Valor = mysql_result($sql_consulta,0,"valor");
-
-
-if(@$accion == 'cerrar') {
- $campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
-$respuesta->addAssign($div,"innerHTML",$campo);
-return $respuesta;
- }
-elseif($accion=="input") {
- $size= strlen($Valor);
- $placeholder = strtoupper(limpiar_caracteres($campo));
- $rrn = $div;
-if($size < 40) {
-
- $resultado = "
-
- ";
- }else {
- $resultado = "
-
- ";
- }
- }
-elseif($accion== "grabar"){
-
- $edit = "UPDATE $tabla SET $campo = '$valor' WHERE $id = '$key' limit 1; ";
- $sql=mysql_query($edit,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
- $campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
- $respuesta->addAssign($div,"innerHTML",$campo);
- return $respuesta;
-
-
- }
-
-else{
- if (mysql_num_rows($sql_consulta)!='0'){
- $valor=mysql_result($sql_consulta,0,"valor");
-
- /////// campos que no se muestran ///
-if($campo == 'id' OR $campo == 'id_usuario' OR $campo == 'id_grupo') {
-return ;
-}
-
- /////////// campos que se muestran para edicion //////////////
- $title = strtoupper(limpiar_caracteres($campo));
- $div= rand(123,999);
- if($valor =="") {$aviso="
$title ";}else{$aviso ="";}
-$campo ="
-
-
-
- ";
- }
- else {$campo = "";}
-
- return $campo;
-}
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
-}
-
-$xajax->registerFunction("editar_campo");
-
-
-function formulario_imprimir($id,$control,$tipo) {
-$resultado ="";
-$limit ="";
-if(is_numeric($tipo)) { $limit = "limit $tipo "; $class= "alert alert-info";}
-//if($control != "") { $w_control = "AND control = '$control' ";}
- $id = mysql_seguridad($id);
- $control = mysql_seguridad($control);
- if($id =="") {
- $id_seguridad = remplacetas('form_datos','control',$control,'form_id','') ;
- $publico = remplacetas('form_id','id',$id_seguridad[0],'publico','') ;
- }else{
- $publico = remplacetas('form_id','id',$id,'publico','') ;
- }
-
- if($publico[0] != "1" and (!isset ( $_SESSION['id']) )) {
- $resultado ="
Acceso restringido Esta aplicación contiene datos privados ( $_SESSION[id] )";
- return $resultado;
-
- }
-
- //if($id !='') {$w_id = "AND form_id = '$id'";}else {$w_id='';}
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos , form_datos
- WHERE form_contenido_campos.id_campo = form_datos.id_campo
- AND form_datos.control = '$control'
- AND form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
- $control = mysql_seguridad($control);
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysql_result($sql,0,"form_id");}
-
-
-
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
-
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
-
- while( $row = mysql_fetch_array( $sql ) ) {
- @$multiple =$row['multiple'];
- $campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $contenido_array = $contenido;
- // $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control");
- $md5_contenido = $contenido[4];
- $contenido_original = $contenido[3];
- $contenido = $contenido[3];
-
-
-
-
- if($campo_tipo =='15' AND $tipo==""){if($contenido !=""){
- $contenido = "
-
Mostrar
- "; }else{$contenido="";}}
- elseif($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- include("includes/datos.php");
- $error_token ="";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; }}
- if($error_token != 1) {
- $contenido = "
-
-
- "; }else{ $contenido ="
No se ha definido un token de mapbox
";}
- }
- }
- elseif($campo_tipo=='4'){ $contenido = "
$contenido ";}
- elseif($campo_tipo=='18'){ $contenido = "";}
- elseif($campo_tipo=='23'){
- $funcion = remplacetas("form_campos_valores","id_form_campo","$row[id_campo]","campo_valor","");
- eval("\$contenido = ".$funcion[0].";");
- $contenido .= "";
-
- }
- elseif($campo_tipo=='6'){
- $contenido = imprimir_buscador_campo($row['id_campo'],$contenido);
- }
- elseif($campo_tipo=='21'){
- $contenido = imprimir_base($row['id_campo'],$contenido);
- }
- elseif($campo_tipo=='10'){
- $valor_actual = relacion_render("$id","$row[id_campo]",$contenido,'5');
- $contenido = "$valor_actual";}
- elseif($campo_tipo=='5' AND $contenido !=""){
- if($tipo =="") {
- $contenido = trim($contenido); $contenido = "
-
-
-
- ";
- }else {
- $contenido =$contenido;
- }
- }
-
- else {
- $html ="$contenido";
- $contenido = nl2br($html);
- $contenido = Markdown($contenido);
- }
- $campo_nombre = remplacetas('form_campos','id',$row['id_campo'],'campo_nombre','');
- $nombre[$row['id_campo']] = $campo_nombre[0] ;
-////buscar campo imagen
-$campo_imagen = buscar_campo_tipo($id,"15");
-//$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-////
- if($row['id_campo'] == $campo_imagen AND $tipo !="" ){ $contenido = strip_tags($contenido); }
- $campo[$row['id_campo']]=$contenido;
- $campo_400[$row['id_campo']] = substr($contenido,0, $length = 400)."... ";//$contenido;
- $campo_80[$row['id_campo']] = substr($contenido,0, $length = 80);//$contenido;
- $campo_55[$row['id_campo']] = substr($contenido,0, $length = 55);//$contenido;
- $campo_limpio[$row['id_campo']] = $contenido = strip_tags($contenido);
-
- $campo["md5_".$row['id_campo']]=$md5_contenido;
-
- if($row['id_campo'] == $categoria_campo){
-
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- if($icono[0] =='') {
- //$icon = "http://$_SERVER[HTTP_HOST]/milfs/images/pin.png";
- $icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- //$array[icon][iconSize] =[50,50];
-
- }else{}
-
-if($contenido_original !="") {
- //// si el campo es tipo password (18) no se muestra
- if($campo_tipo !='18'){
- if($tipo == "metadatos"){
- $metadatos = " ".date('Y-m-d H:i:s',$contenido_array[1])." id $contenido_array[0] proceso $contenido_array[5] usuario $contenido_array[6] ip ".long2ip($contenido_array[7])." campo $row[id_campo] ";
- }else {$metadatos='';}
- $resultado .= "
-
-
- $campo_nombre[0] $metadatos
- $contenido
- ";
-}
-}
- }
-
- //$resultado .="
";
-//}else {$resultado ="
No se encontraron resultados "; return $resultado;}
-//if($id=="6" OR $id=="10") {
- $plantilla="";
- $class="";
- if($tipo !="" AND (!is_numeric($tipo)) AND $tipo !="metadatos" ) {
-////Usa una plantilla apra cada id
-
-$plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
-$plantilla = $plantilla[0];
-if($plantilla =="") {
-///Usa una plantilla generica por nombre
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = ''") ;
-$plantilla = $plantilla[0];
-//$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = '$id' ") ;
-}
-if($plantilla !='') { $plantilla = html_entity_decode ( $plantilla );}
-/*else {
-$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"") ;
-$plantilla= $plantilla[0];
- }
- */
- }
-if($plantilla != ""){
-eval("\$plantilla = \"$plantilla \";");
- $full =" $plantilla ";
- }else {
- $full= "
$resultado
";
- }
-
- $resultado =" $full
- ";
- return $resultado;
-
-// }else {$resultado ="
No se encontraron resultados "; return $resultado;}
- }else {$resultado =""; return $resultado;}
-}
-
-function formulario_respuesta($id,$control) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $consulta = "SELECT * FROM form_id
- WHERE formulario_respuesta = '$id'
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado ="
-
Responder con:
-
";
- while( $row = mysql_fetch_array( $sql ) ) {
- $resultado .= "$row[nombre] ";
-
-}
- $resultado .="
";
-}else{$resultado ="";}
-return $resultado;
-}
-
-function subir_imagen($respuesta,$id){
-$resultado ="";
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//this.form.taget= 'ventana'; this.form.action = 'destinoEspecial.html'; this.form.submit()"
-$javascript="$_SESSION[url]/includes/upload.php";
-$campo_mapa = buscar_campo_tipo($respuesta,"14");
-$campo_mapa = $campo_mapa[0];
-if ($id ==''){$id='imagen';}
-$size = ($_SESSION['upload_size']*1024*1024)." bytes";
-$resultado .="
-
-
-
-
-
-
-La imagen debe estar en formato .jpg y de tamaño máximo $_SESSION[upload_size] MB ( $size)
-
-";
-return $resultado;
-
-}
-
-function formulario_importador($accion) {
-
- if($accion =='') {
- $resultado="
Importador";
-
- return $resultado;
- }
- $respuesta = new xajaxResponse('utf-8');
- $formulariox =formulario_importar('','menu','');
- $resultado="$formulariox
";
- $respuesta->addAssign("contenido","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("formulario_importador");
-
-
-function subir_archivo($perfil){
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-$javascript="includes/upload_archivo.php";
-$resultado .="
-
-
-Archivo formulario $perfil:
-
-Máximo 1MB
-
- ";
-
-
-return $resultado;
-
-}
-
-
-function formularios_muestra_listado($formulario){
-
- if($formulario==''){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ";
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado .="
";
- $resultado .= "Seleccionar formulario a importar ";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= " $row[nombre] ";
- }
-
- $resultado .=" ";
- }else {$resultado = "";}
-
- return $resultado;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $subir = subir_archivo($formulario) ;
- $div="importador_select";
- $resultado .= "$subir";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-$respuesta->addAssign("importador_archivo","innerHTML","");
-
-
-
-return $respuesta;
-}
-}
-$xajax->registerFunction("formularios_muestra_listado");
-
-
-function formulario_importar($filename,$accion,$perfil){
- $respuesta = new xajaxResponse('utf-8');
- // $respuesta->addAlert("$filename,$accion,$perfil ");
- // return $respuesta;
-
- if($filename ===""){
-
-
- $formulario .= formularios_muestra_listado();
-
- $formulario .= "
-
";
-
-return $formulario;
- }
-
- $div = "importador_archivo";
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-
- $resultado .= "Importando formulario
$perfil_nombre ($perfil)
-
";
- $nombre = "tmp/$filename";
- if($accion == "grabar") {
-
- }
- if (($handle = fopen($nombre, 'r')) !== FALSE)
- {
-
-while (($datos = fgetcsv($handle,0,"|")) !== FALSE) {
- $numero = count($datos);
-if($fila >=1) {
-
- $resultado .= "";
- $numero_columna = 0;
- for ($c=0; $c < $numero; $c++) {
- $columna = $datos[$c];
-
-
-if($columna !=""){
-
- if($accion === "grabar"){
-$control=md5($perfil.$fila.time());
-$ip = obtener_ip();
- $graba_ip = " ip = INET_ATON('".$ip."') ";
-$consulta_campos = "INSERT INTO form_datos SET timestamp= '".time()."', id_usuario='$_SESSION[id]',id_empresa='$_SESSION[id_empresa]',form_id ='$perfil',
-$graba_ip ,
-control = '$control', $consulta id_campo = '$campo[$numero_columna]' , contenido = '$columna'";
- $verificar_campo = formulario_verificar_campo($perfil,$campo[$numero_columna]);
- if($verificar_campo == NULL){}else{
- $sql = mysql_query($consulta_campos,$link);
- if($sql) {
- $class='success';
- $sql_resultado = " ";
-
-
- }
- else {
- $class='danger';
- }
-
-
- }
-
- }
-
-
-}
- $resultado .= "$columna $sql_resultado ";
-
- $numero_columna ++;
- }
- $resultado .= " ";
- }
- else {
- $resultado .= "";
-
- $posicion = 0;
- for ($c=0; $c < $numero; $c++) {
- $titulo = $datos[$c] ;
- $verificar_campo = formulario_verificar_campo($perfil,$titulo);
- if($verificar_campo == NULL){$verificar_campo =" "; $class='danger';}
- else{$verificar_campo =" "; $class='success';}
- $campo[$posicion] = $datos[$c];
- $resultado .= "$verificar_campo $titulo ";
- $posicion ++;
-
- }
-
-
- $resultado .= " ";
- }
- $fila++;
- }
-
-
- $resultado .= "
$fila ";
- }
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}
-
-$xajax->registerFunction("formulario_importar");
-
-
-function formulario_verificar_campo($perfil,$id_campo){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM `form_contenido_campos` WHERE `id_form` = '$perfil' AND id_campo='$id_campo'";
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
-$existe = NULL;
-
- }else {
-
-$control=mysql_result($sql,0,"control");
-$obligatorio=mysql_result($sql,0,"obligatorio");
-$existe[]= $control;
-$existe[]= $obligatorio;
-$existe[]= $consulta;
-
-}
-
-return $existe;
- }
-
-function borrar_tmp($div) {
-if($div =='') {
- $div="borra_tmp";
-$resultado ="
Limpiar ";
-
-return $resultado ;
-}
-$dir = "tmp/";
-$ficheroseliminados= 0;
-$handle = opendir($dir);
-while ($file = readdir($handle)) {
- if (is_file($dir.$file)) {
- if ( unlink($dir.$file) ){
- $ficheroseliminados++;
- }
- }
-}
-$fecha = time ();
-$ahora = date ( "Y-m-d h:i:s" , $fecha );
-$resultado ="
$ahora
";
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("borrar_tmp");
-
-
-function formulario_imprimir_linea($id,$control,$tipo) {
- $id = mysql_seguridad($id);
- //if($id !='') {$w_id = "AND form_id = '$id'";}
- $control = mysql_seguridad($control);
-/* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC
- ";
- */
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
-
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
-
-
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysql_result($sql,0,"form_id");}
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
-
- $titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo = $titulo[0];
-
-$timestamp=mysql_result($sql,0,"timestamp");
-$fecha = date ( "Y-m-d h:i:s" , $timestamp);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
-// $resultado ="
";
- $imagen = formulario_valor_campo("$id","0","","$control");
- $imagen = $imagen[3];
- if($imagen[3] != null AND $tipo !='titulos') {
- $array[image]=$imagen;
- $imagen_icon="secure/?file=150/$imagen";
- $imagen= " ";
-
- }else {$imagen='';}
-$td .= "$imagen ";
-
- while( $row = mysql_fetch_array( $sql ) ) {
-
- $campo_tipo = remplacetas('form_campos','id',$row[id_campo],'campo_tipo');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $md5_contenido = $contenido[4];
- //md5(binary contenido) as md5_contenido,
- $contenido_original = $contenido;
- //$control = $contenido[0];
- $contenido = $contenido[3];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $campo_nombre[0] =" $campo_nombre[0]";
- if($tipo=="titulos") {
- $contenido = "$campo_nombre[0] ";
- }
- elseif($tipo=="titulos_csv"){
- $csv .= '"'.$campo_nombre[0].'";';
- }
- elseif($tipo=="linea_csv"){
- $csv .= '"'.$contenido.'";';
- }
- elseif($tipo=="array"){
-
- if($row[id_campo] == $titulo){$array[title]=$contenido;}
- if($row[id_campo] == $categoria_campo){
- $array[category]=$contenido;
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- //$icono[0] = $imagen_icon;
- if($icono[0] =='') {
- //$icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $array[icon][iconUrl] = "$icon";
- //$array[icon][iconSize] ="[50,50]";
- //$array[icon][shadowSize] =[70,70];
- //$array[icon][shadowUrl] = "http://$_SERVER[HTTP_HOST]/milfs/images/iconos/sha.png";
-
- }else{}
- $array[$row[id_campo]] = $contenido;
- }
- else{
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
- if($size > $limite) {
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' AND $tipo==""){if($contenido !=""){$contenido = " "; }else{$contenido="";}}
- if($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- require("includes/datos.php");
- $contenido = "
-
- ";
- } else { $contenido ='';}
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
- else {$contenido = Markdown("$contenido");}
-
- }
-
-
- if($tipo=="titulos") {
-$td .= " $contenido ";
-
- }else{
-
- $td .= " $contenido ";
- }
- }
-
-if($tipo=="titulos") { $identificador ="Identificador "; }else {$identificador ="$control ";}
- $resultado .="$td $identificador ";
-}
- if($tipo =='titulos_csv' or $tipo=='linea_csv') {
-
-return $csv;
- }
- if($tipo =="array") {
- //$array["title"]="hola mundos";
- return $array;
- }
- return $resultado;
-}
-
-
-// $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-function mostrar_coincidencias_plantilla($id_form,$filtro,$valor,$plantilla) {
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-$control=mysql_result($sql,0,"control");
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) )
- {
-$resultado .= contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- }
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias_plantilla");
-
-
-function mostrar_coincidencias($id_form,$filtro,$valor) {
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) )
- {
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $campos .= " $depliegue ";
-
- }
- $resultado = "
";
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias");
-
-
-function matriz_formulario($formulario,$div,$registros,$pagina,$formato){
- $respuesta = new xajaxResponse('utf-8');
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$md5_filtro = $formulario["campo_filtro"];
-//$formulario = mysql_seguridad($formulario);
-mysql_real_escape_string($formulario);
-$perfil = $formulario["form_id_id"];
-$filtro = $formulario["campo_filtro"];
-$control = md5(rand(1,99999999).microtime());
-
-$cantidad = formulario_contar($perfil);
-$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_filtro'";}
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{
- $resultado ="
Por favor seleccione un formulario";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-if($cantidad < 1) {
- $resultado ="
-
- El formulario \"$formulario_nombre[0]\" no tiene registros
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
-}
-
-$fecha_inicio = $formulario["inicio"];
-if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
-$fin = $formulario["fin"];
-$id_campo = $formulario["id_campo"];
-$busqueda = $formulario["busqueda"];
-
-if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";}
-if($id_campo ==''){
- $campo ='';
-
- }else{
- if($busqueda =='') {
- $resultado ="
Por favor escriba una palabra para buscar";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
- $campo ="AND id_campo = '$id_campo'";
-
- }
-
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';}
-
-
-
-$consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
- FROM form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_datos.id_empresa = '$_SESSION[id_empresa]'
- $busca
- $perfil
- $campo
- $w_filtro
- AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio')
- AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden";
-
-
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)==0){
- $resultado ="
No hay resultados para la consulta ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
-if (mysql_num_rows($sql)!=0){
- $total_registros = mysql_num_rows($sql);
- if($formato=='csv'){
- $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv";
- $boton_descarga ="
Descargar ";
- $archivo_reporte=fopen($nombre_archivo , "w");
- $encabezado =";;Periodo\n;;$inicio\n;;$fin \n ";
- fputs ($archivo_reporte,$encabezado);
- $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n";
- fputs ($archivo_reporte,$titulo);
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) )
- {
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv');
- $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv');
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $linea = $linea."\n";
- $lineas .= $linea;
- }
- $contenido ="$titulo \n $lineas";
- //rewind($archivo_reporte);
- fputs ($archivo_reporte,$contenido);
- $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga);
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
- }
- else{
- $respuesta ="
No hay resultados
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
-
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta.$limite;
- $sql=mysql_query($consulta_limite,$link);
- if (mysql_num_rows($sql)!='0'){
- $botones .= "
Limpiar ";
- if($formato!='csv'){
- $botones .= "
- Exportar
- ";
- }
- $paginacion ="";
- $paginacion .= $indice;
- $encabezado = "
-
-
-
$botones $paginacion $total_registros registros
-
-
";
-$fila=0;
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $menu ="
-
-
-
- ";
- $campos .= "
$menu $depliegue ";
- }
- $resultado .="
";
- }else{
- $resultado .="
No hay resultados para la consulta ";
- }
- //$resultado .="$consulta";
-$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado);
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-} $xajax->registerFunction("matriz_formulario");
-
-
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysql_query($consulta,$link);
-if (@mysql_num_rows($sql)!=0){
-$resultado[] = mysql_result($sql,0,$por);
-$resultado[] = mysql_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysql_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-function formulario_campos_select($perfil,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-
- $categoria = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," opcion = 'categoria'") ;
- $categoria = $categoria[0];
-$resultado = "
Campo
-
- Todos los campos ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-if($div =='') {
- if ($row[id_campo] == "$categoria"){
- $class="active";
- $filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
- }else { $class=""; $filtro ='';}
- $listado .="$row[id_campo] $row[campo_nombre] $filtro ";
- }
- }
-$resultado .= "
-
"; }
-else{$resultado = '';}
-
-if($div =='') {return $listado;}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("formulario_campos_select");
-
-
-function formulario_campos_filtro($perfil,$campo,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "
- Filtro
-
- Seleccione ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
";
- }
-else{$resultado = "
No se encontraron resultados
";}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_campos_filtro");
-
-
-//$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo","$id_campo");
-function formulario_consultar($div){
- if($div==''){
- $div = "contenido";
- $resultado = "
Consultas";
- return $resultado;
- }
- $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'",'');
- $fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $peticion = "
-
-
-
-
-
-
-
-
- Formulario
- $formulario
-
-
-
-
-
-
-
-
Consultar
-
-
-";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$peticion);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_consultar");
-
-
-function formulario_campos_procesar($form,$tipo_accion){
- //$form = mysql_seguridad($form);
- $campos_formulario ="";
-$grabar_campos_valores ="";
-$respuesta = new xajaxResponse('utf-8');
-$campo_nombre = $form["campo_nombre"];
-if($campo_nombre =='') {
-$respuesta->addAlert("El Nombre del campo no puede estar vacío");
-$respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
-return $respuesta;
-}
-
-//$campo_nombre = ucfirst(strtolower($campo_nombre));
-@$campo_descripcion = $form["campo_descripcion"];
-@$campo_tipo = $form["campo_tipo"];
-@$campo_area = $form["campo_area"];
-@$misma_area = $form["misma_area"];
-@$campo_orden = $form["campo_orden"];
-@$campo_identificador = $form["campo_identificador"];
-@$activo = $form["activo"];
-@$tipo = $form["tipo"];
-@$editar = $form["editar"];
-@$id_campo_editar = $form["id_campo_editar"];
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-if ($editar == 'editar' AND $tipo_accion =='editar'){
-mysql_query("
- UPDATE `form_campos`
- SET `campo_nombre` = '$campo_nombre',
- `campo_descripcion` = '$campo_descripcion',
- `orden` = '$campo_orden' ,
- `campo_area` = '$campo_area',
- `campo_tipo` = '$campo_tipo',
- `id_empresa` = '$_SESSION[id_empresa]',
- `activo` = '$activo'
- WHERE `form_campos`.`id` ='$id_campo_editar'
- LIMIT 1",$link);
-$w_campo = "id = '$id_campo_editar'";
-
- }else {
-$id_empresa = $_SESSION['id_empresa'];
-$id_especialista = $_SESSION['id'];
- $buscar_campo_nombre = remplacetas('form_campos','campo_nombre',$campo_nombre,'campo_nombre'," id_empresa = '$id_empresa' AND campo_area = '$campo_area' ") ;
- if($buscar_campo_nombre[0] == $campo_nombre) {
- $respuesta->addAlert("El Nombre del campo ( $campo_nombre ) ya existe en la misma área ");
- $respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
- return $respuesta;
- }
-if($campo_identificador == "") { $campo_identificador = md5($_SESSION['id_usuario']."-".microtime()); }
-$consulta = "
- INSERT INTO `form_campos`
- (`id_especialista`, `campo_nombre`,`campo_descripcion`,`campo_tipo`, `campo_area`, `orden`, `activo`, `identificador`, `id_empresa`)
- VALUES ('$id_especialista','$campo_nombre','$campo_descripcion','$campo_tipo','$campo_area','$campo_orden','1','$campo_identificador','$id_empresa')";
- $sql =mysql_query($consulta,$link);
- $ultimo_id = mysql_insert_id();
-$w_campo= "identificador = '$campo_identificador'";
-if($sql) {
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'div_campos')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
- $campos_formulario ="
-
-
- El campo se creó con éxito
- Crear un nuevo campo
- Modificar campo $listado_campos
- ";
- if(@$form['agregar_id_form'] !="") {
- $respuesta->AddScript("xajax_agregar_campos('grabar_campos','contenido','$ultimo_id','$form[agregar_id_form]') ");
- ///$respuesta->addAssign("$div","innerHTML",$resultado);
- //return $respuesta;
- }
- }else {$campos_formulario = "
Problemas al grabar el campo $consulta";}
- }
-
-if($id_campo_editar !='' AND $tipo_accion =='editar'){$id_form_campo = $id_campo_editar;}else {
-//$id_form_campo = mysql_insert_id($link);
-$id_form_campo = $ultimo_id;
-}
-//$respuesta->addAlert("( $campo_tipo / $id_form_campo / $ultimo_id / $form[opciones] ) $consulta");
-//$respuesta->addAssign("contenido","innerHTML","$consulta_campos_valores");
-//return $respuesta;
-if($campo_tipo == '23' ){
-$grabar_campos_valores = "(".$id_form_campo.",'".$form[opciones]."')";
-}
-/// separacion por comas
-else {
-$opciones=str_replace(', ',',',"$form[opciones]");
-$opciones = explode(",",$opciones);
-
-foreach($opciones as $c=>$v){
-
- //if($v !='') {$v = ucfirst(strtolower($v));
- if($v !='') {$v = $v;
-
-$grabar_campos_valores .= "( $id_form_campo ,'$v'),";
- }
-
- }
-$grabar_campos_valores =substr ("$grabar_campos_valores",0,-1);
-} /// fin de separacion por comas
-
-$borrar_campos_valores = "DELETE FROM `form_campos_valores` WHERE `id_form_campo` = '$id_form_campo'";
-$consulta_campos_valores = "INSERT INTO form_campos_valores (id_form_campo,campo_valor) VALUES ".$grabar_campos_valores."";
-
- $sql_borrar_campos_valores =mysql_query($borrar_campos_valores,$link);
- $sql_campos_valores =mysql_query($consulta_campos_valores,$link);
-
- $campos=mysql_query("
- SELECT id_form_campo, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, orden
- FROM `consulta_campos` , `tipo_campo`
- WHERE $w_campo
-
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- LIMIT 1",$link);
-
-
-$campos_formulario .= "
";
-while( @$row = mysql_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "
".$row['orden']."";}
-else{
-$campos_formulario .= "
".$row['orden']." ";
- } }
-
-$respuesta->addAssign("formulario_campos_$misma_area","innerHTML",$campos_formulario);
-return $respuesta;
-}$xajax->registerFunction("formulario_campos_procesar");
-
-function formulario_opciones_select($tipo,$id_campo){
- $valores="";
- $respuesta = new xajaxResponse('utf-8');
- $div = 'opciones_select';
-if($id_campo !=''){
-$consulta= "SELECT * FROM form_campos_valores WHERE id_form_campo = '$id_campo'";
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-while( $row = mysql_fetch_array( $sql ) ) {
- $valores .= "$row[campo_valor],";
- }
- $valores = substr($valores,0,-1);
- }
- }
-if($tipo =='8'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='9'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='16'){
- if($valores =='') {$valores = "1,10";}
-$resultado = "
$valores ";
- }
-elseif($tipo =='17'){
- $resultado ="
";
-}
-else{
-$resultado = "
$valores ";
-}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_opciones_select");
-
-
-
-function crear_campos_formulario($form,$id_form){
- $id_form=$id_form;
- $area="";
- $Campo_tipo_definido="";
- $Tipo_campo="";
- $campo_nombre ="";
- $campo_descripcion ="";
- $editar ="";
-
-$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-if($form['div'] !="") { $div = $form['div'];}else{$div="div_campos";}
-
-@$especialista = $form["id_especialista"];
-@$id_campo_editar = $form["id_campo_editar"];
-$resultado = "
-
-$id_campo_editar";
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$capa = "crear_campos_consulta_$area";
-$formulario ="manejo_campos_$area";
-
-if ($id_campo_editar > 0){
-$sql=mysql_query("SELECT * FROM form_campos WHERE id = '$id_campo_editar' AND activo ='1'",$link);
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .="";
-$campo_descripcion =$row['campo_descripcion'];
-$campo_nombre =$row['campo_nombre'];
-$orden =$row['orden'];
-$especialista =$row['id_especialista'];
-
-$formulario ="manejo_campos_$id_campo_editar";
-$editar="
-
-
-
";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
- }
-
-$Tipo_campo ="
Tipo:
-
";
-$tipos=mysql_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ",$link);
-while( $row = mysql_fetch_array( $tipos ) ) {
-
-if($row['id_tipo_campo'] == $Campo_tipo_definido){
-$Tipo_campo .= " > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-
-
-
- Incluir este campo en el formulario actual
-
-
- ";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-
-
";
-$resultado = "
-
-
- Crear un nuevo campo
- $resultado
-
-";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("crear_campos_formulario");
-
-function formulario_crear_campo($area,$campo,$div){
- $campos_formulario="";
- $misma_area="";
-$respuesta = new xajaxResponse('utf-8');
- if($div==''){
- $div = "contenido";
- $cerrar = " [X] ";
-$resultado = " Campos ";
-
- return $resultado;
- }
- //$div="div_campos";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta_campos ="SELECT id, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, form_campos.activo, form_campos.campo_tipo
- FROM `form_campos` , `form_tipo_campo`
- WHERE id_empresa = '$_SESSION[id_empresa]' AND id = $campo
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- ORDER BY orden ASC";
- $campos=mysql_query($consulta_campos,$link);
-if($campo ==''){
-
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'$div')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
-$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-$tabla_campos = campos_tabla('id_especialista','');
-$campos_formulario = "
-
-
-
-
-
-
-
-
-
-
-
-
- $tabla_campos
-";
-}else{
-$campos_formulario .= "
";
-while( $row = mysql_fetch_array( $campos ) ) {
-// if($row[campo_tipo] =='8'){
- $respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-// }
- $Tipo_campo ="Tipo:
- ";
-$tipos=mysql_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ",$link);
-while( $row_tipo = mysql_fetch_array( $tipos ) ) {
-
-if($row_tipo['id_tipo_campo'] == $row['campo_tipo'] ){
-$Tipo_campo .= " > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-if($row['activo'] =='1'){$activo = "Activo: el campo puede ser usado en formularios ";}
-else{$activo = "Inactivo: El campo NO se usará ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-
-
-
-
-
-
-";
-
- }
- }///fin de edicion
-
-
-
-$respuesta->addAssign($div,"innerHTML",$campos_formulario);
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_crear_campo");
-
-function agregar_campos($tipo,$div,$id,$formulario){
-$respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-if($tipo==''){
- $div="contenido";
-$resultado = " Editar ";
-print $resultado;
-return;
- }
- if($tipo=='consultar_listado'){
- $consulta="SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ASC";
- $sql =mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado .="Formulario: ";
-$resultado .= "Selecciona ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "$row[nombre] ";
- }
-$resultado .=" $cerrar";
- }else {
-$resultado = " No hay formularios para editar
";
- }
- }
-
-if ($tipo=='consultar_campos'){
- $consulta="
- SELECT form_contenido_campos.id_campo, form_contenido_campos.id,
- campo_nombre, obligatorio,control,multiple,form_contenido_campos.orden
- FROM form_contenido_campos, form_campos
- WHERE form_campos.id_empresa = '$_SESSION[id_empresa]' AND form_contenido_campos.id_form = $id
- AND form_contenido_campos.id_campo = form_campos.id
- ORDER BY form_contenido_campos.orden";
- $sql =mysql_query($consulta,$link);
- $consulta_nombre="SELECT * FROM form_id WHERE id ='$id'";
- $sql_nombre =mysql_query($consulta_nombre,$link);
- $nombre =mysql_result($sql_nombre,0,"nombre");
- //if (mysql_num_rows($sql)!='0'){
-$resultado ="$cerrar$nombre
- ";
-$resultado .= "
-
- Campo
-
-
- Obligatorio
-
-
- Orden
-
-
- Multiple
-
-
- Borrar
-
-
-
";
-
-while( $row = mysql_fetch_array( $sql ) ) {
- /* $multiple = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = '$row[id]' AND descripcion REGEXP '^multiple:' ") ;
- $multiple = explode(":",$multiple[0]);
- $multiple = $multiple[1];*/
-
- //$multiple = $multiple[0];
-$resultado .= "
-
- $row[id_campo] $row[campo_nombre]
-
-
-
-
-
-
-
";
- }
-
-$consulta_campos_todos ="SELECT form_campos.id, form_campos.campo_nombre, form_campos.campo_descripcion FROM form_campos WHERE form_campos.id_empresa = '$_SESSION[id_empresa]'
- ORDER BY campo_nombre ";
-$sql_consulta_campo =mysql_query($consulta_campos_todos,$link);
-
-$crear_nuevo ="
-
-
-
-
-
-
-";
- while( $row = mysql_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "$row[campo_nombre] [$row[id]] ";
- }
-$resultado .="
-
-
-
-$crear_nuevo ";
-
- }/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
- if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado=" Seleccione un campo";}
-else {
-$id_form=func_get_arg(3);
-$consulta = "SELECT id_campo FROM form_contenido_campos WHERE id_empresa = '$_SESSION[id_empresa]' AND id_campo= '$id' AND id_form= $id_form";
-$sql_consulta =mysql_query($consulta,$link);
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if(mysql_num_rows($sql_consulta) =='0') {
-$microtime = microtime();
-$consulta_grabar=" INSERT INTO form_contenido_campos (
-`id_campo` ,
-`id_empresa` ,
-`id_form` ,
-`obligatorio`,
-`control`
-)
-VALUES (
-'$id', '$id_empresa', '$id_form', '0', md5('$microtime' + rand())
-)";
-$sql_consulta_grabar =mysql_query($consulta_grabar,$link);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_form')");
-return $respuesta;
- }else{
-$div='atencion';$resultado=" El campo ya pertenece a esta consulta ";
- }
- }
-
- }///fin de grabar_campos
-
-if($tipo=='eliminar'){
-$confirmar=func_get_arg(3);
-
-
-if($id==''){
-$id_c=func_get_arg(4);
-$capa_original=func_get_arg(5);
-$resultado = "
- Seguro que desea eliminar el campo de esta consulta?
- [SI]
- [NO]
-
- ";}
- else{
- if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "
-
- ";
- }else{
-$consulta="DELETE FROM `form_contenido_campos` WHERE `control` = '$confirmar' LIMIT 1";
-$sql_consulta_eliminar = mysql_query($consulta,$link);
-$div=func_get_arg(5);
-$id_consulta=func_get_arg(4);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_consulta')");
-
- }
- }
-
- }/// fin de eliminar
-if($tipo == 'obligatorio'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `obligatorio` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-if($tipo == 'orden'){ /// orden
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `orden` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a =" $id
- ";
-
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-
-if($tipo == 'prellenado'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `consulta_tipo_campos` SET `prellenado` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de oprellenado
-$respuesta->addAssign($div,"style.display","block");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("agregar_campos");
-
-function formulario_nuevo($formulario,$div){
- $resultado ="";
- $formulario = mysql_seguridad($formulario);
- $respuesta = new xajaxResponse('utf-8');
- //$formulario=mysql_real_escape_string($formulario);
- $id_empresa= $_SESSION['id'];
- if($div==''){
- $div = "contenido";
-
-$resultado .= " Formulario ";
-
- return $resultado;
- }
-if($formulario ==''){
- $formulario_nombre = "nuevo_formulario";
- $formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-
-Crear un formulario
-
- Nombre para el formulario
-
-
-
- Descripción
-
-
-
- Formulario anidado con:
- $formulario_respuesta
-
-
- Grupo:
-
-
-
-
- Privado
-
- Público
-
-
-
-
-
- Grabar
-
-
- ";
-
- }else{
-$control = md5(rand(1,99999999).microtime());
-
-$nombre = $formulario['nombre']; // aa
-$descripcion = $formulario['descripcion']; // dxddc
-$publico = $formulario['publico']; // dxddc
-$grupo = $formulario['grupo'];
-
-if($publico =='') {$publico ='0';}
-$propietario= $_SESSION['id'];
-$formulario_respuesta = $formulario['formulario_respuesta']; // dxddc
-$link=Conectarse();
-@$formulario=mysql_real_escape_string($formulario);
-mysql_query("SET NAMES 'utf8'");
-$consulta = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-VALUES ('$nombre', '$descripcion', '1', '1', '$publico', '$propietario','$formulario_respuesta','$_SESSION[id_empresa]');";
-$sql=mysql_query($consulta,$link);
-$ultimo_id = mysql_insert_id();
- if($grupo !="") {
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo'";
- $sql_grupo=mysql_query($consulta_grupo,$link);
- }
-
-$respuesta->addscript("xajax_formulario_listado('','contenido'); ");
-}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_nuevo");
-
-
-function formulario_listado($filtro_grupo,$div){
- $item="";
- $grupo_formularios="";
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} if($div==''){
- $div = "contenido";
- if(isset($_SESSION['grupo_formularios'])) { $sesion_grupo_formularios = $_SESSION['grupo_formularios'];}else { $sesion_grupo_formularios = "";}
-$resultado = " Formularios ";
-
- return $resultado;;
- }
-$control = md5(rand(1,99999999).microtime());
-$respuesta = new xajaxResponse('utf-8');
-$_SESSION['grupo_formularios'] = $filtro_grupo;
-
-$link=Conectarse();
- $id=mysql_real_escape_string('$id');
-mysql_query("SET NAMES 'utf8'");
-if($filtro_grupo =="") {
-$consulta = "SELECT * FROM form_id WHERE id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
- }
-else {
-$consulta = "
-SELECT * FROM form_id, form_grupo
-WHERE form_grupo.id = form_id.id
-AND form_grupo.grupo = '$filtro_grupo'
-AND form_id.id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
-}
-$sql=mysql_query($consulta,$link);
-if($filtro_grupo !="") {
- $leyenda_filtro_grupo ="Grupo $filtro_grupo ";
-
- }else{ $leyenda_filtro_grupo ="Formularios "; unset($_SESSION['grupo_formularios']);}
-$resultado_link = " Formularios ";
-$respuesta->addAssign("link_formulario","innerHTML",$resultado_link);
-
-
-$divider = 1;
-$columnas = intval(12/$divider);
- $listado_grupos = select_empresa('form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","AGRUPADO",'','',"$id_empresa");
- $listado_grupos ="
-
- Seleccione un grupo de formularios
- $listado_grupos
-
-
- ";
-
- $nuevo_formulario = "
- ";
- $resultado = "
-
- $nuevo_formulario
-
-
- $listado_grupos
-
- $leyenda_filtro_grupo
-
- ";
-
-if (mysql_num_rows($sql)!='0' ){
- $i =0;
-
- while( $row = mysql_fetch_array( $sql ) ) {
- $id= $row['id'];
- $C = $id;
-
- $cantidad = formulario_contar($row['id']);
- if($cantidad >0) {$cantidad ="Llenado: $cantidad veces ";}else{$cantidad = "";}
- $propietario = remplacetas('usuarios','id',$row['propietario'],'email',"") ;
- $estado = remplacetas('form_id','id',$id,'publico',"") ;
- $nombre_formulario = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion_formulario = remplacetas('form_id','id',$id,'descripcion',"") ;
- $estado = "
-
- Contenido privado
-
- Público
-
- ";
- $modificable = remplacetas('form_id','id',$id,'modificable',"") ;
- $modificable = "
-
- Formulario privado
-
- Público
-
- ";
-
-
- $primer = formulario_uso("$id",'','primer') ;
- if(@$primer[0] !='') {$primer = "Primer registro: ".date ( "Y-m-d h:i:s" , $primer[0])." ";}else{$primer='';}
- $ultimo = formulario_uso("$id",'','ultimo') ;
- @$ultimo_control = $ultimo[1];
- if(@$ultimo[0] !='') {$ultimo = "Último registro: ".date ( "Y-m-d h:i:s" , $ultimo[0])." ";}else{$ultimo='';}
-
- $nombre = editar_campo("form_id",$row['id'],"nombre","","","","");
- $orden = editar_campo("form_id",$row['id'],"orden","","","","");
- $descripcion = editar_campo("form_id",$row['id'],"descripcion","","","","");
- $geo = buscar_campo_tipo($id,"14");
- $email_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- $mensaje_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
- if($geo[0] !='') { $mapa= " Mapa ";}else {$mapa='';}
-
- if($i % $divider==0) {
-
-//$item .= "";
- }
- $i++;
- $grupo_actual = remplacetas('form_grupo','id',$row['id'],'grupo',"") ;
- if(is_null($grupo_actual[3])) {
- $valores_grupo['id']=$row['id'];
- $valores_grupo['grupo']="";
- $grupo = "
-
- ";
- // $grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }else
- {
- $grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
- }
-
-$item .= "
-
-
-
-
-
-
-
- Creación: $row[creacion] / $propietario[0]
- $cantidad
- $ultimo
- $primer
- $mapa
-
-
-
-
-
$row[id]
-
-
-
-
-
-
-
-
-
-
-
-
Agregar o quitar campos
-
-
-
-
-
-
-
- Nombre: $nombre
- Descripción: $descripcion
- Orden: $orden Grupo: $grupo
-
-
-
Mensaje de respuesta
-
-
$mensaje_envio[0]
-
Soporta CSS3, HTML5 y Bootstrap
-
Grabar y previsualizar
-
-
-
-
-
Previsualización
-
- $mensaje_envio[0]
-
-
-
-
-
-
-
-
-
-
- $estado
-
-
- $modificable
-
-
-
-
-
- ";
-
-
- if($i%$divider==0) {
- $item .= "
";
- }
-
- }
-
-
- //$resultado .="";
- }
-
-
-else{ $resultado .= "
Aún no se han diseñado formularios ";}
-
- $resultado_formulario ="
-
- $item
-
";
- $resultado = "$resultado $resultado_formulario ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_listado");
-
-function formulario_eliminar($id,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre_form = $nombre[0];
- if($tipo =='') {
-$resultado =" ";
-}elseif($tipo=='cancelar') {
- $resultado =" Eliminar ";
-}elseif($tipo =='eliminar'){
-$consulta = "DELETE FROM form_id WHERE form_id.id = '$id' ";
-$link=Conectarse();
- $sql=mysql_query($consulta,$link);
- if($sql) {
- $respuesta->addAlert("Se eliminó el formulario \" $nombre_form \" ");
- $respuesta->addAssign("panel_$id","innerHTML","");
- return $respuesta;
-
- }
-}
-else {}
-$respuesta->addAssign("eliminar_$id","innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_eliminar");
-
-
-function campo_multiple($id_campo,$id_form,$control,$item){
-//if ( !isset ( $_SESSION['id'] ) ) { return;}
-
- if($item==''){$item=1;}
- $id= $item;
-$render = formulario_campos_render($id_campo,$id_form,$control,$item+1);
- $ingredientes = "
-
- $render
-
-
-
-
- ";
- $boton= "
- Agregar campo
-
";
-$div = "id_campo_$id_campo"."_".$id;
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$ingredientes);
-$respuesta->addAssign("boton_".$id_campo."","innerHTML","$boton ");
-return $respuesta;
-
-}
-$xajax->registerFunction("campo_multiple");
-
-
-function formulario_campos_render($id_campo,$id_form,$control,$item,$id_dato){
-$cols ="";
-$style="";
-$campo_multiple="";
-$render="";
-
-$consulta ="
- SELECT *
- FROM form_contenido_campos,form_campos, form_tipo_campo
- WHERE form_contenido_campos.id_form = '$id_form'
- AND form_contenido_campos.id_campo = '$id_campo'
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = form_campos.campo_tipo ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0'){
- if($id_dato !='') {
- $value = remplacetas('form_datos','id',$id_dato,'contenido'," control = '$control'") ;
- $multiple='0';
- }
- else {
- $value = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$control'") ;
- $multiple=mysql_result($sql,0,"multiple");
- }
- if($item=='') {$item ="0";}else {$item=$item;}
-
- if($value[0] !='') {$value= "$value[0]";}ELSE{$value='';}
- $campo_nombre=mysql_result($sql,0,"campo_nombre");
- $campo_descripcion=mysql_result($sql,0,"campo_descripcion");
- $campo_tipo_accion=mysql_result($sql,0,"tipo_campo_accion");
- $campo_obligatorio=mysql_result($sql,0,"obligatorio");
- if($campo_obligatorio =='1') {$obligatorio ="danger";}else{$obligatorio ="default";}
-
- if($campo_tipo_accion == 'text'){$render = " ";}
- elseif($campo_tipo_accion == 'date'){$render = " ";}
- elseif($campo_tipo_accion == 'rango'){
- $rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = $rango;}
- elseif($campo_tipo_accion == 'mapa'){
- $lat="";
- $lon="";
- $zoom="";
- if($value !=""){
-
- $campos = explode(" ",$value);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- if($lat =="") {
- $localizacion = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- //$render= $localizacion[0];
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
-
- }
- }
- $render .= "
-
-
-
-
-
- ";
- $cols='12';
- }
-elseif($campo_tipo_accion == 'email'){$render = "
-
- Escriba un email válido
";}
- elseif($campo_tipo_accion == 'envio'){$render = "
-
- Se enviará un email
";}
- elseif($campo_tipo_accion == 'textarea'){
- $render = " $value ";
- $cols='12';
- }
- //$subir_imagen = subir_imagen('');
- elseif($campo_tipo_accion == 'imagen'){
- $style ="display:hidden";
- // $gps = leer_exif($file);
- $render= " "; //subir_imagen('',$id_campo[$item]);
- $cols='12'; }
-
- elseif($campo_tipo_accion == 'html'){
- $render = "
-
- $value ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'limit'){
- $limite = limite("".$id_campo."[".$item."]",'','limite');
- $rows = ceil($limite / 50 )+1;
- $render = "$limite /
-
-
- $value
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'select'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select "; $cols='12'; }
- elseif($campo_tipo_accion == 'radio'){
- $select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_campos'){
- //radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control)
- $campos_valores = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $mensaje = remplacetas('form_campos','id',$id_campo,'campo_descripcion',"") ;
- $campos = explode(":",$campos_valores[0]);
- $titulos = explode(";",$campos[0]);
- $campos_incluidos = explode(";",$campos[1]);
- for($i=0;$i$campos_incluidos[$i] ";
- //$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "
-
-
-
- $mensaje[0]
- $listado_titulos
- $listado_campos
-
-
-
";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_linea'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = " ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'checkbox'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = checkbox_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";}
- elseif($campo_tipo_accion == 'combo'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = combo_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'relacion'){
- $select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'buscador'){
- $select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'base'){
- $select = buscador_base($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";}
- elseif($campo_tipo_accion == 'vinculado'){
- $vinculado = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $select = formulario_areas($vinculado[0],'campos');
- $render = "
- $select
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'number'){
- $render = "
-
- (solo números)
";}
-
- elseif($campo_tipo_accion == 'password'){
- if( $id_dato !="") {
- $render = "
-
- ";
- }else {$render="";$label="";$campo_tipo_accion="oculto";}
- $cols='12'; }
- elseif($campo_tipo_accion == 'unico'){
- $render ="
-
";
- }
- else{$render = " ";}
- if($multiple =='1'){
-
-
- $campo_multiple = "
-
- ";
-}
- if($item == 0) { $label = " $campo_nombre ";}
- else {$label = "$campo_nombre $campo_obligatorio ";}
- ///// CAMPOS QUE NO SE MOSTRARAN
- if($campo_tipo_accion == 'imagen'){
- $label="";
- }
- if($cols =="") {$cols = "6";}
- $input = "
-
-$campo_multiple
- ";
-
-
-if($campo_tipo_accion != "oculto") {
- $input= $input;
- }else { $input ="";}
-
- }
- return $input;
-}
-
-
-function validar_email($email) {
-
-if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
- return 1;
-}else{
- return 0;
-}
-}
-
-function formulario_valor_campo_ORIGINAL($perfil,$id_campo,$valor,$id_control){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$valor=mysql_real_escape_string($valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-$consulta = "SELECT * FROM `form_datos` WHERE `form_id` = '$perfil' AND id_campo='$id_campo' $valor AND `control` = '$id_control' ORDER BY timestamp DESC limit 1";
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysql_result($sql,0,"control");
-$timestamp=mysql_result($sql,0,"timestamp");
-mysql_data_seek($sql, 0);
-if($cant === 1) {
- $contenido=mysql_result($sql,0,"contenido");
- }else {
-while( $row = mysql_fetch_array( $sql ) ) {
- $contenido .= "$row[contenido] ";
- }
- }
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = $contenido;
-}
-return $existe;
- }
-
-
-
-function formulario_valor_campo($perfil,$id_campo,$valor,$id_control,$orden){
-$contenido="";
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-$campo_multiple = remplacetas("form_contenido_campos","id_campo",$id_campo,"multiple"," id_form ='$perfil'");
-$tipo_campo = remplacetas("form_campos","id","$id_campo","campo_tipo","");
-$campo_multiple = $campo_multiple[0];
-if($tipo_campo[0] =="24") {$campo_multiple = "1";}
-/// SI EL CAMPO ES MULTIPLE O CHECK BOX MUESTRA LAS MULTIPLES ENTRADAS
-if($campo_multiple !="1" ){ $limite =" asc limit 1 ";}else {$limite =" asc ";}
-if(@$orden !=""){ $campo_orden =" AND orden ='$orden' ";}else {$campo_orden ="";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$valor=mysql_real_escape_string($valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-/*
-$consulta = "SELECT * FROM `form_datos`
-WHERE `form_id` = '$perfil'
-AND id_campo='$id_campo' $valor
-AND `control` = '$id_control' $campo_orden
-GROUP BY orden
-ORDER BY timestamp $limite ";
-*/
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$perfil'
- AND id_campo ='$id_campo' $valor
- AND control ='$id_control' $campo_orden
- group by orden
- ORDER BY orden $limite";
-
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysql_result($sql,0,"control");
-$timestamp=mysql_result($sql,0,"timestamp");
-$orden=mysql_result($sql,0,"orden");
-$id_usuario=mysql_result($sql,0,"id_usuario");
-$ip=mysql_result($sql,0,"ip");
-mysql_data_seek($sql, 0);
-$md5_contenido = "";
-if($cant === 1) {
- //$contenido=mysql_result($sql,0,"contenido");
- $identificador=mysql_result($sql,0,"identificador");
- $identificador = explode(',',$identificador);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $md5_contenido = $contenido_campo[3];
- //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
- //$md5_contenido = $md5_contenido[0];
- $contenido = "$contenido_campo[0] ";
- }else {
-while( $row = mysql_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_campo[0] ";
- }
- }
-// $contenido .="$consulta";
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = "$contenido";
-$existe[] = $md5_contenido;
-$existe[] = $orden;
-$existe[] = $id_usuario;
-$existe[] = $ip;
-}
-return $existe;
- }
-
-function formulario_grabar($formulario) {
- $debug="";
- $respuesta = new xajaxResponse('utf-8');
- $datos="";
- $envio="";
- //$formulario = mysql_seguridad($formulario);
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
- $consulta_grabada ='0';
- $control = $formulario['control']; //
- $form_id = $formulario['form_id']; //
- $tipo = $formulario['tipo']; //
- if(@$formulario['imagen'] !=''){$formulario[0][0] = $formulario['imagen'];}
-
- $consulta_form = "SELECT * FROM form_contenido_campos,form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$form_id' ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-// $sql=mysql_query($consulta_form,$link);
-
-// if (mysql_num_rows($sql)!='0'){
-// mysql_data_seek($sql, 0);
-// while( $row = mysql_fetch_array( $sql ) ) {
-
-
-//////
- if(isset ( $_SESSION['id_empresa'])){$id_empresa = $_SESSION['id_empresa']; }else{
- $id_empresa = remplacetas('form_id','id',$formulario['form_id'],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- }
-foreach($formulario as $c=>$v){
-
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if($V != '') {
-
-
-
-$datos .= "$$c = \$formulario['$c'][$C]; // $V /$campo_tipo[0]
";
- if($campo_tipo[0] =='12' OR $campo_tipo[0] =='13') {
- $validar = validar_email($V);
- if($validar == '0') {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }else {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- }
- }
- if($campo_tipo[0] =='3' ) {
- $validar = is_numeric($V);
- if(is_numeric($V) ) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
- }else{
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] solo acepta valores numéricos");
- return $respuesta;
- }
- }
-
- if($campo_tipo[0]=='17') {
- $limite = limite("$c",'','limite');
- $size= strlen($V);
- $restante = ($limite - $size);
- if( $restante < 0) {
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] no debe tener mas de $limite caractéres, sobran $restante");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
- }
-
-
-
- }
-else{ //busca campos vacios
-
-$campo_obligatorio = remplacetas("form_contenido_campos","id_campo",$c,"obligatorio","id_form = '$formulario[form_id]'");
-if($campo_obligatorio[0] =='1'){
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] es obligatorio");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
-
-}
-
-$md5 = md5($V);
-$igual = formulario_valor_campo("$form_id","$c","$md5","$formulario[control]","$C");
-$existe = formulario_valor_campo("$form_id","$c","","$formulario[control]","$C");
-//$valor_anterior .= $existe[3]."| ";
-$debug .= "$existe";
-if(!is_null($existe) AND $tipo =='edit' AND $V =='') {
- $consulta_vacio ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysql_query($consulta_vacio,$link);
- if($sql) {
- $consulta_grabada ='1';
- }
-}
-if(is_null($igual) ){$repetido = 0;}else{
-$repetido = 1;
-}
-
-
-//return $respuesta;
-//$respuesta->addAlert("$debug");
-//return $respuesta;
-$debug .= "V = $V /$c /$repetido / $igual ";
-if(($V !='' ) && (is_numeric($c)) AND $repetido !=1 ) {
-//$debug = "Hola mundo";
- $V = mysql_real_escape_string($V);
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
-
-if(@$campo_tipo[0] =="18") {
- $V = md5("$V");
-}else{$V=$V;}
-
-
- $consulta ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '".@$_SESSION[id]."', '$V', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysql_query($consulta,$link);
- $debug .= "$consulta = $sql ,";
- if($sql) {
- $consulta_grabada ='1';
- }
- }
-
- } ///fin del array
-
- }///fin del array primario
- else {
- if($v !='') { //$datos .= "$$c = \$formulario['$c']; // $v
";
- }
- }
- }
-
-
-
-
-// }
-// }
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX" )
-{
- $exito ="
-
- $formulario[mensaje]
-
- ";
- $mail = '1';
- }
- elseif($tipo == "solocampos" ){
-
-
- $exito ="
-
- $formulario[mensaje]
-
- ";
-
- $mail='0';
- }
- else{
- $campo_envio = buscar_campo_tipo($formulario['form_id'],"13");
- if($campo_envio[0] != "") {
-$envio = email_contenido("$formulario[form_id]","$formulario[control]","$campo_envio[0]",'');
- }
-
-if($tipo = "embebido") {
-$otro_formulario ="
-
- Llenar otro formulario
-
-";
-}else {
- $otro_formulario = "
-
- Llenar otro formulario
-
-
- ";
-}
-$impresion = formulario_imprimir("","$formulario[control]","preview");
-$mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
-//$impresion = mostrar_identificador($formulario['control']);
- $exito ="
-
- $mensaje_agradecimiento[0]
-
-
- $impresion
-
-
- Gracias por llenar el formulario $formulario[form_nombre]
-
-
- $otro_formulario
-
-
- $envio
-
-
-
";
-
-// $mail ='1';
- }
-
-//if($mail =='1') {
-
- //$propietario = remplacetas('form_id','id',$formulario[form_id],'propietario',"") ;
- //$propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $email_envio = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($email_envio[0] !="") {
- $impresion = formulario_imprimir("","$formulario[control]","preview");
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$formulario[form_id],"nombre","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0]" . "\r\n";
-
-$asunto= "$nombre_formulario[0]";
-$cuerpo ="
-$mensaje_agradecimiento[0]
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en http://$_SERVER[HTTP_HOST]/milfs?id=$formulario[form_id]&c=$formulario[control]
-Saludos de MILFS
-";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $exito .=""; }else {$exito .="error enviando correo";}
- //$exito .= "$email[0] $headers ";
- }
- /// }
- $respuesta->addAssign("div_$control","innerHTML","$exito ");
- return $respuesta;
- }else{
- $mensaje ="
-
-
Todo bien pero al parecer no se moficaron registros ";
- $respuesta->addAssign("div_$control","innerHTML","$mensaje");
- }
-//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
-return $respuesta;
-}
-$xajax->registerFunction("formulario_grabar");
-
-function mysql_seguridad($inp) {
- if(is_array($inp))
- return array_map(__METHOD__, $inp);
-
- if(!empty($inp) && is_string($inp)) {
- return str_replace(array('\\', "\0", "'", '"', "\x1a"), array('\\\\', '\\0', "\\*", "\\*", '\\Z'), $inp);
- }
-
- return $inp;
-}
-
-function formulario_campos_render_multiple($id_campo,$id_form,$control,$item) {
-
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$id_form'
- AND id_campo ='$id_campo'
- AND control ='$control'
- group by orden ORDER BY orden asc";
- $link=Conectarse();
- //$resultado .= "$consulta";
- mysql_query("SET NAMES 'utf8'");
- $sql =mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0' ){
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- //$identificador = $row[identificador];
- $resultado .= $identificador;
- $resultado .= formulario_campos_render($row[id_campo],$id_form,$control,$row[orden],$identificador);
- $item = $item + 1;
- }
- }
- $resultado .= formulario_campos_render($id_campo,$id_form,'',$item,'');
-
- return $resultado;
-}
-
-
-
-function formulario_modal($id,$form_respuesta,$control,$tipo) {
-
- $respuesta = new xajaxResponse('utf-8');
- $solo_campos ="";
- $subir_imagen ="";
-
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
- $formulario_respuesta = formulario_respuesta("$id","$control");
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"",'') ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = "$formulario_respuesta";
- $pie .= empresa_datos("$id_empresa",'pie');
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $cabecera ="".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
-
- $nuevo_formulario = "Llenar otro formulario ";
-if($control !='' AND $tipo =='' ) {
- $impresion = formulario_imprimir("$id","$control","");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $muestra_form = "$impresion
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $modificable = remplacetas('form_id','id',$id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
-
-$consulta = "
- SELECT * FROM form_id, form_contenido_campos
- WHERE form_id.id = form_contenido_campos.id_form
- AND form_id.id = '$id' ORDER BY form_contenido_campos.orden ASC
- ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- $descripcion=mysql_result($sql,0,"descripcion");
- $nombre=mysql_result($sql,0,"nombre");
- $id_empresa=mysql_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera = "
- $salir
-
-
-
-
-
-
-
-
-
$nombre $descripcion
-
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($id,"15");
-@$campo_imagen_nombre = $campo_imagen[1];
-@$campo_imagen = $campo_imagen[0];
-
-
-if (@$campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$id","$campo_imagen"."[0]");
- }
- $muestra_form = "
-
-
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {
-
- //if(null === @$_SESSION['id'] AND $permiso_identificador != $control) {
- if($_SESSION['id_empresa'] !== $id_empresa AND $permiso_identificador != $control) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
-
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //// si no esta logueado nose puede editar ////
- $control_edit = "$control";
-
- }else {$control_edit = "";}
-
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas("form_campos","id","$row[id_campo]","campo_tipo","");
- //if($tipo_campo[0] =="24") { $row[multiple] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos = formulario_campos_render_multiple($row['id_campo'],$id,$control_edit);
- }else{
- $campos = formulario_campos_render($row['id_campo'],$id,$control_edit,'','');
- }
- $muestra_form .= "$campos ";
- $solo_campos .= "$campos ";
- }
- $muestra_form .="
-
- ";
- }
-
-$muestra_form .="
-
-
-
";
- $muestra_form = "$muestra_form
";
-if($tipo=='campos') {
- return $solo_campos;
-}
-if($tipo=='embebido') {
- return $muestra_form;
-}
-
-$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
-$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
-$respuesta->addAssign("pie_modal","innerHTML","$pie");
-$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-//$respuesta->addscript("$('textarea').markdown({autofocus:false,savable:false})");
-//$respuesta->addscript("$(document).ready(function () { $(\"#24[0]\").cleditor(); })");
-//$(document).ready(function () { $("#input").cleditor(); });
-
-
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_modal");
-
-
-
-function limpia_div($capa){
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($capa,"style.padding","0px");
-$respuesta->addClear($capa,"innerHTML");
-
-return $respuesta;
-}$xajax->registerFunction("limpia_div");
-
-
-function select_key($tabla,$key,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$key;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-$resultado="
-Seleccione
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_empresa($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor,$id_empresa){
- $w ="";
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE id_empresa = '$id_empresa' $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-
-function select_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado="
-Seleccione
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row['campo_valor'] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= " $row[campo_valor] ";
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-
-
-function radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-$valor = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-$nombre_linea = mysql_result($sql,0,"campo_nombre");
-$descripcion_linea = mysql_result($sql,0,"campo_descripcion");
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor[0]"){$selected="checked";}else{$selected ="";}
-$lineas .= " $row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-
-function radio_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-$nombre_linea = mysql_result($sql,0,"campo_nombre");
-$descripcion_linea = mysql_result($sql,0,"campo_descripcion");
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$lineas .= "$row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-function radio_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado="
-
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$resultado .= " $row[campo_valor]
";
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function checkbox_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
- $name = explode("[",$name);
- $name = $name[0];
- $fila="0";
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' and contenido ='$row[campo_valor]' ");
-
- $nombre= "$name"."[".$fila."]";
-//if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-if($value[0] ==="$row[campo_valor]"){$selected="checked";}else{$selected ="";}
-$resultado .= "
-
-
- $row[campo_valor] $selected
-
-
";
- $fila++;
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function rango($tabla,$campo,$key,$valor,$selected,$nombre,$onchange){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT min($campo) as min , max($campo) as max FROM $tabla WHERE $key ='$valor' ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- $min=mysql_result($sql,0,"min");
- $max=mysql_result($sql,0,"max");
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-$resultado="
- $min
-
- $max $selected
-
" ;
-
-
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function limite($id_campo,$contenido,$tipo){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT campo_valor FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- $limite=mysql_result($sql,0,"campo_valor");
-
- }else{}
- if($tipo =='limite') { return $limite;}
-$respuesta = new xajaxResponse('utf-8');
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("limite");
-
-function confirma_campo($valor_1,$valor_2,$campo,$campo_confirmacion){
- $respuesta = new xajaxResponse('utf-8');
- $pos = strpos($campo,"email");
-
-if($pos == "") { //// si no es un email
- }
- else {//// si es un email se revisa
- $email = validar_email("$valor_1");
- if($email === 0 ) {
- $respuesta->addAssign("$campo","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("El email no es valido ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- return $respuesta;
- }
- else{
- }
- }
-
-
-
- if($valor_1 != $valor_2){$resultado = "Los valores NO son iguales";
- $respuesta->addAlert("$resultado");
- /// $respuesta->addAssign("$campo","style.color","red");
-
-
- $respuesta->addAssign("$campo","value","$pos");
- $respuesta->addAssign("$campo_confirmacion","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- // document.getElementById('mobileno').focus();
-
-
- }else{
- //$respuesta->addAssign("$campo_confirmacion","style.color","green");
-
- $respuesta->addAssign("$campo","className"," form-control ");
- $respuesta->addAssign("$campo_confirmacion","className"," form-control ");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-success ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-success ");
- }
- return $respuesta;
-}
-$xajax->registerFunction("confirma_campo");
-
-
-function validar_campo($valor,$campo,$tabla,$div,$id){
-$valor = mysql_seguridad($valor);
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta="SELECT $campo FROM $tabla WHERE $campo = '$valor' LIMIT 1";
-$sql =mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0' ){
-$verificacion = "atencion"; $existe='';
-
-$respuesta->addAssign($campo,"value","");
-///$respuesta->addAlert("El valor $valor $existe existe");
-$resultado = "Grrr $valor $existe existe ";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else {$verificacion ="check"; $existe='NO';}
-$resultado = "Ok, buen $campo ! ";
-$respuesta->addAssign("$id","style.backgroundColor","#CBE7CB");
-//$resultado .= "$valor,$campo,$tabla,$div";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-
-return $respuesta;
-}
-$xajax->registerFunction("validar_campo");
-
-
-function comprobar_email($email,$tipo,$campo){
-$email = mysql_seguridad($email);
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='tercero') {$id_campo='tercero_email';}
-
-
-else{$id_campo = 'email';}
-
-if($campo !=''){
-$id_campo="$campo";
-}
-
-
-if ($email == "" AND $tipo==''){
- $respuesta->addAlert("El campo email es obligatorio ");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- return $respuesta;
- }
-
- $mail_correcto = 0;
- //compruebo unas cosas primeras
- if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
- if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
- //miro si tiene caracter .
- if (substr_count($email,".")>= 1){
- //obtengo la terminacion del dominio
- $term_dom = substr(strrchr ($email, '.'),1);
- //compruebo que la terminación del dominio sea correcta
- if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
- //compruebo que lo de antes del dominio sea correcto
- $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
- $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
- if ($caracter_ult != "@" && $caracter_ult != "."){
- $mail_correcto = 1;
- }
- }
- }
- }
- }
- if ($mail_correcto AND $tipo=='' )
- {
-$consulta= "SELECT email FROM usuarios WHERE email = '$email' LIMIT 1 ";
- $link=Conectarse();
-$sql=mysql_query($consulta,$link);
-$revisa=mysql_result($sql,0,"email");
-if ($revisa != ''){
-
- $respuesta->addAlert("$email: ya está registrado ");
- $respuesta->addAssign("email","style.color","red");
- $respuesta->addAssign("email","value","");
- return $respuesta;
- }
- $respuesta->addAssign("email","style.color","green");}
- elseif ($mail_correcto AND $tipo==='revisar' ) {
- $revisar = remplacetas("usuarios","email",$email,"email","");
- if($revisar[0] != '') {
-
- $respuesta->addAssign("$campo","style.color","white");
- $respuesta->addAssign("$id_campo","style.backgroundColor","green");
- }else{
- $respuesta->addAlert("$email: No existe en el sistema)");
- $respuesta->addAssign("$campo","value","");
- }
- return $respuesta;
- }
-
- elseif ($mail_correcto AND $tipo==='tercero' ) {
- $documento = remplacetas("terceros","email",$email,"documento","");
- if($documento[1] =='') { /// si el tercero NO existe
-
- }else { /// si el tercero existe en el sistema
-
- $tipo_persona = remplacetas("terceros","id",$documento[1],"tipo_persona","");
-
- if($tipo_persona[0] =='1') {
- $razon_social = remplacetas("terceros","id",$documento[1],"razon_social","");
- $resultado .= " $razon_social[0]] Nit: $documento[0]";
- } else {
- $primer_nombre = remplacetas("terceros","id",$documento[1],"p_nombre","");
- $segundo_nombre = remplacetas("terceros","id",$documento[1],"s_nombre","");
- $primer_apellido = remplacetas("terceros","id",$documento[1],"p_apellido","");
- $segundo_apellido = remplacetas("terceros","id",$documento[1],"s_apellido","");
- $resultado .=" \r $primer_nombre[0] $segundo_nombre[0] $primer_apellido[0] $segundo_apellido[0] \r Documento: $documento[0]";
- }
-
- $respuesta->addAlert("$email: $resultado");
- $respuesta->addAssign("tercero_documento","value","$documento[0]");
- $respuesta->addAssign("tercero_primer_nombre","value","$primer_nombre[0]");
- $respuesta->addAssign("tercero_segundo_nombre","value","$segundo_nombre[0]");
- $respuesta->addAssign("tercero_primer_apellido","value","$primer_apellido[0]");
- $respuesta->addAssign("tercero_segundo_apellido","value","$segundo_apellido[0]");
- $respuesta->addAssign("tercero_razon_social","value","$razon_social[0]");
- $respuesta->addAssign("tercero_id","value","$documento[1]");
-
- }
-
- }
- else
- {$respuesta->addAlert("$email: no es un correo válido");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("comprobar_email");
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-
-function milfs(){
- $crear_campos = formulario_crear_campo('','','');
- $listado = formulario_listado('','');
- //$consultas = formulario_consultar('','');
- $importador = formulario_importador('');
- $limpiar_cache = borrar_tmp('');
- $configuracion= configuracion('');
-
- $login = login_boton('');
- $menu =
-"
-
-
-
- $crear_campos
-
- $listado
-
- $importador
- $limpiar_cache
- Presentación
- $configuracion
-
-
-
-
-
";
-
- return $menu;
-}
-function url_existe($url)
-{
- $handle = @fopen($url, "r");
- if ($handle == false)
- return NULL;
- fclose($handle);
- return $url;
-}
-function es_imagen($url)
- {
- $imageSizeArray = getimagesize($url);
- $imageTypeArray = $imageSizeArray[2];
- return (bool)(in_array($imageTypeArray , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG )));
- }
-function parametrizacion($array) {
- //return $array;
- $link=Conectarse();
- mysql_real_escape_string($array);
- $accion = $array[accion];
- $tabla = $array[tabla];
- $campo = $array[campo];
- $opcion = $array[opcion];
- $descripcion= $array[descripcion];
- $visible= $array[visible];
- $id= $array[id];
-
- if($accion =='grabar'){
- $consulta= "INSERT INTO form_parametrizacion set tabla='$tabla', campo ='$campo',opcion ='$opcion' , descripcion ='$descripcion' ,visible='$visible'";
- }
- // return $consulta;
- $sql=mysql_query($consulta,$link);
- if($sql){return "Campo grabado"; }else{return "";}
-
-}
-
-?>
\ No newline at end of file
diff --git a/milfs/funciones/funciones_20151117.php b/milfs/funciones/funciones_20151117.php
deleted file mode 100644
index ddbd14c..0000000
--- a/milfs/funciones/funciones_20151117.php
+++ /dev/null
@@ -1,8278 +0,0 @@
- Ver mas ...";
- //$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- $linea = "$identificador
-
-
-
-
-
-
-
-
-
-
-
- $impresion
- $uri
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
-
- return $linea;
- }
-
-
-function landingpage_contenido_formulario($form){
-$consulta= "SELECT control FROM form_datos WHERE form_id = '$form' GROUP BY control ";
- $id_empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $linea="";
- $fila = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
- $impresion = mostrar_identificador($row['control'],"","landingpage");
- $imagen = buscar_imagen($form,$row['control'],"","$id_empresa[0]");
- if($imagen !="") { $clase = "col-lg-5 col-sm-6";}else {$clase = "col-lg-12 col-sm-12";}
- $uri = " Ver mas ... ";
- $linea .= landingpage_contenido_identificador($row['control']);
- //$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- /*$linea .= "$row[control]
-
-
-
-
-
-
-
-
-
-
-
- $impresion
- $uri
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";*/
-}
- }
- return $linea;
- }
-
-function landingpage_contenido($id_empresa){
-$consulta= "SELECT * FROM form_id WHERE publico ='1' AND id_empresa= '$id_empresa' ORDER BY id DESC";
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $linea="";
- $fila = 1;
- include("includes/datos.php");
- $error_token = "";
- $contenido = "";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; } else {$error_token = "";}}
- while( $row = mysql_fetch_array( $sql ) ) {
- $contenido = "Mas información ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- if($ultimo_mapa[0] !="") {
- $campos = explode(" ",$ultimo_mapa[0]);
- $lat = $campos['0'];
- @$lon = $campos['1'];
- @$zoom = $campos['2'];
-
- if($error_token != 1) {
- $miniatura = "
-
-
- "; }else{ $miniatura ="No se ha definido un token de mapbox
";}
- }
- if($geo[0] !='') { $mapa= "$miniatura ";}else {$mapa='';}
- if ( $fila%2==0){
-
- $linea .= "
-
-
-
-
-
-
-
-
-
$row[nombre]
-
$row[descripcion]
- $mapa
-
-
-
- $contenido
-
-
-
-
-
-
-
-
- ";
-
- }else{
- $linea .= "
-
-
-
-
-
-
-
-
-
-
$row[nombre]
-
$row[descripcion]
- $mapa
-
-
-
- $contenido
-
-
-
-
-
-
-
- ";
- }
-
-
- //$linea .= "$fila $plantilla$row[nombre] ";
- $fila++;
- }
- }
-return $linea;
-}
-
-function buscar_imagen($form,$control,$tipo,$empresa) {
- $imagen="";
- if($control !="") { $w_control = "AND form_datos.control ='$control'";}else{$w_control ="";}
- if ($form ==""){
- $consulta = "SELECT form_datos.id_empresa, contenido , campo_nombre , id_campo FROM form_id, form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_id.id = form_datos.form_id
- AND form_datos.id_empresa = '$empresa'
- AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $imagen = mysql_result($sql,0,"contenido");
- }
-if($tipo == "consulta") { return $consulta; }
- return $imagen;
-
- }
-$publico = remplacetas('form_id','id',"$form",'publico',"") ;
-if($publico[0] !="0" ){
-$campo_imagen = buscar_campo_tipo("$form","15");
-$imagen = remplacetas('form_datos','form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ;
-//$imagen = "$imagen[0]";
-return $imagen[0];
-}
-return;
-}
-
-function wait($div){
-$respuesta = new xajaxResponse('utf-8');
-$resultado =" Procesando ... ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-
-function campos_tabla($filtro,$div) {
-
-if($filtro == 'id_empresa') { $w_empresa = " AND id_empresa = '$_SESSION[id_empresa]' ";}
-if($filtro == 'id_especialista') { $w_especialista = " AND id_especialista = '$_SESSION[id]' ";}
-if($filtro == 'llenos') {
-$consulta= " SELECT * , form_campos.id as id FROM form_campos, form_datos WHERE form_campos.id = form_datos.id_campo $w_empresa $w_especialista GROUP BY id_campo ORDER BY campo_area, campo_nombre ";
-}elseif($filtro == 'vacios') {
-$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_datos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-}else{
-$consulta= " SELECT * FROM form_campos WHERE id = id $w_empresa $w_especialista ORDER BY campo_area, campo_nombre ";
-}
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- //$div = "div_tabla_campos";
- $filtros = "
-
-
-
- Seleccione
- Todos
- Mis campos
- Mi empresa
- Vacios
- Llenos
-
-
-
- ";
- if (mysql_num_rows($sql)!='0'){
- while( $row = mysql_fetch_array( $sql ) ) {
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"") ;
- $campo_tipo ="$tipo_nombre[0] ";
- if($_SESSION['id_empresa'] == $row['id_empresa']) {
- $row[campo_nombre]= editar_campo("form_campos","$row[id]","campo_nombre","","","");
- $row[campo_descripcion]= editar_campo("form_campos","$row[id]","campo_descripcion","","","");
- $row[campo_area]= editar_campo("form_campos","$row[id]","campo_area","","","");
- $row[activo]= editar_campo("form_campos","$row[id]","activo","","","");
- $accion = " ";
- $class='success';
- }else {
- $class='';
- $accion ="";
- }
- if($_SESSION['id'] == $row['id_especialista']) {
- $row['id_especialista'] = " $row[id_especialista]";
- }
-
- $lineas .= "$row[id] $row[campo_nombre] $row[campo_descripcion] $campo_tipo $row[campo_area] $row[activo] $row[id_empresa] $row[id_especialista] $mio $accion ";
- }
- $tabla = "
-
-
- id Nombre Descripcion Tipo
- $lineas
-
-
- ";
- }
- if($div !=""){
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$tabla");
- return $respuesta;
- }
- else{
- $resultado = "$filtros $tabla";
- return $resultado;
-}
-}
-$xajax->registerFunction("campos_tabla");
-
-function remplacetas_noid($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysql_query($consulta,$link);
-if (@mysql_num_rows($sql)!=0){
-$resultado[] = mysql_result($sql,0,$por);
-$resultado[] = mysql_result($sql,0,"$campo");
-$resultado[] = $consulta;
-$resultado[] = mysql_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-
-
-function contar_visitas($id,$tipo) {
-$id_visitas = remplacetas('form_parametrizacion','campo',$id,'id'," tabla='form_id' AND opcion='$tipo'") ;
-$visitas = remplacetas('form_parametrizacion','id',$id_visitas[0],'descripcion',"") ;
-$cantidad = $visitas[0]+1;
-if($visitas[0] =="") {
- $consulta = "INSERT INTO form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'";
- }
-else {
- $consulta = "UPDATE form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'
- WHERE id ='$id_visitas[0]' LIMIT 1";
-}
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-
-return $cantidad;
-}
-
-
-function geocoder($valor,$campo){
-$respuesta = new xajaxResponse('utf-8');
-if(strlen($valor) > 3) {
-$valor = urlencode($valor);
-$json = "https://nominatim.openstreetmap.org/search.php?format=json&limit=5&addressdetails=1&q=$valor";
-$data = file_get_contents("$json");
-$geocoder = json_decode($data, true);
-if($data ==="[]") {$vacio="
-
- No se encontraron resultados
-";}
-
-foreach ($geocoder as $clave => $valor) {
- $ciudad = $valor['address']['city'];
- $municipio = $valor['address']['town'];
- $pais = $valor['address']['country'];
- $departamento = $valor['address']['state'];
- $licencia= $valor['licence'];
- $link = "$_SESSION[url]mapero.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo";
- $linea .= "
-
-
- $valor[display_name]
-
- $ciudad $municipio $pais $departamento
-
-
-
- ";
-//foreach ($valor as $clave => $valor) { $linea .= "CLAVE : $clave > VALOR: $valor"; }
-}
-$resultado = "
-
- $vacio $licencia
-
";
-}
- //$div_contenido = "$div
";
- //$respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("muestra_geocoder","innerHTML","$resultado");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("geocoder");
-
-
-function mostrar_psi(){
-$respuesta = new xajaxResponse('utf-8');
-include("psi.php");
- //$div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_psi");
-
-function multiempresa_crear($tabla,$formulario,$div) {
-$formulario = limpiar_caracteres($formulario);
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '".mysql_real_escape_string($v)."',";
- }
- $valores = "$valores id_responsable = '$_SESSION[id]'";
-
-$respuesta = new xajaxResponse('utf-8');
-
- $insertar = "INSERT INTO $tabla set $valores";
- $sql=mysql_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
-
-
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("multiempresa_crear");
-
-
-function multiempresa($tabla,$div){
- if($_SESSION['id'] == 1) {
- if($div =="") {
- $div="contenido";
- $resultado =" Configuración multiempresa ";
- return $resultado;
- }
-$link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$consulta = "SELECT * FROM empresa ";
-$sql=mysql_query($consulta,$link);
-
-$resultado="
-$name
-Id Nombre Sigla Email Web Dirección Teléfono
- " ;
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
-$razon_social= editar_campo("empresa",$row['id'],"razon_social","","","");
-$sigla= editar_campo("empresa",$row['id'],"sigla","","","");
-$email= editar_campo("empresa",$row['id'],"email","","","");
-$web= editar_campo("empresa",$row['id'],"web","","","");
-$direccion= editar_campo("empresa",$row['id'],"direccion","","","");
-$telefono= editar_campo("empresa",$row['id'],"telefono","","","");
-$estado= editar_campo("empresa",$row['id'],"estado","","","");
-
-if($row[id] !=1) {$acciones = " Estado: $estado";}
-$resultado .= "$row[id] $razon_social $sigla $email $web $direccion $telefono $acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-Agregar empresa
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa");
-
-
-
-
-
-
-function contar_valores_formulario($campo,$key,$valor){
-$consulta = "SELECT distinct($campo) as cantidad FROM form_datos WHERE $key LIKE '$valor' ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = mysql_num_rows($sql);
-//$resultado = mysql_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-function listar_campos_formulario($id_form,$tipo){
-$consulta = "SELECT distinct(id_campo),campo_nombre FROM form_datos,form_campos WHERE form_id = '$id_form' AND form_datos.id_campo = form_campos.id ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-while( $row = mysql_fetch_array( $sql ) ) {
- if($tipo=="nombres"){
-$resultado[] = "$row[campo_nombre]";}
- elseif($tipo=="select"){
- $option .= "$row[campo_nombre] ";
- }
- else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row[id_campo];
-}
-}
-if($tipo=="select"){
-$resultado = "
-
- Campo
- $option
- ";
-
-}
-//$resultado = mysql_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-//($formulario,$div,$registros,$pagina,$formato)
-function consultar_formulario($form,$registros,$pagina,$tipo){
-$respuesta = new xajaxResponse('utf-8');
-//if(is_array($form)) {$id_form = $form['id_form'];}else { $id_form = $form;}
-$id_empresa = $_SESSION[id_empresa];
-if(is_array($form)) {
- $fecha_inicio = $form["inicio"];
- if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
- $fin = $formulario["fin"];
- if( $fin !="") { $fechas = " AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') AND UNIX_TIMESTAMP('$fin 23:59:59')";}
- $id_form = $form['id_form'];
- $id_campo = $form['id_campo'];
- $busqueda = $form['busqueda'];
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$form[busqueda]%%'";}else{$busca ='';}
-if($id_campo !=''){$campo ="AND id_campo = '$id_campo'";}else{$campo ='';}
-}else{
-$id_form = $form;
-}
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' AND form_datos.id_empresa = '$id_empresa' $busca $campo $fechas GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql_total=mysql_query($consulta_principal,$link);
-$total_registros = mysql_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- if($tipo == "csv" ) {$consulta_limite = "$consulta_principal";}
- else{$consulta_limite = $consulta_principal.$limite;}
- $sql=mysql_query($consulta_limite,$link);
-
-//$sql=mysql_query($consulta_principal,$link);
-if (mysql_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-$fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $campos = listar_campos_formulario($id_form,"select");
- $peticion = "
-
-
-
-
-
-
-
-
- ";
-/////// FILTRO
-
-$boton_borrar = "
-
-
-
- ";
-
- if($formato!='csv'){
- $boton_exportar = " Exportar ";}
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- $pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
-
- $paginacion = "";
-
-
-
-
- $encabezado = "
- ";
-
- $total_registros = mysql_num_rows($sql);
- $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- $listado_nombres = "Identificador $listado_nombres ";
-$listado_campos = listar_campos_formulario("$id_form");
-
-while( $row = mysql_fetch_array( $sql ) ) {
-//$cantidad_campos = contar_valores_formulario("id_campo","control","$row[control]");
-
-$listado_campos = listar_campos_formulario("$id_form");
-
-foreach($listado_campos as $campo=>$valor){
- $contenido = remplacetas('form_datos','control',$row[control],'contenido',"id_campo ='$valor' ") ;
-$listado_campos .= "$contenido[0] ";
-
- }
- if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
- $menu ="
-
-
-
- ";
-$lineas .= " $menu$row[control] $listado_campos ";
-
- }
-
-$tabla ="
-
- $listado_nombres
-
- $lineas
-
-
";
-$resultado = "
-$encabezado
-
-
-
-$tabla
-
-
-";
- }
-else {
-$resultado ="
No hay resultados $consulta_limite";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-if($tipo =="csv") {
-$html = str_get_html($tabla);
- // header('Content-type: application/ms-excel');
- // header('Content-Disposition: attachment; filename=sample.csv');
- $nombre_archivo ="tmp/Prueba_Formulario_".mktime()."_".$_SESSION['id'].".csv";
- //$fp = fopen("php://output", "w");
- $fp=fopen($nombre_archivo , "w");
- foreach($html->find('tr') as $element)
- {
- $td = array();
- foreach( $element->find('th') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- if (!empty($td)) {
- fputcsv($fp, $td);
- }
-
- $td = array();
- foreach( $element->find('td') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- fputcsv($fp, $td);
- }
-
- fclose($fp);
-$boton_descarga ="Descargar ";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = " $datos
";
- $div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- if($tipo =="modal") {
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-}
- return $respuesta;
-
-}
-$xajax->registerFunction("consultar_formulario");
-
-
-function datos_array($identificador) {
-
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$consulta ="SELECT * FROM form_datos WHERE control = '$identificador'
-GROUP BY id_campo ORDER BY timestamp DESC ";
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
-$array = array();
-$array[identificador] = "$identificador";
-while($row = mysql_fetch_array( $sql ))
- {
- $contenido = remplacetas('form_datos','id',$row[id],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id],'id_campo',"") ;
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- //$array[id_campo] = $row[id_campo];
- $array[$nombre_campo[0]] = "$contenido[0]";
- $array['timestamp'] = "$row[timestamp]";
- $array['proceso'] = "$row[proceso]";
- $array['id'] = "$row[id]";
- $array['orden'] = "$row[orden]";
- //$array[] = $row;
-
-
- }
- return $array;
-}
-
-function parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div){
- $respuesta = new xajaxResponse('utf-8');
-
-
- $link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = '".mysql_real_escape_string($tabla)."' AND campo ='".mysql_real_escape_string($campo)."' AND opcion ='".mysql_real_escape_string($opcion)."' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = '".mysql_real_escape_string($tabla)."' , campo ='".mysql_real_escape_string($campo)."', opcion ='".mysql_real_escape_string($opcion)."', descripcion ='".mysql_real_escape_string($descripcion)."', visible='1' ";
-$sql=mysql_query($consulta,$link);
-if($sql) {
- $resultado = "$descripcion";
- $respuesta->addAssign("$div","innerHTML",$resultado);
-
- }else {
-$respuesta->addAlert("$consulta");
-}
-//$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("parametrizacion_linea");
-
-function email_contenido($id,$control,$id_campo,$email_envio){
-
-if($email_envio =="") {
- $email = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$id' AND id_campo ='$id_campo' ") ;
- $formulario =
-
- "
- ";
-return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
-
- $validar = validar_email($email_envio);
- if($validar == '0') {
- $respuesta->addAssign("input_email_envio","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('email_envio').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
-
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $propietario[0]" . "\r\n";
-$impresion = formulario_imprimir("$id","$control","email");
-
-$impresion ="
-$encabezado
-$impresion
";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en http://$_SERVER[HTTP_HOST]/milfs?id=$id&c=$control
-Saludos de MILFS
-";
- if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="Se envió un email a $email_envio "; }else {$exito .="error enviando correo";}
-
-$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("email_contenido");
-
-
-function mapa_ficha($id) {
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa') ;
- $id_empresa = $id_empresa[0];
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $imagen = " ";
- $datos ="$nombre[0] $descripcion[0] ";
- $empresa = "$razon_social[0] |
$web[0] | $direccion[0] | $email[0]
";
-
- //$prueba = json_decode($prueba);
-
- $resultado ="
-
-
-
-
- $imagen
-
-
-
$nombre[0]
- $descripcion[0]
-
-
-
-
$razon_social[0]
-
MILFS
-
-
-
- ";
- return $resultado;
-}
-
-function formulario_parametrizacion($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($accion =='categorias') {
-
- }
- elseif($accion =='grabar'){
-
- }
- else {
- $listado ="
-
-
-
-
-
-
Parametrización
-
Parametrización del formulario $nombre[0]. Por favor seleccione una opción
-
-
-
-
- ";
- $respuesta->addAssign($div,"innerHTML",$listado);
- return $respuesta;
- }
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "Filtro
-
- Todos ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= " ";
- }
-else{$resultado = 'nada';}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_parametrizacion");
-
-
-
-function lista_categorias($perfil,$categoria,$tipo) {
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
- $categoria_campo = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- if($categoria_campo >0 ) {
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$categoria_campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "";
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $icono = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$row[md5_contenido]'") ;
- if($icono[0] =='') {
- $icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- $contenido= substr($row[contenido],0, $length = 15);
-$resultado .= "
$contenido ";
- }
-$resultado .= "
";
- }
-else{$resultado = '';}
-}
-return $resultado;
-}
-
-function parametrizacion_categoria($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-$categorias = lista_categorias($perfil,$categoria,$tipo);
-if($accion =='categorias') {
- $resultado = "
-
- La categorización se usa para filtrar los datos de un formulario en categorias que pueden ser usadas por ejemplo para diferenciar los datos en un mapa.
- Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza
- $categorias
-
-
-
-
- Icono para la categoría
-
-
- URL
-
-
-
-
- Grabar
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- $respuesta -> addScript("xajax_formulario_campos_select('$perfil','parametrizacion')");
- return $respuesta;
- }
- elseif($accion =='grabar'){
- if($form[tipo] =='categoria') {
- $url_icon = "$form[icon]";
- $es_imagen = es_imagen("$url_icon");
- $altura = GetImageSize($url_icon);
- $altura= $altura[1];
- if($form[id_campo] =='') { $error = "Seleccione un campo";}
- elseif($form[campo_filtro] =='') { $error = "Seleccione Filtro";}
- elseif(!$es_imagen ) { $error = " [ $url_icon ] no es una imagen válida para el ícono";}
- elseif($altura > 500 ) { $error = " El ícono no debe tener mas de 300 pixeles de alto.";}
- elseif($form[icon] =='') {
- $error = "Escriba la dirección del ícono";
- }
- else {$error='';}
- if( $error !='') {
- $respuesta -> addAlert("$error $revisar_url ");
- return $respuesta;
- }else{
- $categoria_icono[tabla] = "form_id";
- $categoria_icono[campo] = "$form[perfil]";
- $categoria_icono[opcion] = "$form[tipo]:icon:$form[campo_filtro]";
- $categoria_icono[descripcion] = "$url_icon";
- $categoria_icono[visible] = "1";
- $categoria_icono[accion] = "grabar";
- $grabar_icono = parametrizacion($categoria_icono);
-
- $categoria_campo[tabla] = "form_id";
- $categoria_campo[campo] = "$form[perfil]";
- $categoria_campo[opcion] = "$form[tipo]:campo";
- $categoria_campo[descripcion] = "$form[id_campo]";
- $categoria_campo[visible] = "1";
- $categoria_campo[accion] = "grabar";
- $grabar_campo = parametrizacion($categoria_campo);
-
- $categoria_filtro[tabla] = "form_id";
- $categoria_filtro[campo] = "$form[perfil]";
- $categoria_filtro[opcion] = "$form[tipo]:filtro:$form[id_campo]";
- $categoria_filtro[descripcion] = "$form[campo_filtro]";
- $categoria_filtro[visible] = "1";
- $categoria_filtro[accion] = "grabar";
- $grabar_filtro = parametrizacion($categoria_filtro);
-
-
- $resultado =" $form[campo_filtro] $form[id_campo] ($altura ) [$grabar_icono]";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-
- }/// fin de parametrizacion categorias
- }
-}
-$xajax->registerFunction("parametrizacion_categoria");
-
-
-function parametrizacion_plantilla_campos($formulario){
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-while( $row = mysql_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen =" "; $identificador=" ";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= " $imagen $row[campo_nombre] [$row[id_campo]] ";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-
-";
-}
-return $resultado;
-}
-
-
-function parametrizacion_plantilla($formulario,$div,$valores) {
- $respuesta = new xajaxResponse('utf-8');
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$link=Conectarse();
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-mysql_query("SET NAMES 'utf8'");
-if($valores =="boton") {
-$consulta ="SELECT * FROM form_parametrizacion WHERE campo = '$formulario' AND `opcion` REGEXP '^plantilla:' ORDER BY opcion";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $campos_opcion = explode(":",$row[opcion]);
- $plantilla_nombre = $campos_opcion[1];
-$listado .= "$row[opcion] ";
-$li .= "
- $plantilla_nombre
-
-
-
- ";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-
-
-
-";
-$lista ="
-
-Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas HTML5 , CSS3 y clases de Bootstrap
-
-
- Nombre
- Editar
- Ver
-
-$li
-
-Nueva plantilla
-";
- $respuesta->addAssign("$div","innerHTML","$lista");
- return $respuesta;
-
-}
-else {
-
-$resultado ="
-
-
-
Aún no se han definido plantillas para este formulario
- Crear una plantilla
-
-
-";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-
-elseif($valores =="formulario" OR is_numeric($valores)) {
- $campos = parametrizacion_plantilla_campos("$formulario");
- $descripcion = remplacetas('form_parametrizacion','id',$valores,'descripcion',"") ;
- $opcion = remplacetas('form_parametrizacion','id',$valores,'opcion',"") ;
- $campos_opcion = explode(":",$opcion[0]);
- $plantilla_nombre = $campos_opcion[1];
- include("includes/bootsrap_class_list.php");
-$resultado ="
-
-
-
-
-
-
-
- A
A
')); \">
-
-
A
-
A
-
div
-
H1
-
H2
-
H3
-
-
<li>
-
-
MB
-
-
-
-
-
- $descripcion[0]
-
-
- $campos
-
-
-
-
-";
-
-}
-
-elseif(is_array($valores)) {
- $texto=str_replace('"',"'",$valores[text_contenedor]);
-$plantilla = htmlentities($texto);
-if($valores[nombre_plantilla] == "") {
- $respuesta->addAlert("No ha especificado un nombre para la plantilla");
- $respuesta->addAssign("input_nombre_plantilla","className","input-group has-error");
- return $respuesta;
- }
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='plantilla:$valores[nombre_plantilla]' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='plantilla:$valores[nombre_plantilla]', descripcion =\"$plantilla\", visible='1' ";
-$sql=mysql_query($consulta,$link);
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-$datos = contenido_mostrar("$formulario","$ultimo[1]",'',"$valores[nombre_plantilla]");
-$preview = " $valores[nombre_plantilla] $datos ";
- $div_contenido = "$preview
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- $respuesta->addAssign("titulo_modal","innerHTML","$resultado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- return $respuesta;
-
-}
-else{
-$resultado ="";
-}
-$resultado .= "";
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla");
-
-
-function parametrizacion_titulo($formulario,$div,$valores) {
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if($valores =="") {
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "$row[campo_nombre] [$row[id_campo]] ";
-}
-$resultado = "
-
- El campo titulo, se usa como indice del formulario en algunas visualizaciones como el timeline
- Campo de Título actual $campo_titulo_nombre[0] [$campo_titulo[0]]
-
-
- Cambiar campo título
-
-
- $listado
-
-
-
-";
-}
-}else {
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='titulo' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='titulo', descripcion ='$valores', visible='1' ";
-$sql=mysql_query($consulta,$link);
-if($sql){
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$resultado ="addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_titulo");
-
-
-function mostrar_modal($form,$control,$plantilla){
-$respuesta = new xajaxResponse('utf-8');
-if( $control == "") {
- $datos = formulario_areas($form,"");
-}else {
-$datos = contenido_mostrar("$form","$control",'',"$plantilla");
-}
-$div ="contenido_de_modal";
-
-$resultado = "
-
- $datos
-
-
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_modal");
-
-function portal_filtro_cadena($formulario,$id_campo,$control,$div,$plantilla){
-$cadena = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$formulario' AND id_campo ='$id_campo' ") ;
-$consulta ="SELECT * FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' AND contenido = '$cadena[0]'
- GROUP BY control ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-
- $datos = contenido_mostrar("$formulario","$row[control]",'',"$plantilla");
- if($plantilla == "") {
-$listado .= "
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-
- $listado
-
-";
-}
-
-if ($div ==""){$div="mostrar_contenido";}
-else {$div = "$div";}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("portal_filtro_cadena");
-
-
-
-function portal_filtro_campos($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $formulario_nombre[0] / $campo_nombre[0]
- {json}
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_filtro_campos_select($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $campo_nombre[0]
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_listado_campos($formulario){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_contenido_campos.orden";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[campo_nombre] ";
-}
-$resultado = "
-
-
- $formulario_nombre[0]
- {json}
- $listado
-
-
-";
-}
-return $resultado;
-}
-
-
-function portal_listado_formularios(){
-
-$consulta ="SELECT * FROM form_id WHERE publico = '1'";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[nombre] ";
-}
-$resultado = "
-
- Set de datos
-
- ";
-}
-return $resultado;
-}
-
-
-function insertar_linea($tabla,$key,$campo,$valor,$control,$orden,$div){
- $respuesta = new xajaxResponse('utf-8');
- $key = limpiar_caracteres($key);
- $valor = limpiar_caracteres($valor);
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
-if($tabla =="form_datos") {
-$consulta = "INSERT INTO form_datos ( orden, timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( '$orden',UNIX_TIMESTAMP(),'$_SESSION[id]','$_SESSION[id_empresa]','$key',$ip ,'$control', '$campo' , '$valor')
- ";
-
-}
-
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
-
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_linea");
-
-
-function select_combo($id,$tabla,$campo_valor,$campo_descripcion,$tipo){
-
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$Campo_descripcion = ucwords($campo_descripcion);
-$Campo_valor = ucwords($campo_valor);
-$nombre=$tabla."_".$campo_valor;
-$div=$nombre."_hijo";
-$combo = $id."_".$tabla;
-if($tipo!=''){
-$respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE $campo_valor = '$tipo' AND id_empresa = '$id_empresa'";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado .= "
$Campo_descripcion
-
";
-$resultado .= " Seleccione $Campo_descripcion ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[$campo_valor] $row[$campo_descripcion] ";
- }
-$resultado .= " ";
- }
-
-
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;}
-ELSE{ /// si no especifica $tipo
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE id_empresa = '$id_empresa' GROUP BY $campo_valor ";
-$sql=mysql_query($consulta,$link);
-///$Documento=mysql_result($grupo,0,"documento_numero");
-$resultado = "
$Campo_valor
-
";
- $resultado .= " Seleccione $Campo_valor ";
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "$row[$campo_valor] ";
- }
- }
-$resultado .= "
";
- }/// FIN de $tipo no especifico
-
-return $resultado;
-}
-$xajax->registerFunction("select_combo");
-
-
-
-function crear_session ($form,$control) {
-
-$consulta = " SELECT distinct(id_campo),contenido FROM form_datos WHERE control = '$control' AND form_id = '$form' order by timestamp DESC ";
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!=0){
- $resultado ="
";
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $id_form = $row[form_id];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre = strtolower( str_replace(' ','_',$campo_nombre[0]));
- $_SESSION[$nombre] = $row[contenido];
- $resultado .= "$_SESSION[$nombre] ";
- }
- $resultado .= " ";
- }
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla){
- $resultado="";
- if($form != "") {$id_form = "$form";}else {$id_form ="";}
-/*$consulta = " SELECT distinct(form_id) FROM form_datos WHERE control = '$control' ";
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!=0){
- $session = crear_session ('16',$control);
- $resultado ="$session
";
- mysql_data_seek($sql, 0);
- //while( $row = mysql_fetch_array( $sql ) ) {
- $id_form = $row[form_id];*/
- $impresion = formulario_imprimir("$id_form","$control","$plantilla");
- if($impresion !="") {
- $visitas= contar_visitas($control,'identificador') ;
- $visitas= "
$visitas";
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
- $resultado .= "$visitas
$nombre[0] $descripcion[0] $impresion
";
- // }
-$resultado = "
$resultado
";
- }else{
-$resultado ="
No hay resultados ";
- }
-
- // }
-return $resultado ;
-}
-
-function buscar_campo_nombre($form_id,$nombre) {
-
-$consulta ="SELECT form_campos.id FROM `form_campos` , form_contenido_campos WHERE `campo_nombre` = '$nombre' AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='$form_id' LIMIT 1";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- $id_campo=mysql_result($sql,0,"id");
-return $id_campo;
-}
-
-function conversorSegundosHoras($tiempo_en_segundos) {
- $horas = floor($tiempo_en_segundos / 3600);
- $minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
- $segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
-
- return $horas . ':' . $minutos . ":" . $segundos;
-}
-
-function mensajes($tipo,$campos_form,$datos,$control) {
- $campo_remitente = $campos_form['remitente'];
- $campo_destinatario = $campos_form['destinatario'];
- $campo_asunto = $campos_form['asunto'];
- $campo_mensaje = $campos_form['mensaje'];
- $form_id = $campos_form['formulario_id'];
- $form_usuarios = $campos_form['formulario_usuarios'];
- $campo_usuarios = $campos_form['campo_usuario'];
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='formulario') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
-
-//$campos = formulario_areas($form_id,'campos');
-$control_original = $control;
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
- $respuesta->addAssign("div_mensaje_$control_original","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo =='responder') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
- $remitente = buscar_campo_nombre("$form_id","Para");
- $destinatario = buscar_campo_nombre("$form_id","De");
- $mensaje = buscar_campo_nombre("$form_id","Mensaje");
- $asunto = buscar_campo_nombre("$form_id","Asunto");
-
- $asunto_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$asunto' AND control='$control'") ;
- $mensaje_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$mensaje' AND control='$control'") ;
- $remitente_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$remitente' AND control='$control'") ;
- $destinatario_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$destinatario' AND control='$control'") ;
-
-$formulario ="
-
-
-
-
-
-
-
-
- Asunto
-
-
-
- Mensaje
- $mensaje_value[0]
-
- ";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
-";
- $respuesta->addAssign("div_mensaje_$control","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo=="recuperar") {
-
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
-
- $consulta ="SELECT *, FROM_UNIXTIME(timestamp) as fecha , DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d') as dia, DATE_FORMAT(FROM_UNIXTIME(timestamp),'%H:%i') as hora FROM form_datos WHERE form_id ='$form_id' AND id_campo = '$campo_destinatario' AND contenido ='$_SESSION[usuario_milfs]' GROUP BY control, timestamp order by timestamp DESC ";
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-
- $mensajes = mysql_query($consulta,$link);
-// $destinatario ="$campo_destinatario"."[0]";
-// $para = buscador_campo("$campo_destinatario","$form_id","","$destinatario","","");
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
-
-
-
-$lista ="
-
-
-
-";
-while( $row = mysql_fetch_array( $mensajes ) ) {
- $asunto = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_asunto' AND control='$row[control]'") ;
- $mensaje = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_mensaje' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_remitente' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_usuarios",'contenido'," id_campo = '$campo_usuarios' AND control='$remitente[0]'") ;
- if($remitente[0] =='') {$remitente[0]="
Sistema";}
- $hoy=date('Y-m-d');
- $control = $row[control];
- if($hoy == $row[dia]){$momento = $row[hora];}else {$momento=$row[dia];}
-//function contenido_mostrar($id,$control,$div,$plantilla)
-//$contenido = contenido_mostrar("$form_id","$control","",'');
- $lista .="
-
- ";
-}
- // $respuesta->addAssign("div_mensaje","innerHTML",$lista);
- $lista .=" ";
- return $lista;
-
-}
-
-$resultado ="hola";
-
- $respuesta->addAssign("div_mensaje","innerHTML",$resultado);
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("mensajes");
-
-function revisar_campo_unico($id,$campo,$id_form,$valor) {
- $respuesta = new xajaxResponse('utf-8');
- $div= "div_$id";
- $existe = remplacetas('form_datos','form_id',"$id_form",'control'," BINARY contenido = '$valor' AND id_campo = '$campo'") ;
- if($existe[0] != "") {
- $texto ="El valor ya existe";
-$respuesta->addAssign("$div","className","text-danger");
-$respuesta->addAssign("input_$id","className","form-group has-error");
- }else{
- $texto ="";
-$respuesta->addAssign("$div","className","text-success");
-$respuesta->addAssign("input_$id","className","form-group has-success");
- }
-
- $respuesta->addAssign("$div","innerHTML",$texto);
- return $respuesta;
-}
-$xajax->registerFunction("revisar_campo_unico");
-
-
-
-function milfs_session($form_id,$campo_usuario,$campo_password,$tipo,$datos){
- $datos = mysql_seguridad($datos);
- $respuesta = new xajaxResponse('utf-8');
-
-if($tipo =="") {
-
-
-
-if($_SESSION[usuario_milfs]) {
- $formulario = "
SALIR";
-}else {
-$formulario ="
-$accion
-
-
-
-";
-
-
-}
-return $formulario;
-}
-elseif($tipo =='salir') {
- session_destroy();
- $respuesta->addScript("javascript:location.reload(true);");
-
-}
-elseif($tipo=='registrarse') {
- $modificable = remplacetas('form_id','id',$id,'modificable') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $formulario = "
Función no disponible, por favor comuníquese con el administrador
";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
- }
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-
-Registrarse
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-$boton
-
-
-";
-
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
- if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-
Usuario
-
-
-
Código de recuperación Deja este campo vacío si aun no tienes el código de recuperación
-
-
-";
-$boton ="
-
Solicitar clave
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-
-$boton
-
-
-
-";
- }else{
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- if($usuario[0] !="") {
- $password = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_password' ") ;
- if($datos[codigo] !="") {
- if( $datos[codigo] =="$password[0]" ){
- $control = remplacetas('form_datos','control',"$usuario[0]",'control'," id_campo = '$campo_password' ") ;
- $campos ="
-
-
-
-
-
-
-
- ";
-
- $formulario ="$campos";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
-
- }else {
- $respuesta->addAlert("El código no es correcto, por favor rectifíquelo o solicítelo nuevamente dejando el campo VACIO");
- return $respuesta;
- }
- }
- $campo_email = buscar_campo_tipo("$form_id","12");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $formulario="$usuario[0] $password[0] // $campo_email[0] $email[0]";
- $email_empresa = remplacetas('empresa','id','1','email','') ;
- $sigla = remplacetas('empresa','id','1','sigla','') ;
- $razon_social = remplacetas('empresa','id','1','razon_social','') ;
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] <$email_empresa[0]>\r\n";
- $headers .= "Reply-To: $email_empresa[0]\r\n";
- $headers .= "Return-path: $email_empresa[0]\r\n";
- $asunto= "[ $sigla[0] ] Código para recuperar contraseña ";
- $cuerpo ="
-
Hola $datos[usuario]
- El código para recuperar tu contraseña es:
-
$password[0]
- Regresa pronto :-)
-
- ";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="
Te hemos enviado un correo a $email[0] con el código de recuperación "; }
- else {$formulario ="
Error enviando correo ";}
-
- }else{
-
- $formulario="
No pudimos encontrar tu usuario $datos[usuario] . Por favor rectifícalo y prueba nuevamente ";
- }
-
-
- }
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='confirmar_recuperar') {
-
- if($datos[password] != $datos[confirmar_password]) {
- $respuesta->addAlert("Los valores no son iguales");
- return $respuesta;
-
- }
- $link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-
-
-
-
- $consulta="UPDATE form_datos SET contenido = MD5('$datos[password]')
- WHERE control ='$datos[control]'
- AND contenido ='$datos[codigo]'
- AND form_id ='$form_id'
- AND id_campo = '$campo_password' ";
-
- if (mysql_query($consulta,$link)){
-$resultado ="
Se cambió el password Por favor ingrese con sus nuevos datos
aquí ";
-$respuesta->addAssign("login_div","innerHTML",$resultado);
-return $respuesta;
- };
-
-
-
-}
-
-elseif ($tipo=='ingreso'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $password = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = MD5('$datos[password]') AND id_campo = '$campo_password'") ;
-
-if ( $usuario[0] != "" AND $usuario[0] === $password[0]) {
-$respuesta->addAssign("login_milfs","className"," has-success ");
-$resultado ="$usuario[0] // $password[0] ";
-$_SESSION[usuario_milfs] = $usuario[0];
-$_SESSION[nombre_usuario_milfs] = $datos['usuario'];
-$respuesta->addScript("javascript:location.reload(true);");
-}else {$resultado ="
Error Los datos no son correctos :( ";
-$respuesta->addAssign("login_milfs","className"," has-error ");
-}
-
-$respuesta->addAssign("resultado","innerHTML",$resultado);
-//$respuesta->addAlert("resultado");
-
-
-}
-elseif ($tipo=='nuevo'){
-
-$usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-
-$campos_consulta_obligatorio="
- SELECT id_campo, obligatorio
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
- AND obligatorio='1'
- ";
-
-
- $campos_obligados= mysql_query($campos_consulta_obligatorio,$link);
-
-while( $row = mysql_fetch_array( $campos_obligados ) ) {
-$campo_valor=$datos[$row[id_campo]][0];
-
-if($row[obligatorio]=='1'){
- $obligatorios .= "$row[id_campo]";
-if($campo_valor == '' && $row[obligatorio]=='1'){
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
-$error = "Revise campos obligatorios $campo_nombre[0]";
-
- }else {$error ="";}
-if($error !=''){
-$respuesta->addAlert($error);
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
- return $respuesta; }
- }
-
-
- }/// fin de registros obligatorios
-
-
-
- $campos_consulta="
- SELECT id_campo, obligatorio, id_empresa
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
-
- ";
- $campos= mysql_query($campos_consulta,$link);
-$ip = obtener_ip();
-$control = $datos['control'];
-while( $row = mysql_fetch_array( $campos ) ) {
-$campo_valor=$datos[$row['id_campo']][0];
-$campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
-/// Si el campo es password (18) se guarda su equivalente en md5
-if($campo_tipo[0] =="18") {
- $campo_valor = MD5("$campo_valor");
-}
-if($campo_tipo[0] =="19") {
-$existe = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$campo_valor' AND id_campo = '$row[id_campo]'") ;
-if($existe[0] !='') {
-$respuesta->addAlert("Revise los campos únicos !");
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
-
-
- return $respuesta;
-}else{
-//$respuesta->addAlert("$existe[2]"); return $respuesta;
-}
-}
-
- if ($campo_valor !=''){
-
-$insertar_consulta = "
- INSERT INTO `form_datos`
- SET
- id_campo = '$row[id_campo]',
- contenido = '$campo_valor',
- control ='$control',
- timestamp = UNIX_TIMESTAMP(),
- form_id = '$form_id',
- ip = '$ip',
- id_empresa = '$row[id_empresa]'
- ";
-
-
- }else{
-
-
- }
-
-if ($error ==''){
-$sql_consulta=mysql_query($insertar_consulta,$link);
-if($sql_consulta){
-$login = milfs_session("$form_id","$campo_usuario","$campo_password","","");
-$resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-
-
- }else{$resultado.= "
La consulta no se grabó
";}
-}else { }
-
- }
- $resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-$respuesta->addAssign("login_div","innerHTML",$resultado);
-return $respuesta;
-
-
-}
-
-else{}
-return $respuesta;
-
-}
-$xajax->registerFunction("milfs_session");
-
-
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='') {
-$resultado="
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form contenido like '%%$valor%%' group by control LIMIT 200 ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-$fila=1;
-$divider=3;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
- /* $contenido = htmlentities($row[contenido]);
- $p = stripos($contenido, $valor);
- $s1 = substr($contenido, 0, $p);
- $s2 = substr($contenido, $p, strlen($valor));
- $s3 = substr($contenido, ($p + strlen($valor)));
- $r = $s1."
$s2 ".$s3;
- */
- $datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
$datos
";
-
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor $encontrados ";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql_total=mysql_query($consulta_total,$link);
-$total = mysql_num_rows($sql_total);
-$sql=mysql_query($consulta,$link);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = $descripcion[0];
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion";
-
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysql_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
$buscador
-
-
-
- $contenido
-
- Mostrar mas resultados
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-
-function insertar_registro($tabla,$formulario,$div,$principal) {
- //$valores ="$formulario[0]";
- $formulario = limpiar_caracteres($formulario);
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
-
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- $ultimo_id = mysql_insert_id();
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $valores = limpiar_caracteres("$valores");
- $grupo = editar_campo("$tabla",$ultimo_id,"$principal","","","");
- $respuesta->addAssign($div,"innerHTML","
$formulario[$principal] ");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- //$respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_registro");
-
-
-
-function formulario_area_campos($perfil,$area) {
- $control_edit ="";
- $solo_campos ="";
- $muestra_form ="";
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} $campos= "";
-
-$consulta = "
- SELECT * FROM form_campos , form_contenido_campos
- WHERE form_contenido_campos.id_form = '$perfil'
- AND form_contenido_campos.id_campo = form_campos.id
- AND campo_area='$area'
- ORDER BY form_contenido_campos.orden";
-
- $link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-
-
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- if( $row['obligatorio'] == '1'){$obligatorio="*";}else {$obligatorio='X';}
-
- if($row['campo_tipo'] =="24") { $row['multiple'] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos .= formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }else{
- $campos .= formulario_campos_render($row['id_campo'],$perfil,$control_edit,'','');
- }
- $muestra_form .= "$campos $obligatorio ";
- $solo_campos .= "$campos $obligatorio ";
-
- }
-
-
-}
-
-
-$resultado = "$muestra_form";
- return $campos;
-
-}
-
-function formulario_areas($perfil,$tipo,$respuesta){
- $id="";
- $resultado_campos ="";
- $subir_imagen ="";
- $campo_imagen_nombre ="";
- if(func_get_arg(2)=='respuesta'){$control =func_get_arg(3);}else{
-$control = md5(rand(1,99999999).microtime());
-}
- $respuesta = new xajaxResponse('utf-8');
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- /*$consulta = "SELECT * FROM form_areas, form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
- AND form_areas.id = form_campos.campo_area AND form_areas.id_empresa = '$id_empresa'
- OR (form_contenido_campos.id_form = '$perfil' AND form_campos.campo_area ='0' )
- AND form_areas.estado = '1' GROUP BY form_areas.id ORDER BY form_areas.orden";
- */
- $consulta= "SELECT * FROM form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
-
- GROUP BY form_campos.campo_area
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- //$campo_titulo = remplacetas('parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
- $descripcion = remplacetas('form_id','id',$perfil,'descripcion','') ;
- $formulario_respuesta = remplacetas('form_id','id',$perfil,'formulario_respuesta','') ;
- $empresa = remplacetas('form_id','id',$perfil,'id_empresa','') ;
- $empresa = $empresa[0];
-
- $nombre= strtoupper($nombre[0]);
- $descripcion= $descripcion[0];
- $respuesta= $formulario_respuesta[0];
-
-
-//// encabezado form
-
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- //$descripcion=mysql_result($sql,0,"descripcion");
- //$nombre=mysql_result($sql,0,"nombre");
- //$empresa=mysql_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$empresa",'encabezado');
- $pie = empresa_datos("$empresa",'pie');
- $cabecera = "
-
-
-
-
-
-
-
$nombre$descripcion
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($perfil,"15");
-if($campo_imagen[0] !="") {
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen_nombre = ucwords($campo_imagen_nombre);
-$campo_imagen = $campo_imagen[0];
- }
-
-if ($campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$perfil","$campo_imagen"."[0]");
-if($tipo != "campos") {
- $imagen = "
-
- ";
-
- }else {$imagen =" ";}
- }
-
- $muestra_form = "
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
-
-////fin encabezado form
-
-
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row['campo_area']=="0"){$area_nombre ="";}
- else{
- $area_nombre = remplacetas('form_areas','id',$row['campo_area'],'nombre','') ;
- $area_nombre = $area_nombre[0];
- }
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- //$producto = remplacetas('farmacia_cum','id',$row[id_producto],'fabricante_importador') ;
- ///// para pasar el parametro de medicamentos al formulario no pos se adiciona ".func_get_arg(2)."
- $campos = formulario_area_campos($perfil,$row['campo_area']);
-$resultado_campos .= "$area_nombre
-$campos
- ";
- }
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos
-
- ";
-
-//// fin botonera form
-
- }
-
-//// cierre form
-
-$muestra_form .="
-
-
-
";
-if($tipo=='campos') {
-
- $resultado = "$resultado_campos $imagen ";
- return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-
-";
-return $resultado;
-
-/// fin cierre form
- // $resultado .= "$consulta";
-//$respuesta->addAssign($div,"style.display","block");
-//$respuesta->addAssign($div,"innerHTML",$resultado);
-//return $respuesta;
- //print $muestra_form;
-// return $muestra_form;
- }
-
- $xajax->registerFunction("formulario_areas");
-
-
-
-function tabla_areas($tabla,$value,$descripcion,$onchange,$where,$nombre,$div){
-
- if($div =="") {
- $div="div_campos";
- $resultado = "
-
Modificar areas
- ";
- return $resultado;
- }
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$campo3 = $campos[2];
-$campo4 = $campos[3];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="group by $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT * FROM $tabla WHERE 1 $w AND id_empresa='$_SESSION[id_empresa]' $group ORDER BY orden ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-
-$resultado="
-$name
-Id $campo1 $campo2 $campo3 $campo4
- " ;
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
-$editar_campo1= editar_campo("$tabla",$row['id'],"$campo1","","","");
-$editar_campo2= editar_campo("$tabla",$row['id'],"$campo2","","","");
-$editar_campo3= editar_campo("$tabla",$row['id'],"$campo3","","","");
-$editar_campo4= editar_campo("$tabla",$row['id'],"$campo4","","","");
-$eliminar = " ";
-$resultado .= "$row[$value] $editar_campo1 $editar_campo2 $editar_campo3 $editar_campo4 $eliminar ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-
-
-
-
-Agregar área
-
-
-
-
-
-
-
-
-
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("tabla_areas");
-
-
-
-
-function importar_coleccion($form){
-$div ="confirmar_importacion";
-//$archivos = listado_archivos("$form[path]");
-//$archivos = listar_archivos("$form[path]",'cantidad','',$form);
-
- $directorio = opendir("$form[path]"); //ruta actual
-$resultado = " ";
-while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
-{
- if (is_dir($archivo))//verificamos si es o no un directorio
- {
- // $resultado .= "[".$archivo . "]
"; //de ser un directorio lo envolvemos entre corchetes
- }
- else
- {$autor="";
- $ext = explode(".", $archivo);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {
- $cantidad_imagenes++ ;
-
- $exif = leer_exif("$form[path]/$archivo");
- //$name = $exif['exif']['FileName']." ".$form['38']['0']."*" ;
- $form['0']['0'] = "$archivo";
- $autor= $exif['exif']['Artist'];
- $creator = $form['40'][0];
- if($autor !="" ) { $remplazo = array('40' => array("$autor")); }else{ $remplazo; }
-
- }
- //$form = array_replace_recursive($form, $reemplazo);
- $resultado .= $archivo ." / $name ".$form['0'][0]."
";
- }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= "( $c : $V )
";
- if($V != '') {
- }
- }
-}
-}
-*/
-//$resultado="$archivos $campo";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("importar_coleccion");
-
-
-
-
-function listar_archivos( $path ,$opcion, $div,$datos){
- // Abrimos la carpeta que nos pasan como parámetro
-
- $resultado ="";
- //$link = Conectarse();
- $dir = opendir($path);
- $cantidad =0;
- $cantidad_imagenes =0;
-//$datos['61'] = array ( 0 => "otro valor");//"OTRO VALOR";
- if(is_file($path)) {$esarchivo="Escriba la ruta a un directorio en el servidor
"; }
- // Leo todos los ficheros de la carpeta
- //if($esarchivo =="") {
- // $elemento = readdir($dir);
- //}
- while ($elemento = readdir($dir) ){
-
- // Tratamos los elementos . y .. que tienen todas las carpetas
- if( $elemento != "." && $elemento != ".."){
- // Si es una carpeta
- if( is_dir($path.$elemento) ){
- // Muestro la carpeta
- // $resultado .= "
CARPETA: ". $elemento ."
";
- // Si es un fichero
- } else {
- $ext = explode(".", $elemento);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {$cantidad_imagenes++ ;
-
- $exif = leer_exif("$path/$elemento");
- $name = $exif['exif']['FileName'];
- $title= "$name ";
- $date= $exif['exif']['DateTimeOriginal'];
- $autor= $exif['exif']['Artist'];
- if(!isset($autor)) { $autor = $datos['40'][0]; }
- $licencia= $exif['exif']['Copyright'];
- if($licencia ==="") { }
- else{
-// $datos['61'][0]= " XX $licencia XXX";
- }
-
-
- //$datos['61'][0] = $licencia;
- if(isset($exif['exif']['UndefinedTag:0xC4A5'])) {
- $exif['exif']['UndefinedTag:0xC4A5']= base64_encode($exif['exif']['UndefinedTag:0xC4A5']);
- }
- if(isset($exif['exif']['MakerNote'])) {
- $exif['exif']['MakerNote']= base64_encode($exif['exif']['MakerNote']);
- }
- if ( $exif['lon'] =="" )
- {
- $geo = $datos['58'][0];
- $mundo ="";
- $datos['58'][0] = $datos['58'][0];
-
- }
- else {
- $geo = "$exif[lon] $exif[lat] 18" ;//$datos['58'][0];
- $mundo ="
";
- $datos['58'][0]= "$geo";
-
-
- }
-
- // $remplazos = array('40');
- // else { $mapa="";}
- //$json = json_encode($exif['exif'],JSON_PRETTY_PRINT);
- //if ( $exif['lon'] =="" ){$datos['58'][0] = $geo;}else {$datos['58'][0] = $datos['58'][0];}
- $resultado .= "
$geo $mundo / ".$datos['58'][0]." ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]." ";
-
- }
-
- $cantidad ++;
-
- $campo .= "";
-
-
- }
- }
-
- }
-
-
- if($div !="" ) {
- if($opcion == "cantidad") {
- $resultado = "
-
- $esarchivo $cantidad archivos, $cantidad_imagenes imágenes jpg, $mapa georeferenciadas
-
-
";
- }
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }else {
-
-
-
- return " $campo $resultado"; }
-}
-$xajax->registerFunction("listar_archivos");
-
-
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( "$file" );
- $resultado['exif'] = $exif;
- $resultado['file']= $file;
- $resultado['FileName']=$exif['FileName'];
-
-if($exif === false) {
-//return false;
-}
-
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado['lat'] = $gps_latitude;
- $resultado['lon'] = $gps_longitude;
-
- //$resultado = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
- }else{}
-
-}
-
-
- $resultado['DateTime'] = $exif['DateTimeOriginal'];
- $resultado['estado'] = "oK";
-
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-
-function relacion_render($form_id,$id_campo,$valor,$cantidad){
-
-
-
-
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-$link = "
Ver referencia ";
-}
-
- return " $valor_actual $link";
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_render");
-
-function buscador_base($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_base_$name";
-$onchange = " xajax_buscador_select_base('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select_base('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_base");
-
-
-function buscador_select_base($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_base_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $tabla = explode(':',$claves[0]) ;
- $tabla = $tabla[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion1 = explode(':',$claves[2]) ;
- $descripcion1 = $descripcion1[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $descripcion3 = explode(':',$claves[4]) ;
- $descripcion3 = $descripcion3[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT * FROM $tabla WHERE $descripcion1 like '$valor%%' GROUP BY $key limit 50 ";
-
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-//$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-//$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select_base");
-
-
-
-function buscador_campo($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_$name";
-$onchange = " xajax_buscador_select('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_campo");
-
-
-function imprimir_buscador_campo($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function imprimir_base($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $campo1 = remplacetas("$formulario","$key","$valor","$descripcion","");
- $campo2 = remplacetas("$formulario","$key","$valor","$descripcion2","");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function buscador_select($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and (id_campo ='$key' OR id_campo ='$descripcion' )AND contenido like '$valor%%' GROUP BY control limit 50 ";
-
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $campo_key[0] $campo_descripcion[0] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select");
-
-
-
-function relacion_select($id_campo,$form_id,$valor,$name,$control,$tipo){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit =="" ) {$limit = 20;}
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_select");
-
-function combo_select($id_campo,$form_id,$valor,$name,$control,$control_combo){
- $selected="";
- $and="";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if($control_combo !="") {
- $div ="combo_$name";
-$and ="AND campo_valor LIKE '$control_combo:%%'";
-}else{
-$onchange ="xajax_combo_select('$id_campo','$valor','$valor','$name','$control',(this.value)) ";
-$div ="combo_$name";
-$name ="primario_$name";
-}
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' $and ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado=" $valor
-Seleccione
- " ;
- // $resultado = array_unique($entrada);
-while( $row = mysql_fetch_array( $sql ) ) {
- $campos = explode(':',$row['campo_valor']);
-
- IF($control_combo ==""){
- $campo_primario[]=$campos[0];
- $campo_primario = array_unique($campo_primario);
- }
- else {
- $campo_primario[] = "$campos[0] $campos[1]";
- }
- //$identificador = $identificador[0];
-//if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-//$resultado .= " $campos[0] ";
- }
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "$V ";
-}
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-if($control_combo =='') {
- return $resultado;
- }
-else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-$xajax->registerFunction("combo_select");
-
-
-function aplicacion_carrusel($nombre,$id,$plantilla){
- if($id =='') {
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- }
- if($nombre =='') {
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre = $nombre[0];
- }
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
- $descripcion = $descripcion[0];
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
- $campo_titulo = $campo_titulo[0];
- $consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
- $link=Conectarse();
- $sql=mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysql_data_seek($sql, 0);
-// $contenido = "
$nombre[0] ";
-// $contenido .= "
$descripcion[0] ";
-
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- if($orden === 0) {$activo = "active";}else{$activo="";}
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $campo = buscar_campo_tipo($id,"15");
- $id_campo = $campo[0];
- $imagen = remplacetas('form_datos','control',$row[control],'contenido',"id_campo = '$id_campo'") ;
- $items .= "
-
-
- $contenido_desplegado
-
-
";
- $indicador .= "
";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- //$contenido .= "$contenido_desplegado ";
- $orden = ($orden +1 );
- }
-$contenido .= "
-
-
-
$nombre[0] $descripcion[0]
-
-
-
- ";
- //$contenido = " $links
";
- }
-
-
-return $contenido;
-}
-
-
-function formulario_embebido($id){
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- $impresion = formulario_areas($id,"embebido",'');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
- ( $visitas )
-
$formulario_nombre[0]$formulario_descripcion[0]
- $impresion
-
-
-
-
-
-
-
";
- return $muestra_form ;
-}
-
-
-function formulario_embebido_campos($id,$opcion){
- $impresion = formulario_modal("$id",$form_respuesta,$control,"$opcion");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $muestra_form = "
-
-
$formulario_nombre[0]
-
$formulario_descripcion[0]
- $impresion
-
-
-
";
- return $muestra_form ;
-}
-
-function json($datos){
-if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND
-form_id.publico = '1' "; $w_publico = "WHERE form_id.publico = '1'
-"; }
-else { $publico = "AND form_id.id_empresa = '$_SESSION[id_empresa]'
-"; $w_publico = "WHERE form_id.id_empresa = '$_SESSION[id_empresa]' ";
-}
-$datos = mysql_seguridad($datos);
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-if($datos[id] !=''){
-if($datos[tipo] =='simple') {
-$campos ="control " ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-GROUP BY form_datos.control
-ORDER BY form_datos.timestamp DESC";
-
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysql_fetch_array( $sql ))
- {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $nuevos_datos = $datos;
- $nuevos_datos[identificador]="$row[control]";
- $nuevos_datos[tipo]="array";
- //$features[$row[control]] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- $features[] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-
-if($tipo == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-return $resultado;
-
-}
-else {
-$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo , contenido ,timestamp, control as identificador ,
-form_datos.orden" ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-ORDER BY form_datos.control ,form_datos.timestamp ";
-}
-
-}
-elseif($datos[identificador] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo ,contenido ,timestamp, control as identificador ,
-form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (control = '$datos[identificador]' )
-$publico
-";
-}
-elseif($datos[dato] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, nombre as formulario,
-campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp,
-control as identificador, form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_datos.id = '$datos[dato]' )
-$publico
-";
-}
-else {
-$consulta = "SELECT id as form_id, nombre as form_nombre, descripcion
-as form_descripcion , creacion , publico AS contenido_publico ,
-modificable AS formulario_publico
-FROM form_id $w_publico";
-}
-
-
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysql_fetch_array( $sql ))
- {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $features[] = "$nombre_campo[0] : $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-if($datos[tipo] == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-
-return $resultado;
-}
-
-
-
-
-function imprime_geojson($id,$id2,$plantilla){
- $id_form = mysql_seguridad($id);
- $id_form2 = mysql_seguridad($id2);
- $campo = buscar_campo_tipo($id_form,"14");
- $campo2 = buscar_campo_tipo($id_form2,"14");
- $id_campo = $campo[0];
- $id_campo2 = $campo2[0];
- if($id_form2 !=""){$w_id2 =" OR form_id = '$id_form2'"; $or_2 ="or id_campo = '$id_campo2'";}
-
-$link=Conectarse();
-
- $consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data
-FROM `form_datos`
-WHERE (form_id = '$id_form' $w_id2 )
-AND ( id_campo ='$id_campo' $or_2 )
-group by control
-ORDER BY orden desc";
-//return $consulta;
-
- mysql_query("SET NAMES 'UTF8'");
- $sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
- $id = 1;
- $features = array();
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $marcador = array();
- $propiedades = array();
- $identificador = explode(',',$row[data]);
- $identificador = $identificador[0];
- $campos = explode(" ",$identificador);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- $formulario = formulario_imprimir($row[id],$row[control],"$plantilla");
-
- $marcador["type"] = "Point";
- $marcador["coordinates"] = array($lat,$lon);
- $propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
- //$propiedades[description] ="HOLA MUNDO";
- $propiedades[description] ="
$formulario
";
- $propiedades[sounds] ="";
- $propiedades[url] ='';
- $propiedades[icon][iconSize] =[60,60];
- //$propiedades[icon][shadowSize] =[70,70];
- //$propiedades[icon][shadowUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
-
- //$propiedades[title] ='Hola mundo';
- if($propiedades[icon][iconUrl] =="") {
- $propiedades[icon][iconUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }
- $geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)."},";
- $features[] = $marcador;
-
- $id++;
- }
-
-}
-//-75.58295 6.25578 16
-
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
- \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
- \"type\": \"FeatureCollection\",
- \"features\": [$geometria ]}";
-return $geometria;
-}
-
-
-function aplicacion_presentacion($id,$div,$timeout){
- if($timeout < '1000') {$timeout =5000;};
- $respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT * FROM form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$control = mysql_result($sql,0,control);
-$impresion = formulario_imprimir("$id","$control","");
-
- }
-$siguiente = "
SIGUIENTE ";
-if($div ==''){
- $presentacion = "
$siguiente $impresion
";
- }else{
- //$respuesta->addAlert("$consulta");
- $respuesta->addScript("setTimeout(function(){xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout')},$timeout)");
- $respuesta->addAssign("$div","innerHTML","$siguiente $impresion");
- return $respuesta;
- }
-return " $presentacion";
-
-
-}
-$xajax->registerFunction("aplicacion_presentacion");
-
-function aplicaciones_listado($id_form,$tipo,$div){
-
-// if($id_empresa !=''){ $_empresa = " ";}
- //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";}
- if($id_form !="") {$w_form = " AND id = '$id_form'";}
- $w_publico =" publico ='1'";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE $w_publico $w_form ORDER BY orden asc ";
-mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado_li .= "
";
- }else {$resultado_li = "";}
-
-if($tipo =='li') { return $resultado_li.$resultado;}
-elseif($tipo =='nav') { return $resultado_nav;}
-elseif($tipo =='grid') {
-if($div !="") {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado_grid");
- return $respuesta;
- }else{
- return $resultado_grid;
- }
-}
-elseif($tipo =='banner') { return $resultado_banner;}
-elseif($tipo =='carrusel') { return $resultado_carrusel;}
-else {return $resultado;}
-}
-$xajax->registerFunction("aplicaciones_listado");
-
-
-function contenido_aplicacion($id,$plantilla){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
- $control = mysql_result($sql,0,"control");
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysql_data_seek($sql, 0);
-
- //$contenido = "
$nombre[0] ";
- $contenido = "
$descripcion[0] ";
-
- $orden = 0;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- //return "$row[form_id] $row[control] $plantilla";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado
";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- if($id[0] =="") {$aviso = "
No se ha definido una aplicación con el nombre $nombre ";
- return $aviso;}
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
-
- mysql_data_seek($sql, 0);
- $contenido = " ";
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado ";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-
-
-function contenido_parallax($id){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- $contenido = "";
- mysql_data_seek($sql, 0);
-
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
- //$orden = $orden+500;
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'','contenido');
-
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $nav_li .="
-
- ";
- $style .=" a[id= '$row[control]']:target ~ #main_$id article.article
- {
- -webkit-transform: translateY(-$orden"."px);
- transform: translateY( -$orden"."px );
- } ";
- $links .= "
";
- $contenido .= "
-
- $contenido_desplegado
-
- ";
- $orden = $orden +800;
- }
- $contenido = "
-
-
- $links
-
-
-
-
- ";
- }
-
-//return " $contenido";
- $respuesta->addAssign("$div","innerHTML","$contenido");
- return $respuesta;
-
-}
-$xajax->registerFunction("contenido_parallax");
-
-function contenido_timeline($id){
-$div = "contenedor";
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- //$contenido = "
-
- $subir_imagen
-
-
- ";
-
- $respuesta->addAssign($div,"innerHTML",$resultado);
-
-}
-
-return $respuesta;
-}
-$xajax->registerFunction("configuracion");
-
-
-function cambiar_imagen($imagen,$tabla,$id) {
- $respuesta = new xajaxResponse('utf-8');
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "UPDATE $tabla SET `imagen` = '".$imagen."' WHERE `id` = '$id';";
- $sql_consulta=mysql_query($consulta,$link);
- if($sql_consulta) {
-if($tabla =='empresa') {
- $respuesta->addAssign("banner","style.backgroundImage","url('images/secure/?file=600/$imagen')");
- $respuesta->addAssign("formUpload","innerHTML","");
-}
-
- //$respuesta->addAlert("$consulta");
-return $respuesta;
-}
-}
-$xajax->registerFunction("cambiar_imagen");
-
-
-
-
-function limpiar_caracteres($valor){
-$b=array("{","}","]","[",";","¡","!","¿","?","'",'"' );
-$c=array(" "," "," "," "," "," "," "," ","'"," ");
-$resultado=str_replace($b,$c,$valor);
-return $resultado ;
-}
-
-function actualizar_campo($tabla,$key,$campo,$valor,$accion,$div) {
- $valor = limpiar_caracteres($valor);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' $accion limit 1; ";
- $sql=mysql_query($edit,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $respuesta->addAssign($div,"innerHTML",$valor);
- }
- return $respuesta;
-}
-$xajax->registerFunction("actualizar_campo");
-
-
-function eliminar_campo($tabla,$key,$div) {
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $borrar = "DELETE FROM $tabla WHERE id = '$key' limit 1";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($borrar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $respuesta->addAssign($div,"innerHTML","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("eliminar_campo");
-
-
-function insertar_campo($tabla,$formulario,$div) {
- //$valores ="$formulario[0]";
- $nombre = $formulario['nombre'];
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-// $respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_campo");
-
-function insertar_campo_area($tabla,$formulario,$div) {
- //$valores ="$formulario[0]";
- $nombre = $formulario['nombre'];
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- $respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_campo_area");
-
-
-function editar_campo($tabla,$key,$campo,$valor,$accion,$div,$indice){
- if ( !isset ( $_SESSION['id'] ) ) { return;}
- if($indice =="") {$id = "id";}
- else {$id = "$indice";}
- ////NO SE PUEDE EDITAR EL CAMPO (id )
-
-//
-if(@$div=='') {$div = "div_$tabla".$campo;}
-else {$div = $div;}
- $respuesta = new xajaxResponse('utf-8');
- $valor = limpiar_caracteres($valor);
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $consulta = "SELECT $id , $campo AS valor FROM $tabla WHERE $id = '$key' LIMIT 1";
- $sql_consulta=mysql_query($consulta,$link);
- $Valor = mysql_result($sql_consulta,0,"valor");
-
-
-if(@$accion == 'cerrar') {
- $campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
-$respuesta->addAssign($div,"innerHTML",$campo);
-return $respuesta;
- }
-elseif($accion=="input") {
- $size= strlen($Valor);
- $placeholder = strtoupper(limpiar_caracteres($campo));
- $rrn = $div;
-if($size < 40) {
-
- $resultado = "
-
- ";
- }else {
- $resultado = "
-
- ";
- }
- }
-elseif($accion== "grabar"){
-
- $edit = "UPDATE $tabla SET $campo = '$valor' WHERE $id = '$key' limit 1; ";
- $sql=mysql_query($edit,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
- $campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
- $respuesta->addAssign($div,"innerHTML",$campo);
- return $respuesta;
-
-
- }
-
-else{
- if (mysql_num_rows($sql_consulta)!='0'){
- $valor=mysql_result($sql_consulta,0,"valor");
-
- /////// campos que no se muestran ///
-if($campo == 'id' OR $campo == 'id_usuario' OR $campo == 'id_grupo') {
-return ;
-}
-
- /////////// campos que se muestran para edicion //////////////
- $title = strtoupper(limpiar_caracteres($campo));
- $div= rand(123,999);
- if($valor =="") {$aviso="
$title ";}else{$aviso ="";}
-$campo ="
-
-
-
- ";
- }
- else {$campo = "";}
-
- return $campo;
-}
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
-}
-
-$xajax->registerFunction("editar_campo");
-
-
-function formulario_imprimir($id,$control,$tipo) {
-$resultado ="";
-$limit ="";
-if(is_numeric($tipo)) { $limit = "limit $tipo "; $class= "alert alert-info";}
-//if($control != "") { $w_control = "AND control = '$control' ";}
- $id = mysql_seguridad($id);
- $control = mysql_seguridad($control);
- if($id =="") {
- $id_seguridad = remplacetas('form_datos','control',$control,'form_id','') ;
- $publico = remplacetas('form_id','id',$id_seguridad[0],'publico','') ;
- }else{
- $publico = remplacetas('form_id','id',$id,'publico','') ;
- }
-
- if($publico[0] != "1" and (!isset ( $_SESSION['id']) )) {
- $resultado ="
Acceso restringido Esta aplicación contiene datos privados ( $_SESSION[id] )";
- return $resultado;
-
- }
-
- //if($id !='') {$w_id = "AND form_id = '$id'";}else {$w_id='';}
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos , form_datos
- WHERE form_contenido_campos.id_campo = form_datos.id_campo
- AND form_datos.control = '$control'
- AND form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
- $control = mysql_seguridad($control);
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysql_result($sql,0,"form_id");}
-
-
-
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
-
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
-
- while( $row = mysql_fetch_array( $sql ) ) {
- @$multiple =$row['multiple'];
- $campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $contenido_array = $contenido;
- // $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control");
- $md5_contenido = $contenido[4];
- $contenido_original = $contenido[3];
- $contenido = $contenido[3];
-
-
-
-
- if($campo_tipo =='15' AND $tipo==""){if($contenido !=""){
- $contenido = "
-
Mostrar
- "; }else{$contenido="";}}
- elseif($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- include("includes/datos.php");
- $error_token ="";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; }}
- if($error_token != 1) {
- $contenido = "
-
-
- "; }else{ $contenido ="
No se ha definido un token de mapbox
";}
- }
- }
- elseif($campo_tipo=='4'){ $contenido = "
$contenido ";}
- elseif($campo_tipo=='18'){ $contenido = "";}
- elseif($campo_tipo=='23'){
- $funcion = remplacetas("form_campos_valores","id_form_campo","$row[id_campo]","campo_valor","");
- eval("\$contenido = ".$funcion[0].";");
- $contenido .= "";
-
- }
- elseif($campo_tipo=='6'){
- $contenido = imprimir_buscador_campo($row['id_campo'],$contenido);
- }
- elseif($campo_tipo=='21'){
- $contenido = imprimir_base($row['id_campo'],$contenido);
- }
- elseif($campo_tipo=='10'){
- $valor_actual = relacion_render("$id","$row[id_campo]",$contenido,'5');
- $contenido = "$valor_actual";}
- elseif($campo_tipo=='5' AND $contenido !=""){
- if($tipo =="") {
- $contenido = trim($contenido); $contenido = "
-
-
-
- ";
- }else {
- $contenido =$contenido;
- }
- }
-
- else {
- $html ="$contenido";
- $contenido = nl2br($html);
- $contenido = Markdown($contenido);
- }
- $campo_nombre = remplacetas('form_campos','id',$row['id_campo'],'campo_nombre','');
- $nombre[$row['id_campo']] = $campo_nombre[0] ;
-////buscar campo imagen
-$campo_imagen = buscar_campo_tipo($id,"15");
-//$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-////
- if($row['id_campo'] == $campo_imagen AND $tipo !="" ){ $contenido = strip_tags($contenido); }
- $campo[$row['id_campo']]=$contenido;
- $campo_400[$row['id_campo']] = substr($contenido,0, $length = 400)."... ";//$contenido;
- $campo_80[$row['id_campo']] = substr($contenido,0, $length = 80);//$contenido;
- $campo_55[$row['id_campo']] = substr($contenido,0, $length = 55);//$contenido;
- $campo_limpio[$row['id_campo']] = $contenido = strip_tags($contenido);
-
- $campo["md5_".$row['id_campo']]=$md5_contenido;
-
- if($row['id_campo'] == $categoria_campo){
-
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- if($icono[0] =='') {
- //$icon = "http://$_SERVER[HTTP_HOST]/milfs/images/pin.png";
- $icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- //$array[icon][iconSize] =[50,50];
-
- }else{}
-
-if($contenido_original !="") {
- //// si el campo es tipo password (18) no se muestra
- if($campo_tipo !='18'){
- if($tipo == "metadatos"){
- $metadatos = " ".date('Y-m-d H:i:s',$contenido_array[1])." id $contenido_array[0] proceso $contenido_array[5] usuario $contenido_array[6] ip ".long2ip($contenido_array[7])." campo $row[id_campo] ";
- }else {$metadatos='';}
- $resultado .= "
-
-
- $campo_nombre[0] $metadatos
- $contenido
- ";
-}
-}
- }
-
- //$resultado .="
";
-//}else {$resultado ="
No se encontraron resultados "; return $resultado;}
-//if($id=="6" OR $id=="10") {
- $plantilla="";
- $class="";
- if($tipo !="" AND (!is_numeric($tipo)) AND $tipo !="metadatos" ) {
-////Usa una plantilla apra cada id
-
-$plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
-$plantilla = $plantilla[0];
-if($plantilla =="") {
-///Usa una plantilla generica por nombre
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = ''") ;
-$plantilla = $plantilla[0];
-//$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = '$id' ") ;
-}
-if($plantilla !='') { $plantilla = html_entity_decode ( $plantilla );}
-/*else {
-$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"") ;
-$plantilla= $plantilla[0];
- }
- */
- }
-if($plantilla != ""){
-eval("\$plantilla = \"$plantilla \";");
- $full =" $plantilla ";
- }else {
- $full= "
$resultado
";
- }
-
- $resultado =" $full
- ";
- return $resultado;
-
-// }else {$resultado ="
No se encontraron resultados "; return $resultado;}
- }else {$resultado =""; return $resultado;}
-}
-
-function formulario_respuesta($id,$control) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $consulta = "SELECT * FROM form_id
- WHERE formulario_respuesta = '$id'
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado ="
-
Responder con:
-
";
- while( $row = mysql_fetch_array( $sql ) ) {
- $resultado .= "$row[nombre] ";
-
-}
- $resultado .="
";
-}else{$resultado ="";}
-return $resultado;
-}
-
-function subir_imagen($respuesta,$id){
-$resultado ="";
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//this.form.taget= 'ventana'; this.form.action = 'destinoEspecial.html'; this.form.submit()"
-$javascript="$_SESSION[url]/includes/upload.php";
-$campo_mapa = buscar_campo_tipo($respuesta,"14");
-$campo_mapa = $campo_mapa[0];
-if ($id ==''){$id='imagen';}
-$size = ($_SESSION['upload_size']*1024*1024)." bytes";
-$resultado .="
-
-
-
-
-
-
-La imagen debe estar en formato .jpg y de tamaño máximo $_SESSION[upload_size] MB ( $size)
-
-";
-return $resultado;
-
-}
-
-function formulario_importador($accion) {
-
- if($accion =='') {
- $resultado="
Importador";
-
- return $resultado;
- }
- $respuesta = new xajaxResponse('utf-8');
- $formulariox =formulario_importar('','menu','');
- $resultado="$formulariox
";
- $respuesta->addAssign("contenido","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("formulario_importador");
-
-
-function subir_archivo($perfil){
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-$javascript="includes/upload_archivo.php";
-$resultado .="
-
-
-Archivo formulario $perfil:
-
-Máximo 1MB
-
- ";
-
-
-return $resultado;
-
-}
-
-
-function formularios_muestra_listado($formulario){
-
- if($formulario==''){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ";
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado .="
";
- $resultado .= "Seleccionar formulario a importar ";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= " $row[nombre] ";
- }
-
- $resultado .=" ";
- }else {$resultado = "";}
-
- return $resultado;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $subir = subir_archivo($formulario) ;
- $div="importador_select";
- $resultado .= "$subir";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-$respuesta->addAssign("importador_archivo","innerHTML","");
-
-
-
-return $respuesta;
-}
-}
-$xajax->registerFunction("formularios_muestra_listado");
-
-
-function formulario_importar($filename,$accion,$perfil){
- $respuesta = new xajaxResponse('utf-8');
- // $respuesta->addAlert("$filename,$accion,$perfil ");
- // return $respuesta;
-
- if($filename ===""){
-
-
- $formulario .= formularios_muestra_listado();
-
- $formulario .= "
-
";
-
-return $formulario;
- }
-
- $div = "importador_archivo";
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-
- $resultado .= "Importando formulario
$perfil_nombre ($perfil)
-
";
- $nombre = "tmp/$filename";
- if($accion == "grabar") {
-
- }
- if (($handle = fopen($nombre, 'r')) !== FALSE)
- {
-
-while (($datos = fgetcsv($handle,0,"|")) !== FALSE) {
- $numero = count($datos);
-if($fila >=1) {
-
- $resultado .= "";
- $numero_columna = 0;
- for ($c=0; $c < $numero; $c++) {
- $columna = $datos[$c];
-
-
-if($columna !=""){
-
- if($accion === "grabar"){
-$control=md5($perfil.$fila.time());
-$ip = obtener_ip();
- $graba_ip = " ip = INET_ATON('".$ip."') ";
-$consulta_campos = "INSERT INTO form_datos SET timestamp= '".time()."', id_usuario='$_SESSION[id]',id_empresa='$_SESSION[id_empresa]',form_id ='$perfil',
-$graba_ip ,
-control = '$control', $consulta id_campo = '$campo[$numero_columna]' , contenido = '$columna'";
- $verificar_campo = formulario_verificar_campo($perfil,$campo[$numero_columna]);
- if($verificar_campo == NULL){}else{
- $sql = mysql_query($consulta_campos,$link);
- if($sql) {
- $class='success';
- $sql_resultado = " ";
-
-
- }
- else {
- $class='danger';
- }
-
-
- }
-
- }
-
-
-}
- $resultado .= "$columna $sql_resultado ";
-
- $numero_columna ++;
- }
- $resultado .= " ";
- }
- else {
- $resultado .= "";
-
- $posicion = 0;
- for ($c=0; $c < $numero; $c++) {
- $titulo = $datos[$c] ;
- $verificar_campo = formulario_verificar_campo($perfil,$titulo);
- if($verificar_campo == NULL){$verificar_campo =" "; $class='danger';}
- else{$verificar_campo =" "; $class='success';}
- $campo[$posicion] = $datos[$c];
- $resultado .= "$verificar_campo $titulo ";
- $posicion ++;
-
- }
-
-
- $resultado .= " ";
- }
- $fila++;
- }
-
-
- $resultado .= "
$fila ";
- }
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}
-
-$xajax->registerFunction("formulario_importar");
-
-
-function formulario_verificar_campo($perfil,$id_campo){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM `form_contenido_campos` WHERE `id_form` = '$perfil' AND id_campo='$id_campo'";
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
-$existe = NULL;
-
- }else {
-
-$control=mysql_result($sql,0,"control");
-$obligatorio=mysql_result($sql,0,"obligatorio");
-$existe[]= $control;
-$existe[]= $obligatorio;
-$existe[]= $consulta;
-
-}
-
-return $existe;
- }
-
-function borrar_tmp($div) {
-if($div =='') {
- $div="borra_tmp";
-$resultado ="
Limpiar ";
-
-return $resultado ;
-}
-$dir = "tmp/";
-$ficheroseliminados= 0;
-$handle = opendir($dir);
-while ($file = readdir($handle)) {
- if (is_file($dir.$file)) {
- if ( unlink($dir.$file) ){
- $ficheroseliminados++;
- }
- }
-}
-$fecha = time ();
-$ahora = date ( "Y-m-d h:i:s" , $fecha );
-$resultado ="
$ahora
";
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("borrar_tmp");
-
-
-function formulario_imprimir_linea($id,$control,$tipo) {
- $id = mysql_seguridad($id);
- //if($id !='') {$w_id = "AND form_id = '$id'";}
- $control = mysql_seguridad($control);
-/* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC
- ";
- */
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
-
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
-
-
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysql_result($sql,0,"form_id");}
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
-
- $titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo = $titulo[0];
-
-$timestamp=mysql_result($sql,0,"timestamp");
-$fecha = date ( "Y-m-d h:i:s" , $timestamp);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
-// $resultado ="
";
- $imagen = formulario_valor_campo("$id","0","","$control");
- $imagen = $imagen[3];
- if($imagen[3] != null AND $tipo !='titulos') {
- $array[image]=$imagen;
- $imagen_icon="secure/?file=150/$imagen";
- $imagen= " ";
-
- }else {$imagen='';}
-$td .= "$imagen ";
-
- while( $row = mysql_fetch_array( $sql ) ) {
-
- $campo_tipo = remplacetas('form_campos','id',$row[id_campo],'campo_tipo');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control");
- $md5_contenido = $contenido[4];
- //md5(binary contenido) as md5_contenido,
- $contenido_original = $contenido;
- //$control = $contenido[0];
- $contenido = $contenido[3];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $campo_nombre[0] =" $campo_nombre[0]";
- if($tipo=="titulos") {
- $contenido = "$campo_nombre[0] ";
- }
- elseif($tipo=="titulos_csv"){
- $csv .= '"'.$campo_nombre[0].'";';
- }
- elseif($tipo=="linea_csv"){
- $csv .= '"'.$contenido.'";';
- }
- elseif($tipo=="array"){
-
- if($row[id_campo] == $titulo){$array[title]=$contenido;}
- if($row[id_campo] == $categoria_campo){
- $array[category]=$contenido;
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- //$icono[0] = $imagen_icon;
- if($icono[0] =='') {
- //$icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $array[icon][iconUrl] = "$icon";
- //$array[icon][iconSize] ="[50,50]";
- //$array[icon][shadowSize] =[70,70];
- //$array[icon][shadowUrl] = "http://$_SERVER[HTTP_HOST]/milfs/images/iconos/sha.png";
-
- }else{}
- $array[$row[id_campo]] = $contenido;
- }
- else{
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
- if($size > $limite) {
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' AND $tipo==""){if($contenido !=""){$contenido = " "; }else{$contenido="";}}
- if($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- require("includes/datos.php");
- $contenido = "
-
- ";
- } else { $contenido ='';}
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
- else {$contenido = Markdown("$contenido");}
-
- }
-
-
- if($tipo=="titulos") {
-$td .= " $contenido ";
-
- }else{
-
- $td .= " $contenido ";
- }
- }
-
-if($tipo=="titulos") { $identificador ="Identificador "; }else {$identificador ="$control ";}
- $resultado .="$td $identificador ";
-}
- if($tipo =='titulos_csv' or $tipo=='linea_csv') {
-
-return $csv;
- }
- if($tipo =="array") {
- //$array["title"]="hola mundos";
- return $array;
- }
- return $resultado;
-}
-
-
-// $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-function mostrar_coincidencias_plantilla($id_form,$filtro,$valor,$plantilla) {
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-$control=mysql_result($sql,0,"control");
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) )
- {
-$resultado .= contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- }
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias_plantilla");
-
-
-function mostrar_coincidencias($id_form,$filtro,$valor) {
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) )
- {
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $campos .= " $depliegue ";
-
- }
- $resultado = "
";
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias");
-
-
-function matriz_formulario($formulario,$div,$registros,$pagina,$formato){
- $respuesta = new xajaxResponse('utf-8');
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$md5_filtro = $formulario["campo_filtro"];
-//$formulario = mysql_seguridad($formulario);
-mysql_real_escape_string($formulario);
-$perfil = $formulario["form_id_id"];
-$filtro = $formulario["campo_filtro"];
-$control = md5(rand(1,99999999).microtime());
-
-$cantidad = formulario_contar($perfil);
-$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_filtro'";}
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{
- $resultado ="
Por favor seleccione un formulario";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-if($cantidad < 1) {
- $resultado ="
-
- El formulario \"$formulario_nombre[0]\" no tiene registros
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
-}
-
-$fecha_inicio = $formulario["inicio"];
-if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
-$fin = $formulario["fin"];
-$id_campo = $formulario["id_campo"];
-$busqueda = $formulario["busqueda"];
-
-if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";}
-if($id_campo ==''){
- $campo ='';
-
- }else{
- if($busqueda =='') {
- $resultado ="
Por favor escriba una palabra para buscar";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
- $campo ="AND id_campo = '$id_campo'";
-
- }
-
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';}
-
-
-
-$consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
- FROM form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_datos.id_empresa = '$_SESSION[id_empresa]'
- $busca
- $perfil
- $campo
- $w_filtro
- AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio')
- AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden";
-
-
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)==0){
- $resultado ="
No hay resultados para la consulta ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
-if (mysql_num_rows($sql)!=0){
- $total_registros = mysql_num_rows($sql);
- if($formato=='csv'){
- $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv";
- $boton_descarga ="
Descargar ";
- $archivo_reporte=fopen($nombre_archivo , "w");
- $encabezado =";;Periodo\n;;$inicio\n;;$fin \n ";
- fputs ($archivo_reporte,$encabezado);
- $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n";
- fputs ($archivo_reporte,$titulo);
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) )
- {
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv');
- $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv');
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $linea = $linea."\n";
- $lineas .= $linea;
- }
- $contenido ="$titulo \n $lineas";
- //rewind($archivo_reporte);
- fputs ($archivo_reporte,$contenido);
- $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga);
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
- }
- else{
- $respuesta ="
No hay resultados
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
-
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta.$limite;
- $sql=mysql_query($consulta_limite,$link);
- if (mysql_num_rows($sql)!='0'){
- $botones .= "
Limpiar ";
- if($formato!='csv'){
- $botones .= "
- Exportar
- ";
- }
- $paginacion ="";
- $paginacion .= $indice;
- $encabezado = "
-
-
-
$botones $paginacion $total_registros registros
-
-
";
-$fila=0;
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $menu ="
-
-
-
- ";
- $campos .= "
$menu $depliegue ";
- }
- $resultado .="
";
- }else{
- $resultado .="
No hay resultados para la consulta ";
- }
- //$resultado .="$consulta";
-$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado);
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-} $xajax->registerFunction("matriz_formulario");
-
-
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysql_query($consulta,$link);
-if (@mysql_num_rows($sql)!=0){
-$resultado[] = mysql_result($sql,0,$por);
-$resultado[] = mysql_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysql_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-function formulario_campos_select($perfil,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-
- $categoria = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," opcion = 'categoria'") ;
- $categoria = $categoria[0];
-$resultado = "
Campo
-
- Todos los campos ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-if($div =='') {
- if ($row[id_campo] == "$categoria"){
- $class="active";
- $filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
- }else { $class=""; $filtro ='';}
- $listado .="$row[id_campo] $row[campo_nombre] $filtro ";
- }
- }
-$resultado .= "
-
"; }
-else{$resultado = '';}
-
-if($div =='') {return $listado;}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("formulario_campos_select");
-
-
-function formulario_campos_filtro($perfil,$campo,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "
- Filtro
-
- Seleccione ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
";
- }
-else{$resultado = "
No se encontraron resultados
";}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_campos_filtro");
-
-
-//$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo","$id_campo");
-function formulario_consultar($div){
- if($div==''){
- $div = "contenido";
- $resultado = "
Consultas";
- return $resultado;
- }
- $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'",'');
- $fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $peticion = "
-
-
-
-
-
-
-
-
- Formulario
- $formulario
-
-
-
-
-
-
-
-
Consultar
-
-
-";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$peticion);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_consultar");
-
-
-function formulario_campos_procesar($form,$tipo_accion){
- //$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-$campo_nombre = $form["campo_nombre"];
-if($campo_nombre =='') {
-$respuesta->addAlert("El Nombre del campo no puede estar vacío");
-$respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
-return $respuesta;
-}
-
-//$campo_nombre = ucfirst(strtolower($campo_nombre));
-$campo_descripcion = $form["campo_descripcion"];
-$campo_tipo = $form["campo_tipo"];
-$campo_area = $form["campo_area"];
-$misma_area = $form["misma_area"];
-$campo_orden = $form["campo_orden"];
-$campo_identificador = $form["campo_identificador"];
-$activo = $form["activo"];
-$tipo = $form["tipo"];
-$editar = $form["editar"];
-$id_campo_editar = $form["id_campo_editar"];
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-if ($editar == 'editar' AND $tipo_accion =='editar'){
-mysql_query("
- UPDATE `form_campos`
- SET `campo_nombre` = '$campo_nombre',
- `campo_descripcion` = '$campo_descripcion',
- `orden` = '$campo_orden' ,
- `campo_area` = '$campo_area',
- `campo_tipo` = '$campo_tipo',
- `id_empresa` = '$_SESSION[id_empresa]',
- `activo` = '$activo'
- WHERE `form_campos`.`id` ='$id_campo_editar'
- LIMIT 1",$link);
-$w_campo = "id = '$id_campo_editar'";
-
- }else {
-$id_empresa = $_SESSION['id_empresa'];
-$id_especialista = $_SESSION['id'];
- $buscar_campo_nombre = remplacetas('form_campos','campo_nombre',$campo_nombre,'campo_nombre'," id_empresa = '$id_empresa' AND campo_area = '$campo_area' ") ;
- if($buscar_campo_nombre[0] == $campo_nombre) {
- $respuesta->addAlert("El Nombre del campo ( $campo_nombre ) ya existe en la misma área ");
- $respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
- return $respuesta;
- }
-if($campo_identificador == "") { $campo_identificador = md5($_SESSION[id_usuario]."-".microtime()); }
-$consulta = "
- INSERT INTO `form_campos`
- (`id_especialista`, `campo_nombre`,`campo_descripcion`,`campo_tipo`, `campo_area`, `orden`, `activo`, `identificador`, `id_empresa`)
- VALUES ('$id_especialista','$campo_nombre','$campo_descripcion','$campo_tipo','$campo_area','$campo_orden','1','$campo_identificador','$id_empresa')";
- $sql =mysql_query($consulta,$link);
- $ultimo_id = mysql_insert_id();
-$w_campo= "identificador = '$campo_identificador'";
-if($sql) {
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'div_campos')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar');
- $campos_formulario ="
-
-
- El campo se creó con éxito
- Crear un nuevo campo
- Modificar campo $listado_campos
- ";
- if($form['agregar_id_form'] !="") {
- $respuesta->AddScript("xajax_agregar_campos('grabar_campos','contenido','$ultimo_id','$form[agregar_id_form]') ");
- ///$respuesta->addAssign("$div","innerHTML",$resultado);
- //return $respuesta;
- }
- }else {$campos_formulario = "
Problemas al grabar el campo $consulta";}
- }
-
-if($id_campo_editar !='' AND $tipo_accion =='editar'){$id_form_campo = $id_campo_editar;}else {
-//$id_form_campo = mysql_insert_id($link);
-$id_form_campo = $ultimo_id;
-}
-//$respuesta->addAlert("( $campo_tipo / $id_form_campo / $ultimo_id / $form[opciones] ) $consulta");
-//$respuesta->addAssign("contenido","innerHTML","$consulta_campos_valores");
-//return $respuesta;
-if($campo_tipo == '23' ){
-$grabar_campos_valores = "(".$id_form_campo.",'".$form[opciones]."')";
-}
-/// separacion por comas
-else {
-$opciones=str_replace(', ',',',"$form[opciones]");
-$opciones = explode(",",$opciones);
-
-foreach($opciones as $c=>$v){
-
- //if($v !='') {$v = ucfirst(strtolower($v));
- if($v !='') {$v = $v;
-
-$grabar_campos_valores .= "( $id_form_campo ,'$v'),";
- }
-
- }
-$grabar_campos_valores =substr ("$grabar_campos_valores",0,-1);
-} /// fin de separacion por comas
-
-$borrar_campos_valores = "DELETE FROM `form_campos_valores` WHERE `id_form_campo` = '$id_form_campo'";
-$consulta_campos_valores = "INSERT INTO form_campos_valores (id_form_campo,campo_valor) VALUES ".$grabar_campos_valores."";
-
- $sql_borrar_campos_valores =mysql_query($borrar_campos_valores,$link);
- $sql_campos_valores =mysql_query($consulta_campos_valores,$link);
-
- $campos=mysql_query("
- SELECT id_form_campo, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, orden
- FROM `consulta_campos` , `tipo_campo`
- WHERE $w_campo
-
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- LIMIT 1",$link);
-
-
-$campos_formulario .= "
";
-while( $row = mysql_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "
".$row['orden']."";}
-else{
-$campos_formulario .= "
".$row['orden']." ";
- } }
-
-$respuesta->addAssign("formulario_campos_$misma_area","innerHTML",$campos_formulario);
-return $respuesta;
-}$xajax->registerFunction("formulario_campos_procesar");
-
-function formulario_opciones_select($tipo,$id_campo){
- $respuesta = new xajaxResponse('utf-8');
- $div = 'opciones_select';
-if($id_campo !=''){
-$consulta= "SELECT * FROM form_campos_valores WHERE id_form_campo = '$id_campo'";
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-while( $row = mysql_fetch_array( $sql ) ) {
- $valores .= "$row[campo_valor],";
- }
- $valores = substr($valores,0,-1);
- }
- }
-if($tipo =='8'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='9'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='16'){
- if($valores =='') {$valores = "1,10";}
-$resultado = "
$valores ";
- }
-elseif($tipo =='17'){
- $resultado ="
";
-}
-else{
-$resultado = "
$valores ";
-}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_opciones_select");
-
-
-
-function crear_campos_formulario($form,$id_form){
-$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-if($form['div'] !="") { $div = $form['div'];}else{$div="div_campos";}
-
-$especialista = $form["id_especialista"];
-$id_campo_editar = $form["id_campo_editar"];
-$resultado = "
-
-$id_campo_editar";
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$capa = "crear_campos_consulta_$area";
-$formulario ="manejo_campos_$area";
-
-if ($id_campo_editar > 0){
-$sql=mysql_query("SELECT * FROM form_campos WHERE id = '$id_campo_editar' AND activo ='1'",$link);
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .="";
-$campo_descripcion =$row['campo_descripcion'];
-$campo_nombre =$row['campo_nombre'];
-$orden =$row['orden'];
-$especialista =$row['id_especialista'];
-
-$formulario ="manejo_campos_$id_campo_editar";
-$editar="
-
-
-
";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
- }
-
-$Tipo_campo ="
Tipo:
-
";
-$tipos=mysql_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ",$link);
-while( $row = mysql_fetch_array( $tipos ) ) {
-
-if($row['id_tipo_campo'] == $Campo_tipo_definido){
-$Tipo_campo .= " > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-
-
-
- Incluir este campo en el formulario actual
-
-
- ";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION[id_usuario]."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area');
-$resultado .= "
-
-
";
-$resultado = "
-
-
- Crear un nuevo campo
- $resultado
-
-";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("crear_campos_formulario");
-
-function formulario_crear_campo($area,$campo,$div){
-$respuesta = new xajaxResponse('utf-8');
- if($div==''){
- $div = "contenido";
- $cerrar = "
[X] ";
-$resultado = "
Campos ";
-
- return $resultado;
- }
- //$div="div_campos";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta_campos ="SELECT id, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, form_campos.activo, form_campos.campo_tipo
- FROM `form_campos` , `form_tipo_campo`
- WHERE id_empresa = '$_SESSION[id_empresa]' AND id = $campo
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- ORDER BY orden ASC";
- $campos=mysql_query($consulta_campos,$link);
-if($campo ==''){
-
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'$div')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar');
-$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-$tabla_campos = campos_tabla('id_especialista','');
-$campos_formulario = "
-
-
-
-
-
-
-
-
-
-
-
-
-
$tabla_campos
-";
-}else{
-$campos_formulario .= "
";
-while( $row = mysql_fetch_array( $campos ) ) {
-// if($row[campo_tipo] =='8'){
- $respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-// }
- $Tipo_campo ="
Tipo:
-
";
-$tipos=mysql_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ",$link);
-while( $row_tipo = mysql_fetch_array( $tipos ) ) {
-
-if($row_tipo['id_tipo_campo'] == $row[campo_tipo] ){
-$Tipo_campo .= " > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-if($row[activo] =='1'){$activo = "
Activo: el campo puede ser usado en formularios ";}
-else{$activo = "
Inactivo: El campo NO se usará ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-
-
-
-
-
-
-
";
-
- }
- }///fin de edicion
-
-
-
-$respuesta->addAssign($div,"innerHTML",$campos_formulario);
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_crear_campo");
-
-function agregar_campos($tipo,$div,$id,$formulario){
-$respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-if($tipo==''){
- $div="contenido";
-$resultado = " Editar ";
-print $resultado;
-return;
- }
- if($tipo=='consultar_listado'){
- $consulta="SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ASC";
- $sql =mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado .="Formulario: ";
-$resultado .= "Selecciona ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "$row[nombre] ";
- }
-$resultado .=" $cerrar";
- }else {
-$resultado = " No hay formularios para editar
";
- }
- }
-
-if ($tipo=='consultar_campos'){
- $consulta="
- SELECT form_contenido_campos.id_campo, form_contenido_campos.id,
- campo_nombre, obligatorio,control,multiple,form_contenido_campos.orden
- FROM form_contenido_campos, form_campos
- WHERE form_campos.id_empresa = '$_SESSION[id_empresa]' AND form_contenido_campos.id_form = $id
- AND form_contenido_campos.id_campo = form_campos.id
- ORDER BY form_contenido_campos.orden";
- $sql =mysql_query($consulta,$link);
- $consulta_nombre="SELECT * FROM form_id WHERE id ='$id'";
- $sql_nombre =mysql_query($consulta_nombre,$link);
- $nombre =mysql_result($sql_nombre,0,"nombre");
- //if (mysql_num_rows($sql)!='0'){
-$resultado ="$cerrar$nombre
- ";
-$resultado .= "
-
- Campo
-
-
- Obligatorio
-
-
- Orden
-
-
- Multiple
-
-
- Borrar
-
-
-
";
-
-while( $row = mysql_fetch_array( $sql ) ) {
- /* $multiple = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = '$row[id]' AND descripcion REGEXP '^multiple:' ") ;
- $multiple = explode(":",$multiple[0]);
- $multiple = $multiple[1];*/
-
- //$multiple = $multiple[0];
-$resultado .= "
-
- $row[id_campo] $row[campo_nombre]
-
-
-
-
-
-
-
";
- }
-
-$consulta_campos_todos ="SELECT form_campos.id, form_campos.campo_nombre, form_campos.campo_descripcion FROM form_campos WHERE form_campos.id_empresa = '$_SESSION[id_empresa]'
- ORDER BY campo_nombre ";
-$sql_consulta_campo =mysql_query($consulta_campos_todos,$link);
-
-$crear_nuevo ="
-
-
-
-
-
-
-";
- while( $row = mysql_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "$row[campo_nombre] [$row[id]] ";
- }
-$resultado .="
-
-
-
-$crear_nuevo ";
-
- }/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
- if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado=" Seleccione un campo";}
-else {
-$id_form=func_get_arg(3);
-$consulta = "SELECT id_campo FROM form_contenido_campos WHERE id_empresa = '$_SESSION[id_empresa]' AND id_campo= '$id' AND id_form= $id_form";
-$sql_consulta =mysql_query($consulta,$link);
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if(mysql_num_rows($sql_consulta) =='0') {
-$microtime = microtime();
-$consulta_grabar=" INSERT INTO form_contenido_campos (
-`id_campo` ,
-`id_empresa` ,
-`id_form` ,
-`obligatorio`,
-`control`
-)
-VALUES (
-'$id', '$id_empresa', '$id_form', '0', md5('$microtime' + rand())
-)";
-$sql_consulta_grabar =mysql_query($consulta_grabar,$link);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_form')");
-return $respuesta;
- }else{
-$div='atencion';$resultado=" El campo ya pertenece a esta consulta ";
- }
- }
-
- }///fin de grabar_campos
-
-if($tipo=='eliminar'){
-$confirmar=func_get_arg(3);
-
-
-if($id==''){
-$id_c=func_get_arg(4);
-$capa_original=func_get_arg(5);
-$resultado = "
- Seguro que desea eliminar el campo de esta consulta?
- [SI]
- [NO]
-
- ";}
- else{
- if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "
-
- ";
- }else{
-$consulta="DELETE FROM `form_contenido_campos` WHERE `control` = '$confirmar' LIMIT 1";
-$sql_consulta_eliminar = mysql_query($consulta,$link);
-$div=func_get_arg(5);
-$id_consulta=func_get_arg(4);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_consulta')");
-
- }
- }
-
- }/// fin de eliminar
-if($tipo == 'obligatorio'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `obligatorio` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-if($tipo == 'orden'){ /// orden
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `orden` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a =" $id
- ";
-
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-
-if($tipo == 'prellenado'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `consulta_tipo_campos` SET `prellenado` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de oprellenado
-$respuesta->addAssign($div,"style.display","block");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("agregar_campos");
-
-function formulario_nuevo($formulario,$div){
- $formulario = mysql_seguridad($formulario);
- $respuesta = new xajaxResponse('utf-8');
- $id=mysql_real_escape_string($id);
- $id_empresa= $_SESSION['id'];
- if($div==''){
- $div = "contenido";
-
-$resultado .= " Formulario ";
-
- return $resultado;
- }
-if($formulario ==''){
- $formulario_nombre = "nuevo_formulario";
- $formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-
-Crear un formulario
-
- Nombre para el formulario
-
-
-
- Descripción
-
-
-
- Formulario anidado con:
- $formulario_respuesta
-
-
- Grupo:
-
-
-
-
- Privado
-
- Público
-
-
-
-
-
- Grabar
-
-
- ";
-
- }else{
-$control = md5(rand(1,99999999).microtime());
-
-$nombre = $formulario['nombre']; // aa
-$descripcion = $formulario['descripcion']; // dxddc
-$publico = $formulario['publico']; // dxddc
-$grupo = $formulario['grupo'];
-
-if($publico =='') {$publico ='0';}
-$propietario= $_SESSION['id'];
-$formulario_respuesta = $formulario['formulario_respuesta']; // dxddc
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-VALUES ('$nombre', '$descripcion', '1', '1', '$publico', '$propietario','$formulario_respuesta','$_SESSION[id_empresa]');";
-$sql=mysql_query($consulta,$link);
-$ultimo_id = mysql_insert_id();
- if($grupo !="") {
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo'";
- $sql_grupo=mysql_query($consulta_grupo,$link);
- }
-
-$respuesta->addscript("xajax_formulario_listado('','contenido'); ");
-}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_nuevo");
-
-
-function formulario_listado($filtro_grupo,$div){
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} if($div==''){
- $div = "contenido";
- if(isset($_SESSION['grupo_formularios'])) { $sesion_grupo_formularios = $_SESSION['grupo_formularios'];}else { $sesion_grupo_formularios = "";}
-$resultado = " Formularios ";
-
- return $resultado;;
- }
-$control = md5(rand(1,99999999).microtime());
-$respuesta = new xajaxResponse('utf-8');
-$_SESSION['grupo_formularios'] = $filtro_grupo;
-
-$link=Conectarse();
- $id=mysql_real_escape_string('$id');
-mysql_query("SET NAMES 'utf8'");
-if($filtro_grupo =="") {
-$consulta = "SELECT * FROM form_id WHERE id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
- }
-else {
-$consulta = "
-SELECT * FROM form_id, form_grupo
-WHERE form_grupo.id = form_id.id
-AND form_grupo.grupo = '$filtro_grupo'
-AND form_id.id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
-}
-$sql=mysql_query($consulta,$link);
-if($filtro_grupo !="") {
- $leyenda_filtro_grupo ="Grupo $filtro_grupo ";
-
- }else{ $leyenda_filtro_grupo ="Formularios "; unset($_SESSION['grupo_formularios']);}
-$resultado_link = " Formularios ";
-$respuesta->addAssign("link_formulario","innerHTML",$resultado_link);
-
-
-$divider = 1;
-$columnas = intval(12/$divider);
- $listado_grupos = select_empresa('form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","AGRUPADO",'','',"$id_empresa");
- $listado_grupos ="
-
- Seleccione un grupo de formularios
- $listado_grupos
-
-
- ";
-
- $nuevo_formulario = "
- ";
- $resultado = "
-
- $nuevo_formulario
-
-
- $listado_grupos
-
- $leyenda_filtro_grupo
-
- ";
-
-if (mysql_num_rows($sql)!='0' ){
- $i =0;
-
- while( $row = mysql_fetch_array( $sql ) ) {
- $id= $row['id'];
- $C = $id;
-
- $cantidad = formulario_contar($row['id']);
- if($cantidad >0) {$cantidad ="Llenado: $cantidad veces ";}else{$cantidad = "";}
- $propietario = remplacetas('usuarios','id',$row['propietario'],'email',"") ;
- $estado = remplacetas('form_id','id',$id,'publico',"") ;
- $nombre_formulario = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion_formulario = remplacetas('form_id','id',$id,'descripcion',"") ;
- $estado = "
-
- Contenido privado
-
- Público
-
- ";
- $modificable = remplacetas('form_id','id',$id,'modificable',"") ;
- $modificable = "
-
- Formulario privado
-
- Público
-
- ";
-
-
- $primer = formulario_uso("$id",'','primer') ;
- if($primer[0] !='') {$primer = "Primer registro: ".date ( "Y-m-d h:i:s" , $primer[0])." ";}else{$primer='';}
- $ultimo = formulario_uso("$id",'','ultimo') ;
- $ultimo_control = $ultimo[1];
- if($ultimo[0] !='') {$ultimo = "Último registro: ".date ( "Y-m-d h:i:s" , $ultimo[0])." ";}else{$ultimo='';}
-
- $nombre = editar_campo("form_id",$row['id'],"nombre","","","");
- $orden = editar_campo("form_id",$row['id'],"orden","","","");
- $descripcion = editar_campo("form_id",$row['id'],"descripcion","","","");
- $geo = buscar_campo_tipo($id,"14");
- $email_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- $mensaje_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
- if($geo[0] !='') { $mapa= " Mapa ";}else {$mapa='';}
-
- if($i % $divider==0) {
-
-$item .= "
-
-
-
- ";
- }
- $i++;
- $grupo_actual = remplacetas('form_grupo','id',$row['id'],'grupo',"") ;
- if(is_null($grupo_actual[3])) {
- $valores_grupo[id]=$row[id];
- $valores_grupo[grupo]="";
- $grupo = "
-
- ";
- // $grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }else
- {
- $grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }
-
-$item .= "
-
-
-
-
-
-
-
- Creación: $row[creacion] / $propietario[0]
- $cantidad
- $ultimo
- $primer
- $mapa
-
-
-
-
-
$row[id]
-
-
-
-
-
-
-
-
-
-
-
-
Agregar o quitar campos
-
-
-
-
-
-
-
- Nombre: $nombre
- Descripción: $descripcion
- Orden: $orden Grupo: $grupo
-
-
-
Mensaje de respuesta
-
-
$mensaje_envio[0]
-
Soporta CSS3, HTML5 y Bootstrap
-
Grabar y previsualizar
-
-
-
-
-
Previsualización
-
- $mensaje_envio[0]
-
-
-
-
-
-
-
-
-
-
- $estado
-
-
- $modificable
-
-
-
-
-
- ";
-
-
- if($i%$divider==0) {
- $item .= "
";
- }
-
- }
-
-
- //$resultado .="";
- }
-
-
-else{ $resultado .= "
Aún no se han diseñado formularios ";}
-
- $resultado_formulario ="
-
- $item
-
";
- $resultado = "$resultado $resultado_formulario ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_listado");
-
-function formulario_eliminar($id,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre_form = $nombre[0];
- if($tipo =='') {
-$resultado =" ";
-}elseif($tipo=='cancelar') {
- $resultado =" Eliminar ";
-}elseif($tipo =='eliminar'){
-$consulta = "DELETE FROM form_id WHERE form_id.id = '$id' ";
-$link=Conectarse();
- $sql=mysql_query($consulta,$link);
- if($sql) {
- $respuesta->addAlert("Se eliminó el formulario \" $nombre_form \" ");
- $respuesta->addAssign("panel_$id","innerHTML","");
- return $respuesta;
-
- }
-}
-else {}
-$respuesta->addAssign("eliminar_$id","innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_eliminar");
-
-
-function campo_multiple($id_campo,$id_form,$control,$item){
-//if ( !isset ( $_SESSION['id'] ) ) { return;}
-
- if($item==''){$item=1;}
- $id= $item;
-$render = formulario_campos_render($id_campo,$id_form,$control,$item+1);
- $ingredientes = "
-
- $render
-
-
-
-
- ";
- $boton= "
- Agregar campo
-
";
-$div = "id_campo_$id_campo"."_".$id;
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$ingredientes);
-$respuesta->addAssign("boton_".$id_campo."","innerHTML","$boton ");
-return $respuesta;
-
-}
-$xajax->registerFunction("campo_multiple");
-
-
-function formulario_campos_render($id_campo,$id_form,$control,$item,$id_dato){
-$cols ="";
-$style="";
-$campo_multiple="";
-$render="";
-
-$consulta ="
- SELECT *
- FROM form_contenido_campos,form_campos, form_tipo_campo
- WHERE form_contenido_campos.id_form = '$id_form'
- AND form_contenido_campos.id_campo = '$id_campo'
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = form_campos.campo_tipo ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0'){
- if($id_dato !='') {
- $value = remplacetas('form_datos','id',$id_dato,'contenido'," control = '$control'") ;
- $multiple='0';
- }
- else {
- $value = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$control'") ;
- $multiple=mysql_result($sql,0,"multiple");
- }
- if($item=='') {$item ="0";}else {$item=$item;}
-
- if($value[0] !='') {$value= "$value[0]";}ELSE{$value='';}
- $campo_nombre=mysql_result($sql,0,"campo_nombre");
- $campo_descripcion=mysql_result($sql,0,"campo_descripcion");
- $campo_tipo_accion=mysql_result($sql,0,"tipo_campo_accion");
- $campo_obligatorio=mysql_result($sql,0,"obligatorio");
- if($campo_obligatorio =='1') {$obligatorio ="danger";}else{$obligatorio ="default";}
-
- if($campo_tipo_accion == 'text'){$render = " ";}
- elseif($campo_tipo_accion == 'date'){$render = " ";}
- elseif($campo_tipo_accion == 'rango'){
- $rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = $rango;}
- elseif($campo_tipo_accion == 'mapa'){
- $lat="";
- $lon="";
- $zoom="";
- if($value !=""){
-
- $campos = explode(" ",$value);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- if($lat =="") {
- $localizacion = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- //$render= $localizacion[0];
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
-
- }
- }
- $render .= "
-
-
-
-
-
- ";
- $cols='12';
- }
-elseif($campo_tipo_accion == 'email'){$render = "
-
- Escriba un email válido
";}
- elseif($campo_tipo_accion == 'envio'){$render = "
-
- Se enviará un email
";}
- elseif($campo_tipo_accion == 'textarea'){
- $render = " $value ";
- $cols='12';
- }
- //$subir_imagen = subir_imagen('');
- elseif($campo_tipo_accion == 'imagen'){
- $style ="display:hidden";
- // $gps = leer_exif($file);
- $render= " "; //subir_imagen('',$id_campo[$item]);
- $cols='12'; }
-
- elseif($campo_tipo_accion == 'html'){
- $render = "
-
- $value ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'limit'){
- $limite = limite("".$id_campo."[".$item."]",'','limite');
- $rows = ceil($limite / 50 )+1;
- $render = "$limite /
-
-
- $value
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'select'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select "; $cols='12'; }
- elseif($campo_tipo_accion == 'radio'){
- $select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_campos'){
- //radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control)
- $campos_valores = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $mensaje = remplacetas('form_campos','id',$id_campo,'campo_descripcion',"") ;
- $campos = explode(":",$campos_valores[0]);
- $titulos = explode(";",$campos[0]);
- $campos_incluidos = explode(";",$campos[1]);
- for($i=0;$i$campos_incluidos[$i] ";
- //$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "
-
-
-
- $mensaje[0]
- $listado_titulos
- $listado_campos
-
-
-
";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_linea'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = " ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'checkbox'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = checkbox_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";}
- elseif($campo_tipo_accion == 'combo'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = combo_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'relacion'){
- $select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'buscador'){
- $select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'base'){
- $select = buscador_base($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";}
- elseif($campo_tipo_accion == 'vinculado'){
- $vinculado = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $select = formulario_areas($vinculado[0],'campos');
- $render = "
- $select
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'number'){
- $render = "
-
- (solo números)
";}
-
- elseif($campo_tipo_accion == 'password'){
- $render = "
-
- ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'unico'){
- $render ="
-
";
- }
- else{$render = " ";}
- if($multiple =='1'){
-
-
- $campo_multiple = "
-
- ";
-}
- if($item == 0) { $label = " $campo_nombre ";}
- else {$label = "$campo_nombre $campo_obligatorio ";}
- ///// CAMPOS QUE NO SE MOSTRARAN
- if($campo_tipo_accion == 'imagen'){
- $label="";
- }
- if($cols =="") {$cols = "6";}
- $input = "
-
-$campo_multiple
- ";
-
-
-if($campo_tipo_accion != "oculto") {
- $input= $input;
- }else { $input ="";}
-
- }
- return $input;
-}
-
-
-function validar_email($email) {
-
-if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
- return 1;
-}else{
- return 0;
-}
-}
-
-function formulario_valor_campo_ORIGINAL($perfil,$id_campo,$valor,$id_control){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$valor=mysql_real_escape_string($valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-$consulta = "SELECT * FROM `form_datos` WHERE `form_id` = '$perfil' AND id_campo='$id_campo' $valor AND `control` = '$id_control' ORDER BY timestamp DESC limit 1";
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysql_result($sql,0,"control");
-$timestamp=mysql_result($sql,0,"timestamp");
-mysql_data_seek($sql, 0);
-if($cant === 1) {
- $contenido=mysql_result($sql,0,"contenido");
- }else {
-while( $row = mysql_fetch_array( $sql ) ) {
- $contenido .= "$row[contenido] ";
- }
- }
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = $contenido;
-}
-return $existe;
- }
-
-
-
-function formulario_valor_campo($perfil,$id_campo,$valor,$id_control,$orden){
-$contenido="";
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-$campo_multiple = remplacetas("form_contenido_campos","id_campo",$id_campo,"multiple"," id_form ='$perfil'");
-$tipo_campo = remplacetas("form_campos","id","$id_campo","campo_tipo","");
-$campo_multiple = $campo_multiple[0];
-if($tipo_campo[0] =="24") {$campo_multiple = "1";}
-/// SI EL CAMPO ES MULTIPLE O CHECK BOX MUESTRA LAS MULTIPLES ENTRADAS
-if($campo_multiple !="1" ){ $limite =" asc limit 1 ";}else {$limite =" asc ";}
-if(@$orden !=""){ $campo_orden =" AND orden ='$orden' ";}else {$campo_orden ="";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$valor=mysql_real_escape_string($valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-/*
-$consulta = "SELECT * FROM `form_datos`
-WHERE `form_id` = '$perfil'
-AND id_campo='$id_campo' $valor
-AND `control` = '$id_control' $campo_orden
-GROUP BY orden
-ORDER BY timestamp $limite ";
-*/
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$perfil'
- AND id_campo ='$id_campo' $valor
- AND control ='$id_control' $campo_orden
- group by orden
- ORDER BY orden $limite";
-
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysql_result($sql,0,"control");
-$timestamp=mysql_result($sql,0,"timestamp");
-$orden=mysql_result($sql,0,"orden");
-$id_usuario=mysql_result($sql,0,"id_usuario");
-$ip=mysql_result($sql,0,"ip");
-mysql_data_seek($sql, 0);
-$md5_contenido = "";
-if($cant === 1) {
- //$contenido=mysql_result($sql,0,"contenido");
- $identificador=mysql_result($sql,0,"identificador");
- $identificador = explode(',',$identificador);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $md5_contenido = $contenido_campo[3];
- //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
- //$md5_contenido = $md5_contenido[0];
- $contenido = "$contenido_campo[0] ";
- }else {
-while( $row = mysql_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_campo[0] ";
- }
- }
-// $contenido .="$consulta";
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = "$contenido";
-$existe[] = $md5_contenido;
-$existe[] = $orden;
-$existe[] = $id_usuario;
-$existe[] = $ip;
-}
-return $existe;
- }
-
-function formulario_grabar($formulario) {
- $respuesta = new xajaxResponse('utf-8');
- //$formulario = mysql_seguridad($formulario);
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
- $consulta_grabada ='0';
- $control = $formulario[control]; //
- $form_id = $formulario[form_id]; //
- $tipo = $formulario[tipo]; //
- if($formulario[imagen] !=''){$formulario[0][0] = $formulario[imagen];}
-
- $consulta_form = "SELECT * FROM form_contenido_campos,form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$form_id' ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-// $sql=mysql_query($consulta_form,$link);
-
-// if (mysql_num_rows($sql)!='0'){
-// mysql_data_seek($sql, 0);
-// while( $row = mysql_fetch_array( $sql ) ) {
-
-
-//////
- if(isset ( $_SESSION[id_empresa])){$id_empresa = $_SESSION[id_empresa]; }else{
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- }
-foreach($formulario as $c=>$v){
-
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if($V != '') {
-
-
-
-$datos .= "$$c = \$formulario['$c'][$C]; // $V /$campo_tipo[0]
";
- if($campo_tipo[0] =='12' OR $campo_tipo[0] =='13') {
- $validar = validar_email($V);
- if($validar == '0') {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }else {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- }
- }
- if($campo_tipo[0] =='3' ) {
- $validar = is_numeric($V);
- if(is_numeric($V) ) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
- }else{
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] solo acepta valores numéricos");
- return $respuesta;
- }
- }
-
- if($campo_tipo[0]=='17') {
- $limite = limite("$c",'','limite');
- $size= strlen($V);
- $restante = ($limite - $size);
- if( $restante < 0) {
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] no debe tener mas de $limite caractéres, sobran $restante");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
- }
-
-
-
- }
-else{ //busca campos vacios
-
-$campo_obligatorio = remplacetas("form_contenido_campos","id_campo",$c,"obligatorio","id_form = '$formulario[form_id]'");
-if($campo_obligatorio[0] =='1'){
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] es obligatorio");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
-
-}
-
-$md5 = md5($V);
-$igual = formulario_valor_campo("$form_id","$c","$md5","$formulario[control]","$C");
-$existe = formulario_valor_campo("$form_id","$c","","$formulario[control]","$C");
-//$valor_anterior .= $existe[3]."| ";
-if(!is_null($existe) AND $tipo =='edit' AND $V =='') {
- $consulta_vacio ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysql_query($consulta_vacio,$link);
- if($sql) {
- $consulta_grabada ='1';
- }
-}
-if(is_null($igual) ){$repetido = 0;}else{
-$repetido = 1;
-}
-
-//$debug .= " (c= $c md5 = $md5 , igual = $igual, repetid =$repetido ) ";
-//$respuesta->addAssign("respuesta_$control","innerHTML","$valor_anterior");
-//return $respuesta;
-//$respuesta->addAlert("$debug");
-//return $respuesta;
-
-if(($V !='' ) && (is_numeric($c)) AND $repetido !=1 ) {
-
- $V = mysql_real_escape_string($V);
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
-
-if($campo_tipo[0] =="18") {
- $V = MD5("$campo_valor");
-}
-
-
- $consulta ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '$V', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysql_query($consulta,$link);
- $debug .= "$consulta = $sql ,";
- if($sql) {
- $consulta_grabada ='1';
- }
- }
-
- } ///fin del array
-
- }///fin del array primario
- else {
- if($v !='') {$datos .= "$$c = \$formulario['$c']; // $v
";}
- }
- }
-
-
-
-
-// }
-// }
-
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX" )
-{
- $exito ="
-
- $formulario[mensaje]
-
- ";
- $mail = '1';
- }
- elseif($tipo == "solocampos" ){
-
-
- $exito ="
-
- $formulario[mensaje]
-
- ";
-
- $mail='0';
- }
- else{
- $campo_envio = buscar_campo_tipo($formulario[form_id],"13");
- if($campo_envio[0] != "") {
-$envio = email_contenido("$formulario[form_id]","$formulario[control]","$campo_envio[0]",'');
- }
-
-if($tipo = "embebido") {
-$otro_formulario ="
-
- Llenar otro formulario
-
-";
-}else {
- $otro_formulario = "
-
- Llenar otro formulario
-
-
- ";
-}
-$impresion = formulario_imprimir("","$formulario[control]","preview");
-$mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
-//$impresion = mostrar_identificador($formulario['control']);
- $exito ="
-
- $mensaje_agradecimiento[0]
-
-
- $impresion
-
-
- Gracias por llenar el formulario $formulario[form_nombre]
-
-
- $otro_formulario
-
-
- $envio
-
-
-
";
-
-// $mail ='1';
- }
-
-//if($mail =='1') {
-
- //$propietario = remplacetas('form_id','id',$formulario[form_id],'propietario',"") ;
- //$propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $email_envio = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($email_envio[0] !="") {
- $impresion = formulario_imprimir("","$formulario[control]","preview");
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$formulario[form_id],"nombre","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0]" . "\r\n";
-
-$asunto= "$nombre_formulario[0]";
-$cuerpo ="
-$mensaje_agradecimiento[0]
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en http://$_SERVER[HTTP_HOST]/milfs?id=$formulario[form_id]&c=$formulario[control]
-Saludos de MILFS
-";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $exito .=""; }else {$exito .="error enviando correo";}
- //$exito .= "$email[0] $headers ";
- }
- /// }
- $respuesta->addAssign("div_$control","innerHTML","$exito ");
- return $respuesta;
- }
-//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
-return $respuesta;
-}
-$xajax->registerFunction("formulario_grabar");
-
-function mysql_seguridad($inp) {
- if(is_array($inp))
- return array_map(__METHOD__, $inp);
-
- if(!empty($inp) && is_string($inp)) {
- return str_replace(array('\\', "\0", "'", '"', "\x1a"), array('\\\\', '\\0', "\\*", "\\*", '\\Z'), $inp);
- }
-
- return $inp;
-}
-
-function formulario_campos_render_multiple($id_campo,$id_form,$control,$item) {
-
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$id_form'
- AND id_campo ='$id_campo'
- AND control ='$control'
- group by orden ORDER BY orden asc";
- $link=Conectarse();
- //$resultado .= "$consulta";
- mysql_query("SET NAMES 'utf8'");
- $sql =mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0' ){
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- //$identificador = $row[identificador];
- $resultado .= $identificador;
- $resultado .= formulario_campos_render($row[id_campo],$id_form,$control,$row[orden],$identificador);
- $item = $item + 1;
- }
- }
- $resultado .= formulario_campos_render($id_campo,$id_form,'',$item,'');
-
- return $resultado;
-}
-
-
-
-function formulario_modal($id,$form_respuesta,$control,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $formulario_respuesta = formulario_respuesta("$id","$control");
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"",'') ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = "$formulario_respuesta";
- $pie .= empresa_datos("$id_empresa",'pie');
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $cabecera ="".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
-
- $nuevo_formulario = "Llenar otro formulario ";
-if($control !='' AND $tipo =='' ) {
- $impresion = formulario_imprimir("$id","$control","");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $muestra_form = "$impresion
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $modificable = remplacetas('form_id','id',$id,'modificable') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
-
-$consulta = "
- SELECT * FROM form_id, form_contenido_campos
- WHERE form_id.id = form_contenido_campos.id_form
- AND form_id.id = '$id' ORDER BY form_contenido_campos.orden ASC
- ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- $descripcion=mysql_result($sql,0,"descripcion");
- $nombre=mysql_result($sql,0,"nombre");
- $id_empresa=mysql_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = empresa_datos("$id_empresa",'pie');
- $cabecera = "
-
-
-
-
-
-
-
$nombre $descripcion
-
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($id,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-
-
-if ($campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$id","$campo_imagen"."[0]");
- }
- $muestra_form = "
-
-
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas("form_campos","id","$row[id_campo]","campo_tipo","");
- //if($tipo_campo[0] =="24") { $row[multiple] = "1";}
- if($row[multiple] ==='1' AND $tipo =='edit'){
- $campos = formulario_campos_render_multiple($row[id_campo],$id,$control_edit);
- }else{
- $campos = formulario_campos_render($row[id_campo],$id,$control_edit,'');
- }
- $muestra_form .= "$campos ";
- $solo_campos .= "$campos ";
- }
- $muestra_form .="
-
- ";
- }
-
-$muestra_form .="
-
-
-
";
- $muestra_form = "$muestra_form
";
-if($tipo=='campos') {
- return $solo_campos;
-}
-if($tipo=='embebido') {
- return $muestra_form;
-}
-
-$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
-$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
-$respuesta->addAssign("pie_modal","innerHTML","$pie");
-$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-//$respuesta->addscript("$('textarea').markdown({autofocus:false,savable:false})");
-//$respuesta->addscript("$(document).ready(function () { $(\"#24[0]\").cleditor(); })");
-//$(document).ready(function () { $("#input").cleditor(); });
-
-
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_modal");
-
-
-
-function limpia_div($capa){
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($capa,"style.padding","0px");
-$respuesta->addClear($capa,"innerHTML");
-
-return $respuesta;
-}$xajax->registerFunction("limpia_div");
-
-
-function select_key($tabla,$key,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$key;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-$resultado="
-Seleccione
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_empresa($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor,$id_empresa){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE id_empresa = '$id_empresa' $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-
-function select_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado="
-Seleccione
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= " $row[campo_valor] ";
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-
-
-function radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-$valor = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-$nombre_linea = mysql_result($sql,0,"campo_nombre");
-$descripcion_linea = mysql_result($sql,0,"campo_descripcion");
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor[0]"){$selected="checked";}else{$selected ="";}
-$lineas .= " $row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-
-function radio_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-$nombre_linea = mysql_result($sql,0,"campo_nombre");
-$descripcion_linea = mysql_result($sql,0,"campo_descripcion");
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$lineas .= "$row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-function radio_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado="
-
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$resultado .= " $row[campo_valor]
";
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function checkbox_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
- $name = explode("[",$name);
- $name = $name[0];
- $fila="0";
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' and contenido ='$row[campo_valor]' ");
-
- $nombre= "$name"."[".$fila."]";
-//if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-if($value[0] ==="$row[campo_valor]"){$selected="checked";}else{$selected ="";}
-$resultado .= "
-
-
- $row[campo_valor] $selected
-
-
";
- $fila++;
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function rango($tabla,$campo,$key,$valor,$selected,$nombre,$onchange){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT min($campo) as min , max($campo) as max FROM $tabla WHERE $key ='$valor' ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- $min=mysql_result($sql,0,"min");
- $max=mysql_result($sql,0,"max");
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-$resultado="
- $min
-
- $max $selected
-
" ;
-
-
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function limite($id_campo,$contenido,$tipo){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT campo_valor FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- $limite=mysql_result($sql,0,"campo_valor");
-
- }else{}
- if($tipo =='limite') { return $limite;}
-$respuesta = new xajaxResponse('utf-8');
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("limite");
-
-function confirma_campo($valor_1,$valor_2,$campo,$campo_confirmacion){
- $respuesta = new xajaxResponse('utf-8');
- $pos = strpos($campo,"email");
-
-if($pos == "") { //// si no es un email
- }
- else {//// si es un email se revisa
- $email = validar_email("$valor_1");
- if($email === 0 ) {
- $respuesta->addAssign("$campo","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("El email no es valido ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- return $respuesta;
- }
- else{
- }
- }
-
-
-
- if($valor_1 != $valor_2){$resultado = "Los valores NO son iguales";
- $respuesta->addAlert("$resultado");
- /// $respuesta->addAssign("$campo","style.color","red");
-
-
- $respuesta->addAssign("$campo","value","$pos");
- $respuesta->addAssign("$campo_confirmacion","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- // document.getElementById('mobileno').focus();
-
-
- }else{
- //$respuesta->addAssign("$campo_confirmacion","style.color","green");
-
- $respuesta->addAssign("$campo","className"," form-control ");
- $respuesta->addAssign("$campo_confirmacion","className"," form-control ");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-success ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-success ");
- }
- return $respuesta;
-}
-$xajax->registerFunction("confirma_campo");
-
-
-function validar_campo($valor,$campo,$tabla,$div,$id){
-$valor = mysql_seguridad($valor);
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta="SELECT $campo FROM $tabla WHERE $campo = '$valor' LIMIT 1";
-$sql =mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0' ){
-$verificacion = "atencion"; $existe='';
-
-$respuesta->addAssign($campo,"value","");
-///$respuesta->addAlert("El valor $valor $existe existe");
-$resultado = "Grrr $valor $existe existe ";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else {$verificacion ="check"; $existe='NO';}
-$resultado = "Ok, buen $campo ! ";
-$respuesta->addAssign("$id","style.backgroundColor","#CBE7CB");
-//$resultado .= "$valor,$campo,$tabla,$div";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-
-return $respuesta;
-}
-$xajax->registerFunction("validar_campo");
-
-
-function comprobar_email($email,$tipo,$campo){
-$email = mysql_seguridad($email);
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='tercero') {$id_campo='tercero_email';}
-
-
-else{$id_campo = 'email';}
-
-if($campo !=''){
-$id_campo="$campo";
-}
-
-
-if ($email == "" AND $tipo==''){
- $respuesta->addAlert("El campo email es obligatorio ");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- return $respuesta;
- }
-
- $mail_correcto = 0;
- //compruebo unas cosas primeras
- if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
- if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
- //miro si tiene caracter .
- if (substr_count($email,".")>= 1){
- //obtengo la terminacion del dominio
- $term_dom = substr(strrchr ($email, '.'),1);
- //compruebo que la terminación del dominio sea correcta
- if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
- //compruebo que lo de antes del dominio sea correcto
- $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
- $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
- if ($caracter_ult != "@" && $caracter_ult != "."){
- $mail_correcto = 1;
- }
- }
- }
- }
- }
- if ($mail_correcto AND $tipo=='' )
- {
-$consulta= "SELECT email FROM usuarios WHERE email = '$email' LIMIT 1 ";
- $link=Conectarse();
-$sql=mysql_query($consulta,$link);
-$revisa=mysql_result($sql,0,"email");
-if ($revisa != ''){
-
- $respuesta->addAlert("$email: ya está registrado ");
- $respuesta->addAssign("email","style.color","red");
- $respuesta->addAssign("email","value","");
- return $respuesta;
- }
- $respuesta->addAssign("email","style.color","green");}
- elseif ($mail_correcto AND $tipo==='revisar' ) {
- $revisar = remplacetas("usuarios","email",$email,"email","");
- if($revisar[0] != '') {
-
- $respuesta->addAssign("$campo","style.color","white");
- $respuesta->addAssign("$id_campo","style.backgroundColor","green");
- }else{
- $respuesta->addAlert("$email: No existe en el sistema)");
- $respuesta->addAssign("$campo","value","");
- }
- return $respuesta;
- }
-
- elseif ($mail_correcto AND $tipo==='tercero' ) {
- $documento = remplacetas("terceros","email",$email,"documento","");
- if($documento[1] =='') { /// si el tercero NO existe
-
- }else { /// si el tercero existe en el sistema
-
- $tipo_persona = remplacetas("terceros","id",$documento[1],"tipo_persona","");
-
- if($tipo_persona[0] =='1') {
- $razon_social = remplacetas("terceros","id",$documento[1],"razon_social","");
- $resultado .= " $razon_social[0]] Nit: $documento[0]";
- } else {
- $primer_nombre = remplacetas("terceros","id",$documento[1],"p_nombre","");
- $segundo_nombre = remplacetas("terceros","id",$documento[1],"s_nombre","");
- $primer_apellido = remplacetas("terceros","id",$documento[1],"p_apellido","");
- $segundo_apellido = remplacetas("terceros","id",$documento[1],"s_apellido","");
- $resultado .=" \r $primer_nombre[0] $segundo_nombre[0] $primer_apellido[0] $segundo_apellido[0] \r Documento: $documento[0]";
- }
-
- $respuesta->addAlert("$email: $resultado");
- $respuesta->addAssign("tercero_documento","value","$documento[0]");
- $respuesta->addAssign("tercero_primer_nombre","value","$primer_nombre[0]");
- $respuesta->addAssign("tercero_segundo_nombre","value","$segundo_nombre[0]");
- $respuesta->addAssign("tercero_primer_apellido","value","$primer_apellido[0]");
- $respuesta->addAssign("tercero_segundo_apellido","value","$segundo_apellido[0]");
- $respuesta->addAssign("tercero_razon_social","value","$razon_social[0]");
- $respuesta->addAssign("tercero_id","value","$documento[1]");
-
- }
-
- }
- else
- {$respuesta->addAlert("$email: no es un correo válido");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("comprobar_email");
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-
-function milfs(){
- $crear_campos = formulario_crear_campo('','','');
- $listado = formulario_listado('','');
- //$consultas = formulario_consultar('','');
- $importador = formulario_importador('');
- $limpiar_cache = borrar_tmp('');
- $configuracion= configuracion('');
-
- $login = login_boton('');
- $menu =
-"
-
-
-
- $crear_campos
-
- $listado
-
- $importador
- $limpiar_cache
- Presentación
- $configuracion
-
-
-
-
-
";
-
- return $menu;
-}
-function url_existe($url)
-{
- $handle = @fopen($url, "r");
- if ($handle == false)
- return NULL;
- fclose($handle);
- return $url;
-}
-function es_imagen($url)
- {
- $imageSizeArray = getimagesize($url);
- $imageTypeArray = $imageSizeArray[2];
- return (bool)(in_array($imageTypeArray , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG )));
- }
-function parametrizacion($array) {
- //return $array;
- $link=Conectarse();
- mysql_real_escape_string($array);
- $accion = $array[accion];
- $tabla = $array[tabla];
- $campo = $array[campo];
- $opcion = $array[opcion];
- $descripcion= $array[descripcion];
- $visible= $array[visible];
- $id= $array[id];
-
- if($accion =='grabar'){
- $consulta= "INSERT INTO form_parametrizacion set tabla='$tabla', campo ='$campo',opcion ='$opcion' , descripcion ='$descripcion' ,visible='$visible'";
- }
- // return $consulta;
- $sql=mysql_query($consulta,$link);
- if($sql){return "Campo grabado"; }else{return "";}
-
-}
-
-?>
\ No newline at end of file
diff --git a/milfs/funciones/funciones_20160319.php b/milfs/funciones/funciones_20160319.php
deleted file mode 100644
index 518340f..0000000
--- a/milfs/funciones/funciones_20160319.php
+++ /dev/null
@@ -1,10189 +0,0 @@
-
-
- ".strip_tags($row['mensaje'])."
- $usuario[0] $row[timestamp]
-
-
- ";
-
- }
-$resultado= "
-
-
-
- Interacciones
-
-
-
-
-
";
-}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_interacciones");
-
-
-function contar_interacciones($identificador,$tipo,$usuario){
-$consulta = "SELECT distinct(id) as cantidad FROM form_interacciones WHERE identificador = '$identificador' AND tipo= '$tipo' ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
- mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = mysql_num_rows($sql);
-//$resultado = mysql_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-function interaccion_identificador($identificador,$accion) {
-$respuesta = new xajaxResponse('utf-8');
- $empresa = remplacetas("form_datos","control","$identificador","id_empresa","");
- $id_formulario = remplacetas("form_datos","control","$identificador","form_id","");
- $id_form = $id_formulario[0];
- $id_empresa = $empresa[0];
-
- if(is_array($identificador)) {
- $identificador_array= $identificador;
- $tipo=$identificador['tipo'];
- $mensaje=$identificador['texto_interaccion'];
- $nuevo_identificador=$identificador['identificador'];
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
-
- $link=Conectarse();
-
- mysql_query("SET NAMES 'utf8'");
- $mensaje=strip_tags($mensaje) ;
- mysql_real_escape_string($mensaje);
- $consulta="INSERT INTO form_interacciones SET mensaje='".mysql_real_escape_string($mensaje)."' ,estado='0' ,identificador='$nuevo_identificador', tipo='$tipo',ip=$graba_ip,usuario='$_SESSION[control_usuario_milfs]' ";
- mysql_real_escape_string($consulta);
- $sql=mysql_query($consulta,$link);
-
- if($sql) {
- require ("milfs/includes/parametrizacion.php");
- $empresa = remplacetas("form_datos","control","$nuevo_identificador","id_empresa","");
- $id_formulario = remplacetas("form_datos","control","$nuevo_identificador","form_id","");
- $id_form = $id_formulario[0];
- $id_empresa = $empresa[0];
- ///OBLIGA AL EMAIL DE LA EMPRESA PRINCIPAL
- $email = remplacetas("empresa","id","$id_empresa","email","");
- $administrador = remplacetas("empresa","id","1","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id","$id_form","nombre","");
- $titulo_email ="Alguien ha decidido $tipo tu publicación ";
- $campo_imagen = buscar_campo_tipo("$id_form","15");
- $imagen_email = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$nuevo_identificador' ") ;
- $imagen_email = "https://$web[0]/milfs/images/secure/?file=600/$imagen_email[0]";
- $nombre_email = $razon_social[0];
- $cuerpo_email=" Tu aplicación $nombre_formulario[0] ha recibido una interacción, por favor revísala cuando te sea posible. ";
-
-if($tipo =="Reportar") { $copia = " Cc: $administrador[0] \r\n";}
-/*
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] < $email[0] >\r\n";
-$headers .= "Reply-To: $razon_social[0] < $reply[0] >\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0] ".$copia." " . "\r\n";
-*/
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] ".$administrador[0]."\r\n";
- $headers .= "Reply-To: $razon_social[0] ".$email[0]."\r\n";
- $headers .= "Return-path: $email[0]\r\n";
- $headers .= "$copia";
-
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:email_general",'descripcion',"id_empresa = '1'") ;
-$consulta_plantilla ="$plantilla[2]";
- $plantilla = html_entity_decode ( $plantilla[0] );
-eval("\$plantilla = \"$plantilla \";");
-$plantilla .="";
-$asunto= "Recibiste un mensaje en [$portal_sigla] ";
-
- if(mail("$email[0]","$asunto","$plantilla","$headers")){ $exito .="Tienes un email ! $headers $email[0] "; }else {$exito .=" Error enviando correo ";}
-
-
- $div = "".$tipo."_cantidad_$nuevo_identificador";
- $cantidad = contar_interacciones("$nuevo_identificador","$tipo","$_SESSION[control_usuario_milfs]");
- $resultado="
El mensaje se ha enviado, si es necesario nos comunicaremos contigo $exito";
- $respuesta->addAssign("$div","innerHTML","$cantidad");
-
- }else{
- $resultado="
Algo salió mal Por favor inténtalo de nuevo $consulta ";
- }
-
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("myModalLabel_info","innerHTML","$accion ");
- return $respuesta;
-
-
- }
- if($accion =="") {
- $cantidad_Si = contar_interacciones("$identificador","Si","$_SESSION[usuario_milfs]");
- $cantidad_No = contar_interacciones("$identificador","No","$_SESSION[usuario_milfs]");
- $cantidad_Comentar = contar_interacciones("$identificador","Comentar","$_SESSION[usuario_milfs]");
- $cantidad_Reportar = contar_interacciones("$identificador","Reportar","$_SESSION[usuario_milfs]");
- if($_SESSION['id_empresa'] == "$id_empresa") {
- $revisar_interacciones=" Mostrar Todo
";
-
- }
- $menu ="
-
-
Mensaje $cantidad_Mensaje
-
Si $cantidad_Si
-
No $cantidad_No
-
Reportar $cantidad_Reportar
-
Comentar $cantidad_Comentar
-
Mostrar
- $revisar_interacciones
-
-
-
- ";
- return $menu;
- }
- /*
- elseif($accion=="Si") { }
- elseif($accion=="No") { }
- elseif($accion=="Compartir") { }
- */
- else {
-if(isset($_SESSION['usuario_milfs']) ) {
-$formato="
-
-
-
- Comentario
-
-
-
-
-
-
-
-
-
-";
-
-}
-
-else{
- require ("milfs/includes/parametrizacion.php");
-/// SI EL USUARIO NO ESTA LOGUEADO
-$login = milfs_session("$login_formulario","$login_campo_usuario","$login_campo_password","","");
-$formato ="
-
Por favor ingresa para $accion
-$login
-";
-}
-
-}
-
-
- //$div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$formato");
- $respuesta->addAssign("myModalLabel_info","innerHTML","$accion $_SESSION[nombre_usuario_milfs] ");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-}
-$xajax->registerFunction("interaccion_identificador");
-
-function eliminar_identificador($identificador,$accion) {
- $respuesta = new xajaxResponse('utf-8');
- $div="eliminar_$identificador";
-if($accion =="") {
- $resultado="
-
-
Se eliminará definitivamente este registro
-
-
-";
-}
-if($accion =="eliminar") {
- $consulta_eliminar="DELETE FROM `form_datos` WHERE `form_datos`.`control` = '$identificador' ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- mysql_real_escape_string($consulta_eliminar);
- $sql_borrar=mysql_query($consulta_eliminar,$link);
- if($sql_borrar) {
-$resultado ="
-
-
Se eliminó definitivamente este registro.Por favor actualice esta vista
-
- ";
- }
- else {
-$resultado ="
-
-
Algo salió mal, quizá el registro ya había sido eliminado Por favor actualice esta vista
-
- ";
- }
-}
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("eliminar_identificador");
-
-function mover_formulario($formulario,$id_empresa,$tipo){
-$div ="div_mover";
-$error ="";
-if($tipo =="formato") {
- if($_SESSION['id'] == '1') {
-
-//// solo el desadministrador puedemover formualarios
-
- $w_empresa = "";
- $empresas = select('empresa','id','razon_social','',"",'Proyecto_mover');
- $empresa ="
-
- Seleccione proyecto
- $empresas
-
- ";
- $cols ="6";
-
- $formularios = select('form_id','id','nombre','',"$w_empresa",'Formulario_mover');
-///
- $resultado="
-
-
-
-
- Mover
-
-
El formulario y su contenido se moverán al proyecto seleccionado
-
-
-
- Seleccione formulario
- $formularios
-
- $empresa
-
-
-
-
-
-
-";
-return $resultado;
-
-
- }else {
-return $resultado;
- }
-
-}
-
- $respuesta = new xajaxResponse('utf-8');
-
-/* $revisar_nombre = remplacetas('form_id','nombre',"$nuevo_nombre",'nombre'," id_empresa = '$id_empresa'") ;
- if($revisar_nombre[0] !="") { $error ="Existe un formulario con el nombre
$nuevo_nombre en ese proyecto.";}
-*/
- if( $formulario =="" or $id_empresa =="" ) { $error ="Asegúrese de que ningún campo esté vacío. $formulario // $id_empresa";}
-
-
- if($error !="") {
- $resultado ="
$error ";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- mysql_real_escape_string($nuevo_nombre);
-
-
-// $descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
- $consulta_update_form = "UPDATE form_id SET id_empresa= '$id_empresa' WHERE id = '$formulario' LIMIT 1";
-
- $sql_update=mysql_query($consulta_update_form,$link);
-
- $consulta_update_campos = "UPDATE form_datos SET id_empresa= '$id_empresa' WHERE form_id = '$formulario' ";
- $sql_update_campos=mysql_query($consulta_update_campos,$link);
-
- if($sql_update_campos){
- if (mysql_affected_rows($sql_update_campos)!='0'){
- $cantidad = mysql_affected_rows();
- $nombre = remplacetas('form_id','id',"$formulario",'nombre'," id_empresa = '$id_empresa'") ;
- }
-
- }
-
-
-
-
-
- $resultado ="
-
-
Se movió el formulario $nombre[0] y sus $cantidad registros. Actualizar
-
";
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
- }
-$xajax->registerFunction("mover_formulario");
-
-
-
-
-function clonar_formulario($formulario,$id_empresa,$nuevo_nombre,$tipo){
-$div ="div_clonar";
-$error ="";
-if($tipo =="formato") {
- if($_SESSION['id'] == '1') {
- $w_empresa = "";
- $empresas = select('empresa','id','razon_social','',"",'Proyecto');
-$empresa ="
-
- Seleccione proyecto
- $empresas
-
- ";
- $cols ="4";
- }else {
- $empresa ="
";
- $w_empresa = "id_empresa = '$_SESSION[id_empresa]'";
- $cols="6";
- }
- $formularios = select('form_id','id','nombre','',"$w_empresa",'Formulario');
- $resultado="
-
-
-
-
-
- Clonar Se copiará la estructura del formulario pero no su contenido.
-
-
-
- Seleccione formulario
- $formularios
-
- $empresa
-
- Nombre
-
-
-
-
-
-
-
-";
-return $resultado;
-}
-if($id_empresa =="") {
-$id_empresa = $_SESSION['id_empresa'];
-}
- $respuesta = new xajaxResponse('utf-8');
-
- $revisar_nombre = remplacetas('form_id','nombre',"$nuevo_nombre",'nombre'," id_empresa = '$id_empresa'") ;
- if($revisar_nombre[0] !="") { $error ="Existe un formulario con el nombre
$nuevo_nombre en ese proyecto.";}
- if( $formulario =="" or $nuevo_nombre =="" ) { $error ="Asegúrese de que ningún campo esté vacío.";}
-
- if($error !="") {
- $resultado ="
$error ";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- mysql_real_escape_string($nuevo_nombre);
-
-
- $descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
- $consulta_insert = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
- VALUES ('$nuevo_nombre', '$descripcion[0]', '1', '0', '0', '$_SESSION[id]','','$id_empresa')";
-
-$sql_insert=mysql_query($consulta_insert,$link);
-$ultimo_id = mysql_insert_id();
-
-
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = 'CLONE' ,id_empresa= '$id_empresa'";
- $sql_grupo=mysql_query($consulta_grupo,$link);
-
-
-
-$consulta="SELECT * FROM form_contenido_campos WHERE id_form ='$formulario'";
-
- $sql=mysql_query($consulta,$link);
-
- if($sql){
- if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $control = md5(rand(1,99999999).microtime());
- $values .= "('$row[id_campo]','$id_empresa','$ultimo_id', '$row[obligatorio]', '$row[multiple]', '$row[orden]', '$control'),";
- }
- $values = substr($values, 0, -1);
- $values = "(`id_campo`, `id_empresa`, `id_form`, `obligatorio`, `multiple`,`orden`,`control`) VALUES $values ";
- }
- $consulta_insertar_campos = "INSERT INTO form_contenido_campos $values ";
- $sql_insert_campos=mysql_query($consulta_insertar_campos,$link);
- }
-
-
-
-
-
- $resultado ="
";
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
- }
-$xajax->registerFunction("clonar_formulario");
-
-
-
-
-function parametrizacion_css($tipo,$url,$accion) {
-if($accion =="") {
-$css = remplacetas('form_parametrizacion','campo',"index",'descripcion'," tabla='css' and opcion = 'bootstrap' and id_empresa = '$_SESSION[id_empresa]'") ;
-$css_adicional = remplacetas('form_parametrizacion','campo',"index",'descripcion'," tabla='css' and opcion = 'adicional' and id_empresa = '$_SESSION[id_empresa]'") ;
-$resultado="
-
-
Estilos
-
-
-
-
- CSS adicional
- $css_adicional[0]
-
-
-
- /* HOJA DE ESTILOS CSS ACTUAL */
- $css_adicional[0]
-
-
-";
-}
-return $resultado;
-
-}
-
-function mas_visto($tipo,$limite) {
-$resultado= "";
- if($tipo =="ultimos") {
- $consulta ="SELECT * FROM `form_datos`, form_id WHERE `form_datos`.form_id = form_id.id AND form_id.publico = '1' GROUP BY form_datos.control ORDER BY form_datos.timestamp DESC LIMIT $limite";
- }
- else{
- $consulta ="SELECT * FROM `form_parametrizacion` WHERE `opcion` LIKE '$tipo' ORDER BY CAST(descripcion AS SIGNED ) DESC LIMIT $limite";
- }
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- if($sql){
- if (mysql_num_rows($sql)!='0'){
- if($tipo =='identificador') {
- while( $row = mysql_fetch_array( $sql ) ) {
-
- $formulario = remplacetas('form_datos','control',"$row[campo]",'form_id',"") ;
- $formulario_titulo = remplacetas('form_id','id',"$formulario[0]",'nombre',"") ;
- $campo_imagen = buscar_campo_tipo("$formulario[0]","15");
- $imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[campo]' ") ;
- //$impresion = mostrar_identificador("$row[campo]","","landingpage","","");
- $contenido .= "
-
$row[descripcion]
-
-
-
-
- $impresion
-
-
";
- }
- $resultado = "
-
-
- LO MAS VISTO
-
-
- $contenido
-
-
- ";
- }
- elseif($tipo =='formulario') {
- while( $row = mysql_fetch_array( $sql ) ) {
- $formulario_titulo = remplacetas('form_id','id',"$row[campo]",'nombre',"") ;
- $formulario_empresa = remplacetas('form_id','id',"$row[campo]",'id_empresa',"") ;
- $empresa_logo = remplacetas('empresa','id',"$formulario_empresa[0]",'imagen',"") ;
- $contenido .= " ";
-
- }
- $resultado = "
-
-
- LO MAS ACTIVO
-
-
- $contenido
-
-
- ";
-
- }
- elseif($tipo =='ultimos') {
- while( $row = mysql_fetch_array( $sql ) ) {
-
- //$formulario = remplacetas('form_datos','control',"$row[control]",'form_id',"") ;
- //$formulario_titulo = remplacetas('form_id','id',"$formulario[0]",'nombre',"") ;
- $campo_imagen = buscar_campo_tipo("$row[form_id]","15");
- if($campo_imagen[0] =="") {
- $imagen = remplacetas('empresa','id',"$row[id_empresa]",'imagen',"") ;
- }else{
- $imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[control]' ") ;
- if($imagen[0]=="") {
- $imagen = remplacetas('empresa','id',"$row[id_empresa]",'imagen',"") ;
- }
- //$impresion = mostrar_identificador("$row[campo]","","landingpage","","");
- }
- $contenido .= " ";
- }
- $resultado = "
-
-
- LO ÚLTIMO
-
-
- $contenido
-
-
- ";
- }
- else{}
-
- }
- }
-
-
-return $resultado;
-}
-
-function social_login($accion,$servicio,$uid) {
- require ("milfs/includes/parametrizacion.php");
- $control_uid = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$uid' AND id_campo = '$social_login_uid'") ;
- $control_servicio = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$servicio' AND control = '$control_uid[0]'") ;
- $usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_usuario'") ;
- $nombre_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido"," id_campo = '$login_campo_nombres'") ;
- $avatar_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_avatar'") ;
-
- if($accion == "consultar") {
-
- if($control_servicio[0] != "") {
- $resultado ="Existe $control_servicio[0] ";
- }
- else {
- $resultado ="";
- }
- }
- elseif($accion =="login") {
- if($control_servicio[0] != "") {
- $_SESSION['usuario_milfs'] = "$usuario[0]";
- $_SESSION['nombre_usuario_milfs'] = "$nombre_usuario[0]";
- $_SESSION['control_usuario_milfs'] = "$control_servicio[0]";
- $_SESSION['avatar_usuario_milfs'] = "$avatar_usuario[0]";
-
- header("Location: ./");
- die();
- }
- else{
- session_destroy();
- header("Location: ./");
- die();
- }
-
-
-
- }
- else{}
-
-return $resultado;
-
-}
-
-
-function campo_privacidad($opcion,$id_campo,$form,$accion) {
- //return $array;
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-$respuesta = new xajaxResponse('utf-8');
- if($accion =='grabar'){
- $limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$form' AND descripcion='$id_campo' AND opcion like 'privacidad:%' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1 ";
- $sql=mysql_query($limpiar,$link);
-
- $consulta= "INSERT INTO form_parametrizacion set tabla='form_id', campo = '$form', opcion ='privacidad:$opcion' , descripcion ='$id_campo' ,visible='0', id_empresa = '$_SESSION[id_empresa]'";
- }
- // return $consulta;
- $sql=mysql_query($consulta,$link);
- if($sql){
- if($opcion == '1') { $mensaje = "El campo ahora es privado y NO se mostrará su contenido";}
- else { $mensaje = "El campo ahora ES PÚBLICO y SE MOSTRARÁ su contenido";}
- //$respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- $respuesta->addAlert("ATENCION: $mensaje");
- return $respuesta;
- }else {
- //$respuesta->addAlert("$consulta");
- //$respuesta->addAssign("debug","innerHTML","$consulta");
- //return $respuesta;
- }
-
-}
-$xajax->registerFunction("campo_privacidad");
-
-
-
-function respuestas_formulario($id,$identificador) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $formulario_respuesta = formulario_respuesta("$id","$identificador");
- $consulta = "SELECT form_id , timestamp FROM form_datos
- WHERE control = '$identificador' AND form_id != '$id' GROUP BY form_id , timestamp
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
-
- $resultado ="";
- while( $row = mysql_fetch_array( $sql ) ) {
- $respuesta = mostrar_identificador("$identificador","$row[form_id]","respuesta",'simple',"$row[timestamp]");
- $fecha = date($format, $row['timestamp']);
- $resultado .= " $respuesta ";
-
-}
- $resultado .="";
-}else{$resultado ="";}
-$resultado = "$resultado $formulario_respuesta";
-return $resultado;
-}
-
-
-function formulario_respuesta($id,$identificador) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $consulta = "SELECT * FROM form_id
- WHERE formulario_respuesta = '$id'
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado ="
- ";
- while( $row = mysql_fetch_array( $sql ) ) {
- $resultado .= "$row[nombre] $row[descripcion] ";
-
-}
- $resultado .="
";
-}else{$resultado ="";}
-return $resultado;
-}
-function consultar_contenido_formulario($form,$registros,$pagina,$tipo,$orden){
- $imagen ="";
- $acciones ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $campo_filtro ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
- if(isset($_REQUEST['orden'])) { $orden= "$_REQUEST[orden]";}
- if(isset($_REQUEST['registros'])) { $registros= "$_REQUEST[registros]";}
- if(isset($_REQUEST['pagina'])) { $pagina= "$_REQUEST[pagina]";}
- if(isset($_REQUEST['v'])) { $origen= "$_REQUEST[v]";}
- $campo_orden = remplacetas('form_parametrizacion','campo',"$form",'descripcion'," tabla='form_id' and opcion = 'orden'") ;
- $campo_orden = $campo_orden[0];
-
-
-
-if($orden == "" ) { $ordenar= "ORDER BY form_datos.id DESC ";}
-elseif($orden == "ASC" ) { $ordenar= "ORDER BY form_datos.id ASC "; }
-else{}
-
-$respuesta = new xajaxResponse('utf-8');
-
-$id_form = $form;
- if($campo_orden !="") {
- $consulta_principal = "
- SELECT control,id,form_id,contenido FROM form_datos
- WHERE form_id = '$form' AND id_campo ='$campo_orden'
- GROUP BY form_datos.control
- ORDER BY CAST(contenido AS SIGNED ) $orden ";
- }else {
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' GROUP BY form_datos.control $ordenar";
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-mysql_real_escape_string($consulta_principal);
-$sql_total=mysql_query($consulta_principal,$link);
-$total_registros = mysql_num_rows($sql_total);//formulario_contar($id_form);
-if($registros=="") { $registros="$total_registros"; $origen="url";}
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta_principal.$limite;
- mysql_real_escape_string($consulta_limite);
- $sql=mysql_query($consulta_limite,$link);
-mysql_data_seek($sql_total, 0);
-//$sql=mysql_query($consulta_principal,$link);
-if (mysql_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-//$fecha = time ();
-// $ahora = date ( "Y-m-d" , $fecha );
-// $campos = listar_campos_formulario($id_form,"select");
-
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
-
- if(isset($_REQUEST[registros])) {
- $href_1 = "$origen®istros=$registros&pagina=1&orden=$orden";
- $href_2 = "$origen®istros=$registros&pagina=".($pagina-1)."&orden=$orden";
- }
- else {
- $href_1= "#cabecera#";
- $href_2= "#cabecera#";
- }
-
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
-
- if(isset($_REQUEST[registros])) {
- $href_3 = "$origen®istros=$registros&pagina=$x&orden=$orden";
- }
- else {
- $href_3= "#cabecera#";
- }
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- {
- if(isset($_REQUEST[registros])) {
- $href_4 = "$origen®istros=$registros&pagina=".($pagina+1)."&orden=$orden";
- $href_5 = "$origen®istros=$registros&pagina=$pages&orden=$orden";
- }
- else {
- $href_4= "$href_4";
- $href_5= "$href_5";
- }
- $link .= "
- "; }
- }
- $paginacion = "";
- $encabezado = "
- ";
-
-// $total_registros = mysql_num_rows($sql);
-/* $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- */
-// $listado_nombres = "Identificador $listado_nombres ";
-///$listado_campos = listar_campos_formulario("$id_form",'');
-mysql_data_seek($sql_total, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-
-// if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","landingpage",'');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= " $row[control]";
- }
-$buscador = buscar_datos("*formato*","$form","landingpage","mostrar_resultado");
-$filtro = portal_filtro_campos_select($form,"$campo_filtro","mostrar_resultado","landingpage");
-if( $tipo !== "" AND $tipo !=="embebido" ) {
- $publico = remplacetas('form_id','id',"$form",'modificable',"") ;
- if($publico[0] !="0" OR $_SESSION[id] !="") {
-
- $agregar = " Agregar
";
- }
-$acciones="
-
-
-
-
$agregar $filtro $buscador
-
-
-
- ";
-}
- //$descripcion = remplacetas('form_id','id',$id_form,'descripcion','') ;
- //$descripcion_limpia = strip_tags($descripcion[0]);
- //$nombre = remplacetas('form_id','id',$id_form,'nombre','') ;
-$resultado = "
-
-$nombre[0]
-$descripcion[0]
-$acciones
-
- $linea
-$encabezado
-
-";
- }
-else {
-$resultado ="
No hay resultados $consulta_limite";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-
- /*$datos = $resultado;
- $div ="contenido_de_modal";
- $resultado = " $datos
";
- $div_contenido = "$div
";
- */
- if($tipo =="") {
- // $respuesta->addAssign("contenido_interior","innerHTML","$div_contenido");
- $respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- return $respuesta;
- }
- if($tipo =="contenido" OR $tipo =="embebido" ) {
- return $resultado;
- }
-}
-$xajax->registerFunction("consultar_contenido_formulario");
-
-
-function multiempresa_listado($tabla,$div){
-$resultado = "";
-$encontrados = "";
-$link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-
-mysql_data_seek($sql, 0);
-$fila=1;
-$divider=4;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysql_fetch_array( $sql ) ) {
- if($i % $divider==0) {
- $encontrados .= "";
- }
- $i++;
- if($row[imagen] !="") {
- $logo="
";
- }
- else {
- $logo_empresa = remplacetas('empresa','id',"1",'imagen','');
- $logo="
";
- }
- $slogan= substr($row[slogan],0, $length = 140)."";
- $contenido ="
-
-
-
-
$row[razon_social]
-
$logo
-
-
-
-
-
";
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- $resultado ="
-
- $encontrados
-
- ";
- }else{
- $resultado = " No hay resultados
";
- }
-if($div =="") { return $resultado; }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa_listado");
-
-
-
-function decodifica_parametro ($string)
-{
- $inicial = substr($string,0,1);
- $string = mb_substr($string,1);
- $cadena = $string;
- //$length = strlen($base);
-
- $size = strlen($string) - 1;
- $string = str_split($string);
-
- //$out = strpos($base, array_pop($string));
-//return $out;
- /*foreach($string as $i => $char)
- {
-
- $out += (strpos($base, $char)* pow($length, $size - $i));
-//$out .= "$i => $char";
- }*/
-$resultado[0]=$inicial;
-//$resultado[1]=$out;
-$resultado[1]=$cadena;
-
- return $resultado;
-}
-
-function grabar_imagen($imagen,$control) {
-
- $imgData = str_replace(' ','+',$imagen);
- $imgData = substr($imgData,strpos($imgData,",")+1);
- $imgData = base64_decode($imgData);
-
- $nombre= $control.".png";
- $filePath = "$_SESSION[path]/tmp/".$nombre;
-
- $file = fopen($filePath, 'w');
- fwrite($file, $imgData);
- fclose($file);
- $full= "$_SESSION[path_images_secure]/full/".$nombre;
- if (!rename($filePath,$full)){}
- else {
- echo generar_miniatura($nombre,"150");
- echo generar_miniatura($nombre,"300");
- echo generar_miniatura($nombre,"600");
- }
-
- //return "$nombre";
- return "$nombre";
-}
-
-
-function generar_miniatura($file,$width) {
//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[0] / $file_info[1];
// Calculamos las nuevas dimensiones
$newwidth = $width;
$newheight = round($newwidth / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 80);
-imagepng($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 9);
-//imagegif($thumb,"$_SESSION[path_images_secure]/".$width."/$file");
-//imagejpeg($thumb,null, 80);
-}
-
-function generar_vcard($identificador){
-$impresion = mostrar_identificador("$identificador","","vcard",'simple');
-$impresion = formulario_imprimir("$id_form","$identificador","$plantilla");
-$nombre ="vcard_".$identificador.".vcf";
-$vcard ="BEGIN:VCARD
-VERSION:3.0
-N:Gump;Forrest
-FN:Forrest Gump
-ORG:Bubba Gump Shrimp Co.
-TITLE:Shrimp Man
-PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif
-TEL;TYPE=WORK,VOICE:(111) 555-1212
-TEL;TYPE=HOME,VOICE:(404) 555-1212
-ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
-LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America
-ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
-LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America
-EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com
-REV:20080424T195243Z
-END:VCARD";
-$archivo = "milfs/tmp/$nombre";
-$file=fopen($archivo,"w") or die("Problemas en la creacion");//En esta linea lo que hace PHP es crear el archivo, si ya existe lo sobreescribe
-fputs($file,$impresion);//En esta linea abre el archivo creado anteriormente e ingresa el resultado de tu script PHP
-fclose($file);//Finalmente lo cierra
-/*
-$ruta="/tmp/vcard_".$identificador.".vcf";
-header ("Content-Disposition: attachment; filename=".$ruta);
-header ("Content-Type: application/octet-stream");
-header ("Content-Length: ".filesize($ruta));
-readfile($ruta);
-*/
-return $archivo;
-
-
-}
-
-function autoriza_formulario_mostrar($password,$form,$control) {
- $respuesta = new xajaxResponse('utf-8');
- if($password =="") { unset($_SESSION['permiso_identificador']); $respuesta->addScript("javascript:location.reload(true);"); return $respuesta;}
- $campo = buscar_campo_tipo($form,"18");
- $campo_password = $campo[0];
- $comprobar_clave = remplacetas('form_datos','form_id',"$form",'contenido'," BINARY contenido = MD5('$password') AND id_campo = '$campo_password'") ;
- $password = md5($password);
- $aviso = "";
-
-if($comprobar_clave[0] !== $password ) {
- unset($_SESSION['permiso_identificador']);
- $respuesta->addAlert("La clave no es válida ");
- $aviso = "$comprobar_clave[2] !== $control";
- $respuesta->addAssign("pie_modal","innerHTML",$aviso);
- return $respuesta;
- }
- else{
- $_SESSION['permiso_identificador']="$control";
- //$respuesta->addAssign("pie_modal","innerHTML",$aviso);
- $respuesta->addScript("javascript:location.reload(true);");
- }
- return $respuesta;
-}
-$xajax->registerFunction("autoriza_formulario_mostrar");
-
-
-//($control,$form,$plantilla,$tipo)
-function landingpage_contenido_identificador($identificador,$form,$plantilla,$tipo){
- $linea="";
-
- $id_empresa = remplacetas('form_datos','control',$identificador,'id_empresa',"") ;
- //$form = remplacetas('form_datos','control',$identificador,'form_id',"") ;
-
- $respuestas = respuestas_formulario($form,$identificador);
- $imagen = buscar_imagen($form[0],$identificador,"","$id_empresa[0]");
- $plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$plantilla",'id',"campo = '$form'") ;
-
- $uri = "$_SESSION[site]i$identificador";
- $qr = "https://qwerty.co/qr/?d=$uri";
- if($imagen !="") {
-
- $mostrar_imagen =" ";
- $miniatura = "
- $uri";
-
- }else {
- $miniatura ="i$identificador ";
- $mostrar_imagen = " ";
-
-
-
- }
-
- //
- //$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- if($plantilla[0] !="" ) {
- $impresion = mostrar_identificador($identificador,"","landingpage","","");
- } else{
- $contenido = mostrar_identificador($identificador,"","","","");
- $impresion = "
-
-
-
-
-
-
-
-
-
-
-
-
- $contenido
- $miniatura
-
-
- $mostrar_imagen
-
-
-
-
-
-
-
-
-
-
-
- ";
-
- }
- if($_SESSION[id_empresa] !=""){
-/// $edicion =" ";
- $edicion =" Editar ";
- }else {$edicion="";}
- $linea = "
-
-
- $impresion
- $edicion
-
-
-
-
- -
-
-
- ";
-
- return $linea;
- }
-
-
-function landingpage_contenido_formulario($form,$registros,$pagina,$div_original){
- $cantidad = formulario_contar($form);
- $div="contenido_interior";
- //if($registros =="") {$registros ="10";}
- $consulta= "SELECT control FROM form_datos WHERE form_id = '$form' GROUP BY control ORDER BY id DESC ";
- $id_empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- //$sql=mysql_query($consulta,$link);
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysql_query($consulta_limite,$link);
-
- $paginacion ="";
- $paginacion .= $indice;
-/*
- /// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysql_query($consulta_limite,$link);
- $page= $pagina;
- @$pages= ceil($cantidad / $registros); //13; // Hardcoded for testing purpose
- $limit= 20 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
-
- $paginacion = "";
-
- */
-
- //// PAGINACION
-if (mysql_num_rows($sql)!='0'){
- $linea=" ( $cantidad ) $paginacion";
- $fila = 1;
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
- $impresion = mostrar_identificador($row['control'],"","landingpage","","");
- $imagen = buscar_imagen($form,$row['control'],"","$id_empresa[0]");
- if($imagen !="") { $clase = "col-lg-5 col-sm-6";}else {$clase = "col-lg-12 col-sm-12";}
- $uri = " Ver mas ... ";
- $linea .= landingpage_contenido_identificador($row['control']);
- }
- $resultado_linea="$linea
";
- }
- if($div_original=="") {
-
- return $resultado_linea;
- }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$linea");
-
- return $respuesta;
-
- }
- }
-$xajax->registerFunction("landingpage_contenido_formulario");
-/*
-$respuesta = new xajaxResponse('utf-8');
-$resultado =" $mensaje Procesando ... ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-
-*/
-function landingpage_contenido($id_empresa){
-$consulta= "SELECT * FROM form_id WHERE publico ='1' AND id_empresa= '$id_empresa' ORDER BY orden ASC";
-$miniatura ="";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- $linea="";
-if (mysql_num_rows($sql)!='0'){
-
- $fila = 1;
- //include("includes/datos.php");
- $error_token = "";
- $contenido = "";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; } else {$error_token = "";}}
- while( $row = mysql_fetch_array( $sql ) ) {
- $link = " Consultar información ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- if($ultimo_mapa[0] !="") {
- $campos = explode(" ",$ultimo_mapa[0]);
- $lat = $campos['0'];
- @$lon = $campos['1'];
- @$zoom = $campos['2'];
-
- if($error_token != 1) {
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/pin.png");
- $miniatura = "
-
-
- "; }else{ $miniatura ="No se ha definido un token de mapbox
";}
- }
- if($geo[0] !='') { $mapa= "$miniatura ";}else {$mapa='';}
- $imagen =" ";
- $contenido ="
- $row[nombre]
- $row[descripcion]
";
-
- if ( $fila%2==0){
- $linea .= "
-
-
-
-
-
-
-
-
-
- $contenido
- $link
-
- $mapa
-
-
-
-
-
-
-
-
- ";
-
- }else{
- $linea .= "
-
-
-
-
-
-
-
- $contenido
- $link
- $mapa
-
-
-
-
-
-
- ";
- }
-
-
- //$linea .= "$fila $plantilla$row[nombre] ";
- $fila++;
- }
- }
- $linea ="
-
- ";
-return $linea;
-}
-
-function buscar_imagen($form,$control,$tipo,$empresa) {
- $imagen="";
- if($control !="") { $w_control = "AND form_datos.control ='$control'";}else{$w_control ="";}
- if ($form ==""){
- $consulta = "SELECT form_datos.id_empresa, contenido , campo_nombre , id_campo FROM form_id, form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_id.id = form_datos.form_id
- AND form_datos.id_empresa = '$empresa'
- AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $imagen = mysql_result($sql,0,"contenido");
- }
-if($tipo == "consulta") { return $consulta; }
- return $imagen;
-
- }
-$publico = remplacetas('form_id','id',"$form",'publico',"") ;
-if($publico[0] !="0" ){
-$campo_imagen = buscar_campo_tipo("$form","15");
-$imagen = remplacetas('form_datos','form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ;
-//$imagen = "$imagen[0]";
-return $imagen[0];
-}
-return;
-}
-
-function wait($div,$mensaje){
-$respuesta = new xajaxResponse('utf-8');
-$resultado =" $mensaje Procesando ... ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-
-function campos_tabla($filtro,$div) {
-$mio ="";
-$lineas ="";
-$w_empresa ="";
-$w_especialista ="";
-if($filtro == 'id_empresa') { $w_empresa = " AND id_empresa = '$_SESSION[id_empresa]' ";}
-if($filtro == 'id_especialista') { $w_especialista = " AND id_especialista = '$_SESSION[id]' ";}
-if($filtro == 'llenos') {
-$consulta= " SELECT * , form_campos.id as id FROM form_campos, form_datos WHERE form_campos.id = form_datos.id_campo $w_empresa $w_especialista GROUP BY id_campo ORDER BY campo_area, campo_nombre ";
-}elseif($filtro == 'vacios') {
-$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_datos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-}else{
-$consulta= " SELECT * FROM form_campos WHERE id = id $w_empresa $w_especialista ORDER BY campo_area, campo_nombre ";
-}
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- //$div = "div_tabla_campos";
- $filtros = "
-
-
-
- Seleccione
- Todos
- Mis campos
- Mi empresa
- Vacios
- Llenos
-
-
-
- ";
- if (mysql_num_rows($sql)!='0'){
- while( $row = mysql_fetch_array( $sql ) ) {
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"") ;
- $campo_tipo ="$tipo_nombre[0] ";
- if($_SESSION['id_empresa'] == $row['id_empresa']) {
- $row['campo_nombre']= editar_campo("form_campos","$row[id]","campo_nombre","","","","");
- $row['campo_descripcion']= editar_campo("form_campos","$row[id]","campo_descripcion","","","","");
- $row['campo_area']= editar_campo("form_campos","$row[id]","campo_area","","","","");
- $row['activo']= editar_campo("form_campos","$row[id]","activo","","","","","");
- $accion = " ";
- $class='success';
- }else {
- $class='';
- $accion ="";
- }
- if($_SESSION['id'] == $row['id_especialista']) {
- $row['id_especialista'] = " $row[id_especialista]";
- }
-
- $lineas .= "$row[id] $row[campo_nombre] $row[campo_descripcion] $campo_tipo $row[campo_area] $row[activo] $row[id_empresa] $row[id_especialista] $mio $accion ";
- }
- $tabla = "
-
-
- id Nombre Descripcion Tipo
- $lineas
-
-
- ";
- }
- if($div !=""){
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$tabla");
- return $respuesta;
- }
- else{
- $resultado = "$filtros $tabla";
- return $resultado;
-}
-}
-$xajax->registerFunction("campos_tabla");
-
-function remplacetas_noid($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysql_query($consulta,$link);
-if (@mysql_num_rows($sql)!=0){
-$resultado[] = mysql_result($sql,0,$por);
-$resultado[] = mysql_result($sql,0,"$campo");
-$resultado[] = $consulta;
-$resultado[] = mysql_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-
-
-function contar_visitas($id,$tipo) {
-$id_visitas = remplacetas('form_parametrizacion','campo',$id,'id'," tabla='form_id' AND opcion='$tipo'") ;
-$visitas = remplacetas('form_parametrizacion','id',$id_visitas[0],'descripcion',"") ;
-$cantidad = $visitas[0]+1;
-if($visitas[0] =="") {
- $consulta = "INSERT INTO form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'";
- }
-else {
- $consulta = "UPDATE form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'
- WHERE id ='$id_visitas[0]' LIMIT 1";
-}
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- mysql_real_escape_string($consulta);
- $sql=mysql_query($consulta,$link);
-$cantidad = "$cantidad $_SESSION[analizador]";
-return $cantidad;
-}
-
-
-function geocoder($valor,$campo){
-$respuesta = new xajaxResponse('utf-8');
-if(strlen($valor) > 3) {
-$valor = urlencode($valor);
-$json = "https://nominatim.openstreetmap.org/search.php?format=json&limit=5&addressdetails=1&q=$valor";
-$data = file_get_contents("$json");
-$geocoder = json_decode($data, true);
-if($data ==="[]") {$vacio="
-
- No se encontraron resultados
-";}
-
-foreach ($geocoder as $clave => $valor) {
- $ciudad = $valor['address']['city'];
- $municipio = $valor['address']['town'];
- $pais = $valor['address']['country'];
- $departamento = $valor['address']['state'];
- $licencia= $valor['licence'];
- $link = "milfs/mapero.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo";
- $linea .= "
-
-
- $valor[display_name]
-
- $ciudad $municipio $pais $departamento
-
-
-
- ";
-//foreach ($valor as $clave => $valor) { $linea .= "CLAVE : $clave > VALOR: $valor"; }
-}
-$resultado = "
-
- $vacio $licencia
-
";
-}
- //$div_contenido = "$div
";
- //$respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("muestra_geocoder","innerHTML","$resultado");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("geocoder");
-
-
-function mostrar_psi(){
-$respuesta = new xajaxResponse('utf-8');
-include("psi.php");
- //$div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_psi");
-
-function multiempresa_crear($tabla,$formulario,$div) {
-$formulario = limpiar_caracteres($formulario);
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '".mysql_real_escape_string($v)."',";
- }
- $valores = "$valores id_responsable = '$_SESSION[id]'";
-
-$respuesta = new xajaxResponse('utf-8');
-
- $insertar = "INSERT INTO $tabla set $valores";
- $sql=mysql_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
-
-
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("multiempresa_crear");
-
-function nombre_dominio($url){
- $protocolos = array('http://', 'https://', 'ftp://', 'www.');
- $nombre = explode('/', str_replace($protocolos, '', $url));
- // $nombre = substr($url[0],0,-strlen(strstr($url[0],"." )));
- return $nombre[0];
-}
-
-function configurar_dominio ($id,$tipo) {
-$directorio = "/opt/tupalescripts/";
-$dominio = remplacetas('empresa','id',"$id",'web','') ;
-$nombre = nombre_dominio($dominio[0]);
-$nombre = str_replace(".", "_", $nombre);
-if($tipo =="crear" ) {
- $ar=fopen("$directorio".$id."","w"); //or die("Problemas en la creacion");
- $variables=fopen("$directorio"."variables","w"); //or die("Problemas en la creacion");
- $contenido = "dominio=$dominio[0] \nnombre=$nombre \nidem=$id \n";
-
- fputs($ar,"$contenido");
- fputs($variables,"$contenido");
-
- fclose($ar);
- fclose($variables);
-
- $resultado ="Se configuró el dominio para $nombre ";
- }else {
- $borrar=fopen("$directorio"."borrar","w");
- fputs($borrar,"nombre=$nombre");
- fclose($borrar);
- unlink("$directorio".$id."");
- $resultado ="Se ELIMINÓ el dominio $nombre ";
- }
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("dominio_$id","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("configurar_dominio");
-
-
-function multiempresa($tabla,$div){
- if($_SESSION['id'] == 1) {
- if($div =="") {
- $div="contenido";
- $resultado =" Configuración multiempresa ";
- return $resultado;
- }
-$link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$consulta = "SELECT * FROM empresa ";
-$sql=mysql_query($consulta,$link);
-
-$resultado="
-$name
-Id Nombre Sigla Email Web Dirección Teléfono
- " ;
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
-$razon_social= editar_campo("empresa",$row['id'],"razon_social","","","");
-$sigla= editar_campo("empresa",$row['id'],"sigla","","","");
-$email= editar_campo("empresa",$row['id'],"email","","","");
-$web= editar_campo("empresa",$row['id'],"web","","","");
-$direccion= editar_campo("empresa",$row['id'],"direccion","","","");
-$telefono= editar_campo("empresa",$row['id'],"telefono","","","");
-$estado= editar_campo("empresa",$row['id'],"estado","","","");
-
-if($row[id] !=1) {
- $dominio ="";
- $archivo= "/opt/tupalescripts/$row[id]";
- //$archivo= "tmp/$row[id]";
- if(file_exists("$archivo")) {
- $configuracion_dominio="ok";
- $configuracion_dominio=" ";
- }
- else{
- $configuracion_dominio=" ";
- }
- $acciones = " Estado: $estado
-
- $configuracion_dominio";
-
- }
-$resultado .= "$row[id] $razon_social $sigla $email $web $direccion $telefono $acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-Agregar empresa
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa");
-
-
-
-
-
-
-function contar_valores_formulario($campo,$key,$valor){
-$consulta = "SELECT distinct($campo) as cantidad FROM form_datos WHERE $key LIKE '$valor' ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = mysql_num_rows($sql);
-//$resultado = mysql_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-function listar_campos_formulario($id_form,$tipo){
- $tipo="$tipo";
-$consulta = "SELECT distinct(id_campo),campo_nombre FROM form_datos,form_campos WHERE form_id = '$id_form' AND form_datos.id_campo = form_campos.id ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-while( $row = mysql_fetch_array( $sql ) ) {
- if($tipo=="nombres"){
-$resultado[] = "$row[campo_nombre]";}
- elseif($tipo=="select"){
- $option .= "$row[campo_nombre] ";
- }
- else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){
-$resultado = "
-
- Campo
- $option
- ";
-
-}
-//$resultado = mysql_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-//($formulario,$div,$registros,$pagina,$formato)
-function consultar_formulario($form,$registros,$pagina,$tipo){
- $imagen ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
-$respuesta = new xajaxResponse('utf-8');
-//if(is_array($form)) {$id_form = $form['id_form'];}else { $id_form = $form;}
-$id_empresa = $_SESSION['id_empresa'];
-if(is_array($form)) {
- $fecha_inicio = $form["inicio"];
- if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
- $fin = $form["fin"];
- if( $fin !="") { $fechas = " AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') AND UNIX_TIMESTAMP('$fin 23:59:59')";}
- $id_form = $form['id_form'];
- @$id_campo = $form['id_campo'];
- $busqueda = $form['busqueda'];
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$form[busqueda]%%'";}else{$busca ='';}
-if($id_campo !=''){$campo ="AND id_campo = '$id_campo'";}else{$campo ='';}
-}else{
-$id_form = $form;
-}
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' AND form_datos.id_empresa = '$id_empresa' $busca $campo $fechas GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql_total=mysql_query($consulta_principal,$link);
-$total_registros = mysql_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- if($tipo == "csv" ) {$consulta_limite = "$consulta_principal";}
- else{$consulta_limite = $consulta_principal.$limite;}
- $sql=mysql_query($consulta_limite,$link);
-
-//$sql=mysql_query($consulta_principal,$link);
-if (mysql_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-$fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $campos = listar_campos_formulario($id_form,"select");
- $peticion = "
-
-
-
-
-
-
-
-
- ";
-/////// FILTRO
-
-$boton_borrar = "
-
-
-
- ";
-
- if($formato!='csv'){
- $boton_exportar = " Exportar ";}
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
-
- $paginacion = "";
-
-
-
-
- $encabezado = "
- ";
-
- $total_registros = mysql_num_rows($sql);
- $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- $listado_nombres = "Identificador $listado_nombres ";
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-while( $row = mysql_fetch_array( $sql ) ) {
-//$cantidad_campos = contar_valores_formulario("id_campo","control","$row[control]");
-
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-foreach($listado_campos as $campo=>$valor){
- //$imagen = buscar_imagen($if_form,$row['control'],"","");
- $contenido = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo ='$valor' ") ;
- $id_dato = remplacetas('form_datos','control',$row['control'],'id',"id_campo ='$valor' ") ;
- $tipo_campo = remplacetas('form_campos','id',$valor,'campo_tipo',"") ;
- if($tipo_campo[0] ==15 AND $contenido[0] != "") {
- @$listado_campos .= "
-
-
-
-
-
- ";
- }
- elseif(($tipo_campo[0] ==1 or $tipo_campo[0] ==2 or $tipo_campo[0] ==3 or $tipo_campo[0] ==4 or $tipo_campo[0] ==12 or $tipo_campo[0] ==13 )AND $contenido[0] != "") {
- $editar_contenido = editar_campo("form_datos","$id_dato[0]","contenido","");
- @$listado_campos .= "$editar_contenido ";
- }
- else {
-@$listado_campos .= "$contenido[0] ";
-}
-
- }
- if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
- $menu ="
-
-
-
-
-
- ";
-$lineas .= " $menu$row[control] $listado_campos ";
-
- }
-
-$tabla ="
-
- $listado_nombres
-
- $lineas
-
-
";
-$resultado = "
-$encabezado
-
-
-
-$tabla
-
-
-";
- }
-else {
-$resultado ="
No hay resultados $consulta_limite";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-if($tipo =="csv") {
-$html = str_get_html($tabla);
- // header('Content-type: application/ms-excel');
- // header('Content-Disposition: attachment; filename=sample.csv');
- $nombre_archivo ="tmp/Prueba_Formulario_".mktime()."_".$_SESSION['id'].".csv";
- //$fp = fopen("php://output", "w");
- $fp=fopen($nombre_archivo , "w");
- foreach($html->find('tr') as $element)
- {
- $td = array();
- foreach( $element->find('th') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- if (!empty($td)) {
- fputcsv($fp, $td);
- }
-
- $td = array();
- foreach( $element->find('td') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- fputcsv($fp, $td);
- }
-
- fclose($fp);
-$boton_descarga ="Descargar ";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = " $datos
";
- $div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- if($tipo =="modal") {
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-}
- return $respuesta;
-
-}
-$xajax->registerFunction("consultar_formulario");
-
-
-function datos_array($identificador) {
-
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$consulta ="SELECT * FROM form_datos WHERE control = '$identificador'
-GROUP BY id_campo ORDER BY timestamp DESC ";
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
-$array = array();
-$array[identificador] = "$identificador";
-while($row = mysql_fetch_array( $sql ))
- {
-
-
- $contenido = remplacetas('form_datos','id',$row[id],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id],'id_campo',"") ;
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- //$array[id_campo] = $row[id_campo];
-
-//// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$row[form_id]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
-/// PRIVACIDAD
-if($privado !='1') {
- $array[$nombre_campo[0]] = "$contenido[0]";
- $array['timestamp'] = "$row[timestamp]";
- $array['proceso'] = "$row[proceso]";
- $array['id'] = "$row[id]";
- $array['orden'] = "$row[orden]";
- //$array[] = $row;
-
-}
- }
- return $array;
-}
-
-function parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div){
- $respuesta = new xajaxResponse('utf-8');
-if($tabla =="") {
-$resultado = "
-
-
-
- Hiperparametrizador Experimental
-
-
-
-
- Tabla
-
- *Campo obligatorio
-
-
-
-
-
-
- Descripción
-
-
-
-
-
-";
-return $resultado;
-}
- $link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = '".mysql_real_escape_string($tabla)."' AND campo ='".mysql_real_escape_string($campo)."' AND opcion ='".mysql_real_escape_string($opcion)."' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = '".mysql_real_escape_string($tabla)."' , campo ='".mysql_real_escape_string($campo)."', opcion ='".mysql_real_escape_string($opcion)."', descripcion ='".mysql_real_escape_string($descripcion)."', visible='1' , id_empresa = '$_SESSION[id_empresa]'";
-$sql=mysql_query($consulta,$link);
-if($sql) {
- if($descripcion =="") {
- $respuesta->addAlert("ATENCION: Se grabó un campo vacío, esto no es necesariamente un error pero indica que el valor de parametrización se sobreescribió como vacío. ");
- }
- $resultado = " $opcion : $descripcion";
- $respuesta->addAssign("$div","innerHTML",$resultado);
-
- }else {
-//$respuesta->addAlert("$consulta");
-}
-//$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("parametrizacion_linea");
-
-
-
-
-function email_contenido($id,$control,$id_campo,$email_envio){
-
-if($email_envio =="") {
- $email = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$id' AND id_campo ='$id_campo' ") ;
- $formulario =
-
- "
- ";
-return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
-
- $validar = validar_email($email_envio);
- if($validar == '0') {
- $respuesta->addAssign("input_email_envio","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('email_envio').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email = remplacetas("empresa","id","1","email","");
- $email = remplacetas("empresa","id","$id_empresa","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
-
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $razon_social[0] <$reply[0]>\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $propietario[0]" . "\r\n";
-$impresion = formulario_imprimir("$id","$control","email");
-
-$impresion ="
-$encabezado
-$impresion
";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-
-$impresion
-
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]i$control
-Saludos de MILFS
-";
- if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="Se envió un email a $email_envio "; }else {$exito .="error enviando correo";}
-
-$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("email_contenido");
-
-
-function mapa_ficha($id) {
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $descripcion_limpia = strip_tags($descripcion[0]);
- $nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
- $id_empresa = $id_empresa[0];
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $imagen = " ";
- $datos ="$nombre[0] $descripcion[0] ";
- $empresa = "$razon_social[0] |
$web[0] | $direccion[0] | $email[0]
";
-
- //$prueba = json_decode($prueba);
-
- $resultado ="
-
-
-
-
- $imagen
-
-
-
$nombre[0]
- $descripcion_limpia[0]
-
-
-
-
$razon_social[0]
-
MILFS
-
-
-
- ";
- return $resultado;
-}
-
-function formulario_parametrizacion($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($accion =='categorias') {
-
- }
- elseif($accion =='grabar'){
-
- }
- else {
- $listado ="
-
-
-
-
-
-
Parametrización
-
Parametrización del formulario $nombre[0]. Por favor seleccione una opción
-
-
-
-
- ";
- $respuesta->addAssign($div,"innerHTML",$listado);
- return $respuesta;
- }
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "Filtro
-
- Todos ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= " ";
- }
-else{$resultado = 'nada';}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_parametrizacion");
-
-
-
-function lista_categorias($perfil,$categoria,$tipo) {
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
- $categoria_campo = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- if($categoria_campo >0 ) {
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$categoria_campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "";
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $icono = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$row[md5_contenido]'") ;
- if($icono[0] =='') {
- $icon = "$_SESSION[site]milfs/images/iconos/pin.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- $contenido= substr($row[contenido],0, $length = 15);
-$resultado .= "
$contenido ";
- }
-$resultado .= "
";
- }
-else{$resultado = '';}
-}
-return $resultado;
-}
-
-function parametrizacion_categoria($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-$categorias = lista_categorias($perfil,$categoria,$tipo);
-if($accion =='categorias') {
- $resultado = "
-
- La categorización se usa para filtrar los datos de un formulario en categorias que pueden ser usadas por ejemplo para diferenciar los datos en un mapa.
- Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza
- $categorias
-
-
-
-
- Icono para la categoría
-
-
- URL
-
-
-
-
- Grabar
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- $respuesta -> addScript("xajax_formulario_campos_select('$perfil','parametrizacion')");
- return $respuesta;
- }
- elseif($accion =='grabar'){
- if($form[tipo] =='categoria') {
- $url_icon = "$form[icon]";
- $es_imagen = es_imagen("$url_icon");
- $altura = GetImageSize($url_icon);
- $altura= $altura[1];
- if($form[id_campo] =='') { $error = "Seleccione un campo";}
- elseif($form[campo_filtro] =='') { $error = "Seleccione Filtro";}
- elseif(!$es_imagen ) { $error = " [ $url_icon ] no es una imagen válida para el ícono";}
- elseif($altura > 500 ) { $error = " El ícono no debe tener mas de 300 pixeles de alto.";}
- elseif($form[icon] =='') {
- $error = "Escriba la dirección del ícono";
- }
- else {$error='';}
- if( $error !='') {
- $respuesta -> addAlert("$error $revisar_url ");
- return $respuesta;
- }else{
- $categoria_icono[tabla] = "form_id";
- $categoria_icono[campo] = "$form[perfil]";
- $categoria_icono[opcion] = "$form[tipo]:icon:$form[campo_filtro]";
- $categoria_icono[descripcion] = "$url_icon";
- $categoria_icono[visible] = "1";
- $categoria_icono[accion] = "grabar";
- $grabar_icono = parametrizacion($categoria_icono);
-
- $categoria_campo[tabla] = "form_id";
- $categoria_campo[campo] = "$form[perfil]";
- $categoria_campo[opcion] = "$form[tipo]:campo";
- $categoria_campo[descripcion] = "$form[id_campo]";
- $categoria_campo[visible] = "1";
- $categoria_campo[accion] = "grabar";
- $grabar_campo = parametrizacion($categoria_campo);
-
- $categoria_filtro[tabla] = "form_id";
- $categoria_filtro[campo] = "$form[perfil]";
- $categoria_filtro[opcion] = "$form[tipo]:filtro:$form[id_campo]";
- $categoria_filtro[descripcion] = "$form[campo_filtro]";
- $categoria_filtro[visible] = "1";
- $categoria_filtro[accion] = "grabar";
- $grabar_filtro = parametrizacion($categoria_filtro);
-
-
- $resultado =" $form[campo_filtro] $form[id_campo] ($altura ) [$grabar_icono]";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-
- }/// fin de parametrizacion categorias
- }
-}
-$xajax->registerFunction("parametrizacion_categoria");
-
-
-function parametrizacion_plantilla_campos($formulario){
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-while( $row = mysql_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen =" "; $identificador=" ";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= " $imagen $row[campo_nombre] [$row[id_campo]] ";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-
-
-
-
-
-
-
- $listado
- Fecha
-
-
-";
-}
-return $resultado;
-}
-
-
-function parametrizacion_plantilla($formulario,$div,$valores) {
- $respuesta = new xajaxResponse('utf-8');
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$link=Conectarse();
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-mysql_query("SET NAMES 'utf8'");
-if($valores =="boton") {
-$consulta ="SELECT * FROM form_parametrizacion WHERE campo = '$formulario' AND `opcion` REGEXP '^plantilla:' ORDER BY opcion";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $campos_opcion = explode(":",$row[opcion]);
- $plantilla_nombre = $campos_opcion[1];
-$listado .= "$row[opcion] ";
-$li .= "
- $plantilla_nombre
- Editar
- Editar
-
- ";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-
-
-
-";
-$lista ="
-
-Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas HTML5 , CSS3 y clases de Bootstrap
-
-
- Nombre
- Editar
- Ver
-
-$li
-
-Nueva plantilla
-";
- $respuesta->addAssign("$div","innerHTML","$lista");
- return $respuesta;
-
-}
-else {
-
-$resultado ="
-
-
-
Aún no se han definido plantillas para este formulario
- Crear una plantilla
-
-
-";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-
-elseif($valores =="formulario" OR is_numeric($valores)) {
- $campos = parametrizacion_plantilla_campos("$formulario");
- $descripcion = remplacetas('form_parametrizacion','id',$valores,'descripcion',"") ;
- $opcion = remplacetas('form_parametrizacion','id',$valores,'opcion',"") ;
- $campos_opcion = explode(":",$opcion[0]);
- $plantilla_nombre = $campos_opcion[1];
- include("includes/bootsrap_class_list.php");
-$resultado ="
-
-
-
-
-
-
-
- A
A
')); \">
-
-
A
-
A
-
div
-
H1
-
H2
-
H3
-
-
<li>
-
-
MB
-
-
-
-
-
- $descripcion[0]
-
-
- $campos
-
-
-
-
-";
-
-}
-
-elseif(is_array($valores)) {
- $texto=str_replace('"',"'",$valores[text_contenedor]);
-$plantilla = htmlentities($texto);
-if($valores[nombre_plantilla] == "") {
- $respuesta->addAlert("No ha especificado un nombre para la plantilla");
- $respuesta->addAssign("input_nombre_plantilla","className","input-group has-error");
- return $respuesta;
- }
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='plantilla:$valores[nombre_plantilla]' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='plantilla:$valores[nombre_plantilla]', descripcion =\"$plantilla\", visible='1' ";
-$sql=mysql_query($consulta,$link);
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-$datos = contenido_mostrar("$formulario","$ultimo[1]",'',"$valores[nombre_plantilla]");
-$preview = " $valores[nombre_plantilla] $datos ";
- $div_contenido = "$preview
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- $respuesta->addAssign("titulo_modal","innerHTML","$resultado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- return $respuesta;
-
-}
-else{
-$resultado ="";
-}
-$resultado .= "";
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla");
-
-
-function parametrizacion_titulo($formulario,$div,$valores) {
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_orden = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'orden'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$campo_orden_nombre = remplacetas('form_campos','id',$campo_orden[0],'campo_nombre',"") ;
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if($valores =="") {
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-
-$sql=mysql_query($consulta,$link);
-
-
-
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "$row[campo_nombre] [$row[id_campo]] ";
-}
-
-//($tabla,$campo,$opcion,$descripcion,$div)
-
-$resultado = "
- Campos especiales
-
- Campo de Título actual $campo_titulo_nombre[0] [$campo_titulo[0]]
- Campo de Orden actual $campo_orden_nombre[0] [$campo_orden[0]] (Este campo debe ser del tipo numérico)
-
-
-
- Seleccione campo
-
-
- Borrar el valor actual
- $listado
-
-
-
-
-
- Usar como Título
-
-
-
- Usar como Orden
-
-
-
-
-
-
-
-";
-}
-}else {
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='titulo' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='titulo', descripcion ='$valores', visible='1' ";
-$sql=mysql_query($consulta,$link);
-if($sql){
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$resultado ="addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_titulo");
-
-
-function mostrar_modal($form,$control,$plantilla){
-$respuesta = new xajaxResponse('utf-8');
-if( $control == "") {
- $datos = formulario_areas($form,"");
-}else {
-$datos = contenido_mostrar("$form","$control",'',"$plantilla");
-}
-$div ="contenido_de_modal";
-
-$resultado = "
-
- $datos
-
-
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_modal");
-
-function portal_filtro_cadena($formulario,$id_campo,$control,$div,$plantilla){
-$cadena = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$formulario' AND id_campo ='$id_campo' ") ;
-$consulta ="SELECT * FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' AND contenido = '$cadena[0]'
- GROUP BY control ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-
- $datos = contenido_mostrar("$formulario","$row[control]",'',"$plantilla");
- if($plantilla == "") {
-$listado .= "
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-
- $listado
-
-";
-}
-
-if ($div ==""){$div="mostrar_contenido";}
-else {$div = "$div";}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("portal_filtro_cadena");
-
-
-
-function portal_filtro_campos($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $formulario_nombre[0] / $campo_nombre[0]
- {json}
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_filtro_campos_select($formulario,$id_campo,$div,$plantilla){
-
-if($id_campo =="") {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- if($id_campo =="") { $resultado = ""; return $resultado;}
- }
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT *
- FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario'
- AND form_campos.id = form_datos.id_campo
- AND form_datos.id_campo = '$id_campo'
- GROUP BY contenido
- ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $campo_nombre[0]
- $listado
-
-";
-}
-$resultado ="
-
- Filtro
- $resultado
-
";
-return $resultado;
-}
-
-
-
-function portal_listado_campos($formulario){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_contenido_campos.orden";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[campo_nombre] ";
-}
-$resultado = "
-
-
- $formulario_nombre[0]
- {json}
- $listado
-
-
-";
-}
-return $resultado;
-}
-
-
-function portal_listado_formularios(){
-
-$consulta ="SELECT * FROM form_id WHERE publico = '1'";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[nombre] ";
-}
-$resultado = "
-
- Set de datos
-
- ";
-}
-return $resultado;
-}
-
-
-function insertar_linea($tabla,$key,$campo,$valor,$control,$orden,$div){
- $respuesta = new xajaxResponse('utf-8');
- //$key = limpiar_caracteres($key);
- //$valor = limpiar_caracteres($valor);
-if($_SESSION[id_empresa] =="") {
- $empresa = remplacetas('form_id','id',"$key",'id_empresa','') ;
- $empresa = $empresa[0];
- }else {$empresa=$_SESSION[id_empresa];}
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
-if($tabla =="form_datos") {
-
-$consulta = "INSERT INTO form_datos ( orden, timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( '$orden',UNIX_TIMESTAMP(),'$_SESSION[id]','$empresa','$key',$ip ,'$control', '$campo' , '$valor')
- ";
-
-}
-mysql_real_escape_string($consulta);
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- if($valor !="") {
- $sql=mysql_query($consulta,$link);
-}
-if($sql) {
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
- }
-else {
-return " $consulta ";
-}
-}else {
-return "No se inserto $consulta ";;
-}
-}
-$xajax->registerFunction("insertar_linea");
-
-
-function select_combo($id,$tabla,$campo_valor,$campo_descripcion,$tipo){
-
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$Campo_descripcion = ucwords($campo_descripcion);
-$Campo_valor = ucwords($campo_valor);
-$nombre=$tabla."_".$campo_valor;
-$div=$nombre."_hijo";
-$combo = $id."_".$tabla;
-if($tipo!=''){
-$respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE $campo_valor = '$tipo' AND id_empresa = '$id_empresa'";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado .= "
$Campo_descripcion
-
";
-$resultado .= " Seleccione $Campo_descripcion ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[$campo_valor] $row[$campo_descripcion] ";
- }
-$resultado .= " ";
- }
-
-
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;}
-ELSE{ /// si no especifica $tipo
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE id_empresa = '$id_empresa' GROUP BY $campo_valor ";
-$sql=mysql_query($consulta,$link);
-///$Documento=mysql_result($grupo,0,"documento_numero");
-$resultado = "
$Campo_valor
-
";
- $resultado .= " Seleccione $Campo_valor ";
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "$row[$campo_valor] ";
- }
- }
-$resultado .= "
";
- }/// FIN de $tipo no especifico
-
-return $resultado;
-}
-$xajax->registerFunction("select_combo");
-
-
-
-function crear_session ($form,$control) {
-
-$consulta = " SELECT distinct(id_campo),contenido FROM form_datos WHERE control = '$control' AND form_id = '$form' order by timestamp DESC ";
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!=0){
- $resultado ="
";
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $id_form = $row[form_id];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre = strtolower( str_replace(' ','_',$campo_nombre[0]));
- $_SESSION[$nombre] = $row[contenido];
- $resultado .= "$_SESSION[$nombre] ";
- }
- $resultado .= " ";
- }
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla,$tipo,$timestamp){
- $resultado="";
- $tipo="$tipo";
- if($form != "") {$id_form = "$form";
-
- $datos_form ="
-
$nombre[0]
-
$descripcion[0]
- ";
-
- }else {$id_form ="";}
-
- $impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp);
- if($impresion !="") {
- $visitas= contar_visitas($control,'identificador') ;
- $visitas= "
$visitas";
- //$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- //$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
- $interaccion = interaccion_identificador("$control");
- if($tipo=="") {
- $resultado = "
-
-
- $visitas
- $datos_form
-
- $impresion
-
- $interaccion
- $edicion
-
-
"; }else {
-$resultado = "$impresion";
- }
- }else{
-$resultado ="
No hay resultados ";
- }
-
-return $resultado ;
-}
-
-function buscar_campo_nombre($form_id,$nombre) {
-
-$consulta ="SELECT form_campos.id FROM `form_campos` , form_contenido_campos WHERE `campo_nombre` = '$nombre' AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='$form_id' LIMIT 1";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- $id_campo=mysql_result($sql,0,"id");
-return $id_campo;
-}
-
-function conversorSegundosHoras($tiempo_en_segundos) {
- $horas = floor($tiempo_en_segundos / 3600);
- $minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
- $segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
-
- return $horas . ':' . $minutos . ":" . $segundos;
-}
-
-function mensajes($tipo,$campos_form,$datos,$control) {
- $campo_remitente = $campos_form['remitente'];
- $campo_destinatario = $campos_form['destinatario'];
- $campo_asunto = $campos_form['asunto'];
- $campo_mensaje = $campos_form['mensaje'];
- $form_id = $campos_form['formulario_id'];
- $form_usuarios = $campos_form['formulario_usuarios'];
- $campo_usuarios = $campos_form['campo_usuario'];
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='formulario') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
-
-//$campos = formulario_areas($form_id,'campos');
-$control_original = $control;
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
- $respuesta->addAssign("div_mensaje_$control_original","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo =='responder') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
- $remitente = buscar_campo_nombre("$form_id","Para");
- $destinatario = buscar_campo_nombre("$form_id","De");
- $mensaje = buscar_campo_nombre("$form_id","Mensaje");
- $asunto = buscar_campo_nombre("$form_id","Asunto");
-
- $asunto_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$asunto' AND control='$control'") ;
- $mensaje_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$mensaje' AND control='$control'") ;
- $remitente_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$remitente' AND control='$control'") ;
- $destinatario_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$destinatario' AND control='$control'") ;
-
-$formulario ="
-
-
-
-
-
-
-
-
- Asunto
-
-
-
- Mensaje
- $mensaje_value[0]
-
- ";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
-";
- $respuesta->addAssign("div_mensaje_$control","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo=="recuperar") {
-
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
-
- $consulta ="SELECT *, FROM_UNIXTIME(timestamp) as fecha , DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d') as dia, DATE_FORMAT(FROM_UNIXTIME(timestamp),'%H:%i') as hora FROM form_datos WHERE form_id ='$form_id' AND id_campo = '$campo_destinatario' AND contenido ='$_SESSION[usuario_milfs]' GROUP BY control, timestamp order by timestamp DESC ";
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-
- $mensajes = mysql_query($consulta,$link);
-// $destinatario ="$campo_destinatario"."[0]";
-// $para = buscador_campo("$campo_destinatario","$form_id","","$destinatario","","");
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
-
-
-
-$lista ="
-
-
-
-";
-while( $row = mysql_fetch_array( $mensajes ) ) {
- $asunto = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_asunto' AND control='$row[control]'") ;
- $mensaje = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_mensaje' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_remitente' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_usuarios",'contenido'," id_campo = '$campo_usuarios' AND control='$remitente[0]'") ;
- if($remitente[0] =='') {$remitente[0]="
Sistema";}
- $hoy=date('Y-m-d');
- $control = $row[control];
- if($hoy == $row[dia]){$momento = $row[hora];}else {$momento=$row[dia];}
-//function contenido_mostrar($id,$control,$div,$plantilla)
-//$contenido = contenido_mostrar("$form_id","$control","",'');
- $lista .="
-
- ";
-}
- // $respuesta->addAssign("div_mensaje","innerHTML",$lista);
- $lista .=" ";
- return $lista;
-
-}
-
-$resultado ="hola";
-
- $respuesta->addAssign("div_mensaje","innerHTML",$resultado);
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("mensajes");
-
-function revisar_campo_unico($id,$campo,$id_form,$valor) {
- $respuesta = new xajaxResponse('utf-8');
- $div= "div_$id";
- $existe = remplacetas('form_datos','form_id',"$id_form",'control'," BINARY contenido = '$valor' AND id_campo = '$campo'") ;
- if($existe[0] != "") {
- $texto ="El valor ya existe";
-$respuesta->addAssign("$div","className","text-danger");
-$respuesta->addAssign("input_$id","className","form-group has-error");
- }else{
- $texto ="";
-$respuesta->addAssign("$div","className","text-success");
-$respuesta->addAssign("input_$id","className","form-group has-success");
- }
-
- $respuesta->addAssign("$div","innerHTML",$texto);
- return $respuesta;
-}
-$xajax->registerFunction("revisar_campo_unico");
-
-
-
-function milfs_session($form_id,$campo_usuario,$campo_password,$tipo,$datos){
- $datos = mysql_seguridad($datos);
- $respuesta = new xajaxResponse('utf-8');
-// require ("milfs/includes/parametrizacion.php");
-
-if($tipo =="") {
-
-
-
-if($_SESSION[usuario_milfs]) {
- //$control = remplacetas('form_datos','control',"$_SESSION[control_usuario_milfs]",'contenido'," id_campo = '$campo_password' ") ;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$_SESSION[nombre_usuario_milfs]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
-//$email = "someone@somewhere.com";
-if($_SESSION[avatar_usuario_milfs] !="") {
- $avatar = $_SESSION[avatar_usuario_milfs];
-}else {
-$default = "https://tupale.co/milfs/images/avatar.png";
-$avatar = "https://www.gravatar.com/avatar/" . md5( strtolower( trim( $email[0] ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
-}
- $formulario = "
Hola $_SESSION[nombre_usuario_milfs] SALIR";
-}else {
-
- if($_SERVER['HTTP_HOST'] !="tupale.co" ) {
-$social_login="";
- }
- else {
-$social_login="
-
-
-";
- }
-$formulario ="
-$accion
-
-
-
-";
-
-
-}
-return $formulario;
-}
-elseif($tipo =='salir') {
- session_destroy();
- $respuesta->addScript("javascript:location.reload(true);");
-
-}
-elseif($tipo=='registrarse') {
- $modificable = remplacetas('form_id','id',$form_id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $formulario = "
Función no disponible, por favor comuníquese con el administrador código $_SESSION[id]
";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
- }
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-
-Registrarse
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-$boton
-
-
-";
-
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
- if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-
Usuario
-
-
-
Código de recuperación Deja este campo vacío si aun no tienes el código de recuperación
-
-
-";
-$boton ="
-
Solicitar clave
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-
-$boton
-
-
-
-";
- }else{
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- if($usuario[0] !="") {
- $password = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_password' ") ;
- if($datos[codigo] !="") {
- if( $datos[codigo] =="$password[0]" ){
- $control = remplacetas('form_datos','control',"$usuario[0]",'control'," id_campo = '$campo_password' ") ;
- $campos ="
-
-
-
-
-
-
-
- ";
-
- $formulario ="$campos";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
-
- }else {
- $respuesta->addAlert("El código no es correcto, por favor rectifíquelo o solicítelo nuevamente dejando el campo VACIO");
- return $respuesta;
- }
- }
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $formulario="$usuario[0] $password[0] // $campo_email[0] $email[0]";
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email_empresa = remplacetas('empresa','id','1','email','') ;
- $email_empresa = remplacetas('empresa','id','1','email','') ;
- $sigla = remplacetas('empresa','id','1','sigla','') ;
- $razon_social = remplacetas('empresa','id','1','razon_social','') ;
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] <$email_empresa[0]>\r\n";
- $headers .= "Reply-To: $razon_social[0] $email_empresa[0]\r\n";
- $headers .= "Return-path: $email_empresa[0]\r\n";
- $asunto= "[ $sigla[0] ] Código para recuperar contraseña ";
- $cuerpo ="
-
Hola $datos[usuario]
- El código para recuperar tu contraseña es:
-
$password[0]
- Regresa pronto :-)
-
- ";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="
Te hemos enviado un correo a $email[0] con el código de recuperación "; }
- else {$formulario ="
Error enviando correo ";}
-
- }else{
-
- $formulario="
No encontramos tu usuario $datos[usuario] . Por favor rectifícalo y prueba nuevamente ";
-
- }
-
-
- }
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='confirmar_recuperar') {
-
- if($datos[password] != $datos[confirmar_password]) {
- $respuesta->addAlert("Los valores no son iguales");
- return $respuesta;
-
- }
- $link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-
-
-
-
- $consulta="UPDATE form_datos SET contenido = MD5('$datos[password]')
- WHERE control ='$datos[control]'
- AND contenido ='$datos[codigo]'
- AND form_id ='$form_id'
- AND id_campo = '$campo_password' ";
-
- if (mysql_query($consulta,$link)){
-$resultado ="
Se cambió el password Por favor ingrese con sus nuevos datos
aquí ";
-$respuesta->addAssign("formulario_session","innerHTML",$resultado);
-return $respuesta;
- };
-
-
-
-}
-
-elseif ($tipo=='ingreso'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $password = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = MD5('$datos[password]') AND id_campo = '$campo_password'") ;
-
-if ( $usuario[0] != "" AND $usuario[0] === $password[0]) {
-$respuesta->addAssign("login_milfs","className"," has-success ");
-// $control_servicio = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$servicio' AND control = '$control_uid[0]'") ;
-$_SESSION['usuario_milfs'] = $usuario[0];
-$_SESSION['nombre_usuario_milfs'] = $datos['usuario'];
-$_SESSION['control_usuario_milfs'] = $usuario[0];
-$resultado ="
Gracias por regresar $_SESSION[nombre_usuario_milfs] ";
-$respuesta->addScript("javascript:location.reload(true);");
-}else {$resultado ="
Error Los datos no son correctos :( ";
-$respuesta->addAssign("login_milfs","className"," has-error ");
-$respuesta->addAssign("resultado","innerHTML",$resultado);
-return $respuesta;
-}
-
-$respuesta->addAssign("formulario_session","innerHTML",$resultado);
-//$respuesta->addAlert("resultado");
-
-
-}
-elseif ($tipo=='nuevo'){
-
-$usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-
-$campos_consulta_obligatorio="
- SELECT id_campo, obligatorio
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
- AND obligatorio='1'
- ";
-
-
- $campos_obligados= mysql_query($campos_consulta_obligatorio,$link);
-
-while( $row = mysql_fetch_array( $campos_obligados ) ) {
-$campo_valor=$datos[$row[id_campo]][0];
-
-if($row[obligatorio]=='1'){
- $obligatorios .= "$row[id_campo]";
-if($campo_valor == '' && $row[obligatorio]=='1'){
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
-$error = "Revise campos obligatorios $campo_nombre[0]";
-
- }else {$error ="";}
-if($error !=''){
-$respuesta->addAlert($error);
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
- return $respuesta; }
- }
-
-
- }/// fin de registros obligatorios
-
-
-
- $campos_consulta="
- SELECT id_campo, obligatorio, id_empresa
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
-
- ";
- $campos= mysql_query($campos_consulta,$link);
-$ip = obtener_ip();
-$control = $datos['control'];
-
- /// incluyo servicio
-
-
- while( $row = mysql_fetch_array( $campos ) ) {
-
- $campo_valor=$datos[$row['id_campo']][0];
-
- $campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
- /// Si el campo es password (18) se guarda su equivalente en md5
- if($campo_tipo[0] =="18") {
- $campo_valor = MD5("$campo_valor");
- }
- // SI EL CAMPO ES UNICO O EMAIL SE REVISA QUE NO EXISTA
- elseif($campo_tipo[0] =="19" OR $campo_tipo[0] =="12" OR $campo_tipo[0] =="13" ) {
- $existe = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$campo_valor' AND id_campo = '$row[id_campo]'") ;
- if($existe[0] !='') {
- $respuesta->addAlert("ATENCION: El nombre de usuario o el Correo electrónico ya se encuentran registrados !");
- $respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
-
-
- return $respuesta;
- }else{
- //$respuesta->addAlert("$existe[2]"); return $respuesta;
- }
- }
- else {}
-
- if ($campo_valor !=''){
-
- $insertar_consulta = "
- INSERT INTO `form_datos`
- SET
- id_campo = '$row[id_campo]',
- contenido = '$campo_valor',
- control ='$control',
- timestamp = UNIX_TIMESTAMP(),
- form_id = '$form_id',
- ip = '$ip',
- id_empresa = '$row[id_empresa]'
- ";
-
-
- }else{
-
-
- }
-
- if ($error ==''){
- $sql_consulta=mysql_query($insertar_consulta,$link);
- if($sql_consulta){
- $login = milfs_session("$form_id","$campo_usuario","$campo_password","","");
- $resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-
-
- }else{$resultado.= "
La consulta no se grabó
";}
- }else { }
-
- }
- require ("milfs/includes/parametrizacion.php");
- $insertar_servicio = insertar_linea("form_datos","$login_formulario","$social_login_servicio","$portal_sigla",$control,"","");
-$resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-$respuesta->addAssign("formulario_session","innerHTML",$resultado);
-return $respuesta;
-
-
-}
-
-else{}
-return $respuesta;
-
-}
-$xajax->registerFunction("milfs_session");
-
-
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- $respuesta = new xajaxResponse('utf-8');
-if($valores =="") {
- $alerta = "
Por favor escriba que desea buscar ";
-$respuesta->addAssign("$div","innerHTML",$alerta);
- return $respuesta;
-}
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-
-
-
-
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form contenido like '%%$valor%%' group by control LIMIT 200 ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-$fila=1;
-$divider=2;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
- /* $contenido = htmlentities($row[contenido]);
- $p = stripos($contenido, $valor);
- $s1 = substr($contenido, 0, $p);
- $s2 = substr($contenido, $p, strlen($valor));
- $s3 = substr($contenido, ($p + strlen($valor)));
- $r = $s1."
$s2 ".$s3;
- */
- $datos = landingpage_contenido_identificador($row['control']);
- //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
$datos
";
-
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor $encontrados ";
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql_total=mysql_query($consulta_total,$link);
-$total = mysql_num_rows($sql_total);
-$sql=mysql_query($consulta,$link);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = $descripcion[0];
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion";
-
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysql_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
$buscador
-
-
-
- $contenido
-
- Mostrar mas resultados
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-
-function insertar_registro($tabla,$formulario,$div,$principal) {
- //$valores ="$formulario[0]";
- $formulario = limpiar_caracteres($formulario);
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
-
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- $ultimo_id = mysql_insert_id();
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $valores = limpiar_caracteres("$valores");
- $grupo = editar_campo("$tabla",$ultimo_id,"$principal","","","");
- $respuesta->addAssign($div,"innerHTML","
$formulario[$principal] ");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- //$respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_registro");
-
-
-
-function formulario_area_campos($perfil,$area,$control) {
- $tipo="";
- $control_edit ="$control";
- $solo_campos ="";
- $muestra_form ="";
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} $campos= "";
-
-$consulta = "
- SELECT * FROM form_campos , form_contenido_campos
- WHERE form_contenido_campos.id_form = '$perfil'
- AND form_contenido_campos.id_campo = form_campos.id
- AND campo_area='$area'
- ORDER BY form_contenido_campos.orden";
-
- $link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-
-
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- if( $row['obligatorio'] == '1'){$obligatorio="*";}else {$obligatorio='X';}
-
- if($row['campo_tipo'] =="24") { $row['multiple'] = "1";}else {}
- //if($row['multiple'] =="1" AND $tipo =='edit'){
- if($row['multiple'] =="1" ){
- $campos .= "($row[multiple] $row[id_campo])".formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }else{
- $campos .= "".formulario_campos_render($row['id_campo'],$perfil,$control_edit,'','');
- //$campos .= "".formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }
- $muestra_form .= "$campos $obligatorio ";
- $solo_campos .= "$campos $obligatorio ";
-
- }
-
-
-}
-
-
-$resultado = "$muestra_form ";
- return "$campos";
-
-}
-
-function formulario_areas($perfil,$tipo,$form_respuesta,$control_respuesta){
- $id="";
- $resultado_campos ="";
- $subir_imagen ="";
- $campo_imagen_nombre ="";
- if($form_respuesta =='respuesta'){$control = $control_respuesta;}
- //elseif($form_respuesta =='edicion'){$control = $control_respuesta;}
- else{
-$control = md5(rand(1,99999999).microtime());
-}
- $respuesta = new xajaxResponse('utf-8');
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- /*$consulta = "SELECT * FROM form_areas, form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
- AND form_areas.id = form_campos.campo_area AND form_areas.id_empresa = '$id_empresa'
- OR (form_contenido_campos.id_form = '$perfil' AND form_campos.campo_area ='0' )
- AND form_areas.estado = '1' GROUP BY form_areas.id ORDER BY form_areas.orden";
- */
- $consulta= "SELECT * FROM form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
-
- GROUP BY form_campos.campo_area
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- //$campo_titulo = remplacetas('parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
- $descripcion = remplacetas('form_id','id',$perfil,'descripcion','') ;
- $formulario_respuesta = remplacetas('form_id','id',$perfil,'formulario_respuesta','') ;
- $empresa = remplacetas('form_id','id',$perfil,'id_empresa','') ;
- $empresa = $empresa[0];
-
- $nombre= strtoupper($nombre[0]);
- $descripcion= $descripcion[0];
- $form_respuesta= $formulario_respuesta[0];
-
-
-//// encabezado form
-
- if($tipo =='edit') {$control= $control_respuesta;}
- elseif($form_respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- //$descripcion=mysql_result($sql,0,"descripcion");
- //$nombre=mysql_result($sql,0,"nombre");
- //$empresa=mysql_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$empresa",'encabezado');
- $pie = empresa_datos("$empresa",'pie');
- $cabecera = "
-
-
-
-
-
-
-
-
$nombre$descripcion
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($perfil,"15");
-if($campo_imagen[0] !="") {
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen_nombre = ucwords($campo_imagen_nombre);
-$campo_imagen = $campo_imagen[0];
- }
-
-if ($campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$perfil","$campo_imagen"."[0]");
-if($tipo != "campos") {
- $imagen = "
-
-
- ";
-
- }else {$imagen =" ";}
- }
-
- $muestra_form = "
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
-
-////fin encabezado form
-
-
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row['campo_area']=="0"){$area_nombre ="";}
- else{
- $area_nombre = remplacetas('form_areas','id',$row['campo_area'],'nombre','') ;
- $area_nombre = $area_nombre[0];
- }
- $fila = $fila +1;
-
- //$producto = remplacetas('farmacia_cum','id',$row[id_producto],'fabricante_importador') ;
- ///// para pasar el parametro de medicamentos al formulario no pos se adiciona ".func_get_arg(2)."
- $campos = formulario_area_campos($perfil,$row['campo_area'],"$control_edit");
-$resultado_campos .= "
-
-$area_nombre
-$campos
- ";
- }
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos
-
- ";
-
-//// fin botonera form
-
- }
-
-//// cierre form
-
-$muestra_form .="
-
-
-
";
-if($tipo=='campos') {
-
- $resultado = "$resultado_campos $imagen ";
- return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-
-";
-return $resultado;
-
-/// fin cierre form
- // $resultado .= "$consulta";
-//$respuesta->addAssign($div,"style.display","block");
-//$respuesta->addAssign($div,"innerHTML",$resultado);
-//return $respuesta;
- //print $muestra_form;
-// return $muestra_form;
- }
-
- $xajax->registerFunction("formulario_areas");
-
-
-
-function tabla_areas($tabla,$value,$descripcion,$onchange,$where,$nombre,$div){
- $group ="";
- if($div =="") {
- $div="div_campos";
- $resultado = "
-
Modificar areas
- ";
- return $resultado;
- }
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$campo3 = $campos[2];
-$campo4 = $campos[3];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="group by $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT * FROM $tabla WHERE 1 $w AND id_empresa='$_SESSION[id_empresa]' $group ORDER BY orden ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-
-$resultado="
-$name
-Id $campo1 $campo2 $campo3 $campo4
- " ;
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
-$editar_campo1= editar_campo("$tabla",$row['id'],"$campo1","","","","");
-$editar_campo2= editar_campo("$tabla",$row['id'],"$campo2","","","","");
-$editar_campo3= editar_campo("$tabla",$row['id'],"$campo3","","","","");
-$editar_campo4= editar_campo("$tabla",$row['id'],"$campo4","","","","");
-$eliminar = " ";
-$resultado .= "$row[$value] $editar_campo1 $editar_campo2 $editar_campo3 $editar_campo4 $eliminar ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-
-
-
-
-Agregar área
-
-
-
-
-
-
-
-
-
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("tabla_areas");
-
-
-
-
-function importar_coleccion($form){
-$div ="confirmar_importacion";
-//$archivos = listado_archivos("$form[path]");
-//$archivos = listar_archivos("$form[path]",'cantidad','',$form);
-
- $directorio = opendir("$form[path]"); //ruta actual
-$resultado = " ";
-while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
-{
- if (is_dir($archivo))//verificamos si es o no un directorio
- {
- // $resultado .= "[".$archivo . "]
"; //de ser un directorio lo envolvemos entre corchetes
- }
- else
- {$autor="";
- $ext = explode(".", $archivo);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {
- $cantidad_imagenes++ ;
-
- $exif = leer_exif("$form[path]/$archivo");
- //$name = $exif['exif']['FileName']." ".$form['38']['0']."*" ;
- $form['0']['0'] = "$archivo";
- $autor= $exif['exif']['Artist'];
- $creator = $form['40'][0];
- if($autor !="" ) { $remplazo = array('40' => array("$autor")); }else{ $remplazo; }
-
- }
- //$form = array_replace_recursive($form, $reemplazo);
- $resultado .= $archivo ." / $name ".$form['0'][0]."
";
- }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= "( $c : $V )
";
- if($V != '') {
- }
- }
-}
-}
-*/
-//$resultado="$archivos $campo";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("importar_coleccion");
-
-
-
-
-function listar_archivos( $path ,$opcion, $div,$datos){
- // Abrimos la carpeta que nos pasan como parámetro
-
- $resultado ="";
- //$link = Conectarse();
- $dir = opendir($path);
- $cantidad =0;
- $cantidad_imagenes =0;
-//$datos['61'] = array ( 0 => "otro valor");//"OTRO VALOR";
- if(is_file($path)) {$esarchivo="Escriba la ruta a un directorio en el servidor
"; }
- // Leo todos los ficheros de la carpeta
- //if($esarchivo =="") {
- // $elemento = readdir($dir);
- //}
- while ($elemento = readdir($dir) ){
-
- // Tratamos los elementos . y .. que tienen todas las carpetas
- if( $elemento != "." && $elemento != ".."){
- // Si es una carpeta
- if( is_dir($path.$elemento) ){
- // Muestro la carpeta
- // $resultado .= "
CARPETA: ". $elemento ."
";
- // Si es un fichero
- } else {
- $ext = explode(".", $elemento);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {$cantidad_imagenes++ ;
-
- $exif = leer_exif("$path/$elemento");
- $name = $exif['exif']['FileName'];
- $title= "$name ";
- $date= $exif['exif']['DateTimeOriginal'];
- $autor= $exif['exif']['Artist'];
- if(!isset($autor)) { $autor = $datos['40'][0]; }
- $licencia= $exif['exif']['Copyright'];
- if($licencia ==="") { }
- else{
-// $datos['61'][0]= " XX $licencia XXX";
- }
-
-
- //$datos['61'][0] = $licencia;
- if(isset($exif['exif']['UndefinedTag:0xC4A5'])) {
- $exif['exif']['UndefinedTag:0xC4A5']= base64_encode($exif['exif']['UndefinedTag:0xC4A5']);
- }
- if(isset($exif['exif']['MakerNote'])) {
- $exif['exif']['MakerNote']= base64_encode($exif['exif']['MakerNote']);
- }
- if ( $exif['lon'] =="" )
- {
- $geo = $datos['58'][0];
- $mundo ="";
- $datos['58'][0] = $datos['58'][0];
-
- }
- else {
- $geo = "$exif[lon] $exif[lat] 18" ;//$datos['58'][0];
- $mundo ="
";
- $datos['58'][0]= "$geo";
-
-
- }
-
- // $remplazos = array('40');
- // else { $mapa="";}
- //$json = json_encode($exif['exif'],JSON_PRETTY_PRINT);
- //if ( $exif['lon'] =="" ){$datos['58'][0] = $geo;}else {$datos['58'][0] = $datos['58'][0];}
- $resultado .= "
$geo $mundo / ".$datos['58'][0]." ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]." ";
-
- }
-
- $cantidad ++;
-
- $campo .= "";
-
-
- }
- }
-
- }
-
-
- if($div !="" ) {
- if($opcion == "cantidad") {
- $resultado = "
-
- $esarchivo $cantidad archivos, $cantidad_imagenes imágenes jpg, $mapa georeferenciadas
-
-
";
- }
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }else {
-
-
-
- return " $campo $resultado"; }
-}
-$xajax->registerFunction("listar_archivos");
-
-
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( "$file" );
- $resultado['exif'] = $exif;
- $resultado['file']= $file;
- $resultado['FileName']=$exif['FileName'];
-
-if($exif === false) {
-//return false;
-}
-
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado['lat'] = $gps_latitude;
- $resultado['lon'] = $gps_longitude;
-
- //$resultado = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
- }else{}
-
-}
-
-
- $resultado['DateTime'] = $exif['DateTimeOriginal'];
- $resultado['estado'] = "oK";
-
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-
-function relacion_render($form_id,$id_campo,$valor,$cantidad){
-
-
-
-
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-$link = "
Ver referencia ";
-}
-
- return " $valor_actual $link";
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_render");
-
-function buscador_base($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_base_$name";
-$onchange = " xajax_buscador_select_base('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select_base('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_base");
-
-
-function buscador_select_base($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_base_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $tabla = explode(':',$claves[0]) ;
- $tabla = $tabla[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion1 = explode(':',$claves[2]) ;
- $descripcion1 = $descripcion1[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $descripcion3 = explode(':',$claves[4]) ;
- $descripcion3 = $descripcion3[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT * FROM $tabla WHERE $descripcion1 like '$valor%%' GROUP BY $key limit 50 ";
-
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-//$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-//$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select_base");
-
-
-
-function buscador_campo($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_$name";
-$onchange = " xajax_buscador_select('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_campo");
-
-
-function imprimir_buscador_campo($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function imprimir_base($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $campo1 = remplacetas("$formulario","$key","$valor","$descripcion","");
- $campo2 = remplacetas("$formulario","$key","$valor","$descripcion2","");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function buscador_select($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and (id_campo ='$key' OR id_campo ='$descripcion' )AND contenido like '$valor%%' GROUP BY control limit 50 ";
-
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $campo_key[0] $campo_descripcion[0] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select");
-
-
-
-function relacion_select($id_campo,$form_id,$valor,$name,$control,$tipo){
-$link=Conectarse();
-$valor_actual ="";
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit =="" ) {$limit = 20;}
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_select");
-
-function combo_select($id_campo,$form_id,$valor,$name,$control,$control_combo){
- $selected="";
- $and="";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if($control_combo !="") {
- $div ="combo_$name";
-$and ="AND campo_valor LIKE '$control_combo:%%'";
-}else{
-$onchange ="xajax_combo_select('$id_campo','$valor','$valor','$name','$control',(this.value)) ";
-$div ="combo_$name";
-$name ="primario_$name";
-}
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' $and ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado=" $valor
-Seleccione
- " ;
- // $resultado = array_unique($entrada);
-while( $row = mysql_fetch_array( $sql ) ) {
- $campos = explode(':',$row['campo_valor']);
-
- IF($control_combo ==""){
- $campo_primario[]=$campos[0];
- $campo_primario = array_unique($campo_primario);
- }
- else {
- $campo_primario[] = "$campos[0] $campos[1]";
- }
- //$identificador = $identificador[0];
-//if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-//$resultado .= " $campos[0] ";
- }
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "$V ";
-}
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-if($control_combo =='') {
- return $resultado;
- }
-else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-$xajax->registerFunction("combo_select");
-
-
-function aplicacion_carrusel($nombre,$id,$plantilla){
- if($id =='') {
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- }
- if($nombre =='') {
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre = $nombre[0];
- }
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
- $descripcion = $descripcion[0];
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
- $campo_titulo = $campo_titulo[0];
- $consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
- $link=Conectarse();
- $sql=mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysql_data_seek($sql, 0);
-// $contenido = "
$nombre[0] ";
-// $contenido .= "
$descripcion[0] ";
-
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- if($orden === 0) {$activo = "active";}else{$activo="";}
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $campo = buscar_campo_tipo($id,"15");
- $id_campo = $campo[0];
- $imagen = remplacetas('form_datos','control',$row[control],'contenido',"id_campo = '$id_campo'") ;
- $items .= "
-
-
- $contenido_desplegado
-
-
";
- $indicador .= "
";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- //$contenido .= "$contenido_desplegado ";
- $orden = ($orden +1 );
- }
-$contenido .= "
-
-
-
$nombre[0] $descripcion[0]
-
-
-
- ";
- //$contenido = " $links
";
- }
-
-
-return $contenido;
-}
-
-
-function formulario_embebido($id){
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
- $impresion = formulario_areas($id,"embebido",'','');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
-
-
$visitas
- $formulario_nombre[0]$formulario_descripcion[0]
- $impresion
-
-
-
-
-
-
-
";
- return $muestra_form ;
-}
-
-
-function formulario_embebido_ajax($id,$opciones,$tipo){
- $respuesta = new xajaxResponse('utf-8');
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- if($publico[0] =="0" AND $_SESSION[id] =="") {
- $resultado = "
NO tiene permiso para usar este formulario ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "$permiso_identificador
Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
-
-
-
- if($tipo =='edit' AND $_SESSION['id_empresa'] !== $id_empresa[0] AND $permiso_identificador != $opciones) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
- $salir
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- if($tipo=="respuesta") { $form_respuesta = "respuesta";}
- $impresion = formulario_areas("$id","$tipo","$form_respuesta","$opciones");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
$visitas
-
-
- $impresion
-
-
-
- ";
- // return $muestra_form ;
-
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- //$div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-
-}
-$xajax->registerFunction("formulario_embebido_ajax");
-
-function formulario_embebido_campos($id,$opcion){
- $impresion = formulario_modal("$id",$form_respuesta,$control,"$opcion");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $muestra_form = "
-
-
$formulario_nombre[0]
-
$formulario_descripcion[0]
- $impresion
-
-
-
";
- return $muestra_form ;
-}
-
-function json($datos){
-if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND
-form_id.publico = '1' "; $w_publico = "WHERE form_id.publico = '1'
-"; }
-else { $publico = "AND form_id.id_empresa = '$_SESSION[id_empresa]'
-"; $w_publico = "WHERE form_id.id_empresa = '$_SESSION[id_empresa]' ";
-}
-$datos = mysql_seguridad($datos);
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-if($datos[id] !=''){
-if($datos[tipo] =='simple') {
-$campos ="control " ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-GROUP BY form_datos.control
-ORDER BY form_datos.timestamp DESC";
-
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysql_fetch_array( $sql ))
- {
-
-
-
- if($datos[tipo]=="simple"){
-
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
-
- //if($privado != '1') {
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $nuevos_datos = $datos;
- $nuevos_datos[identificador]="$row[control]";
- $nuevos_datos[tipo]="array";
- //$features[$row[control]] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- $features[] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
-//}//
- }
- else {
- // $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-
-if($tipo == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-return $resultado;
-
-}
-else {
-$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo , contenido ,timestamp, control as identificador ,
-form_datos.orden" ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-ORDER BY form_datos.control ,form_datos.timestamp ";
-}
-
-}
-elseif($datos[identificador] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo ,contenido ,timestamp, control as identificador ,
-form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (control = '$datos[identificador]' )
-$publico
-";
-}
-elseif($datos[dato] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, nombre as formulario,
-campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp,
-control as identificador, form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_datos.id = '$datos[dato]' )
-$publico
-";
-}
-else {
-$consulta = "SELECT id as form_id, nombre as form_nombre, descripcion
-as form_descripcion , creacion , publico AS contenido_publico ,
-modificable AS formulario_publico
-FROM form_id $w_publico";
-}
-
-
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysql_fetch_array( $sql ))
- {
- //$nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $formulario = remplacetas('form_datos','id',$row[id_dato],'form_id',"") ;
- //// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$formulario[0]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
-/// PRIVACIDAD
- if($privado !='1') {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $features[] = "$nombre_campo[0] : $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-}
-
- $i++;
- }
-
-
-
-}
-
-if($datos[tipo] == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-
-return $resultado;
-}
-
-
-
-
-function imprime_geojson($id,$id2,$plantilla){
- $id_form = mysql_seguridad($id);
- $id_form2 = mysql_seguridad($id2);
- $campo = buscar_campo_tipo($id_form,"14");
- $campo2 = buscar_campo_tipo($id_form2,"14");
- $id_campo = $campo[0];
- $id_campo2 = $campo2[0];
- if($id_form2 !=""){$w_id2 =" OR form_id = '$id_form2'"; $or_2 ="or id_campo = '$id_campo2'";}
-
-$link=Conectarse();
-
- $consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data
-FROM `form_datos`
-WHERE (form_id = '$id_form' $w_id2 )
-AND ( id_campo ='$id_campo' $or_2 )
-group by control
-ORDER BY orden desc";
-//return $consulta;
-
- mysql_query("SET NAMES 'UTF8'");
- $sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
- $id = 1;
- $features = array();
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $marcador = array();
- $propiedades = array();
- $identificador = explode(',',$row[data]);
- $identificador = $identificador[0];
- $campos = explode(" ",$identificador);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- $formulario = formulario_imprimir($row[id],$row[control],"$plantilla");
-
- $marcador["type"] = "Point";
- $marcador["coordinates"] = array($lat,$lon);
- $propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
- //$propiedades[description] ="HOLA MUNDO";
- $propiedades[description] ="
$formulario
";
- $propiedades[sounds] ="";
- $propiedades[url] ='';
- $propiedades[icon][iconSize] =[60];
- //$propiedades[icon][shadowSize] =[70,70];
- //$propiedades[icon][shadowUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
-
- //$propiedades[title] ='Hola mundo';
- if($propiedades[icon][iconUrl] =="") {
- $icono_imagen = buscar_imagen("$id_form",$row['control'],"","");
- //$propiedades[icon][iconUrl] = "$_SESSION[site]/milfs/images/iconos/negro.png";
- $propiedades[icon][iconUrl] = "$_SESSION[url]images/secure/?file=150/$icono_imagen";
- }
- $geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)."},";
- $features[] = $marcador;
-
- $id++;
- }
-
-}
-//-75.58295 6.25578 16
-
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
- \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
- \"type\": \"FeatureCollection\",
- \"features\": [$geometria ]}";
-return $geometria;
-}
-
-
-function aplicacion_presentacion($id,$div,$timeout){
- if($timeout < '1000') {$timeout =5000;};
- $respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT * FROM form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$control = mysql_result($sql,0,control);
-$impresion = formulario_imprimir("$id","$control","");
-
- }
-$siguiente = "
SIGUIENTE ";
-if($div ==''){
- $presentacion = "
$siguiente $impresion
";
- }else{
- //$respuesta->addAlert("$consulta");
- $respuesta->addScript("setTimeout(function(){xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout')},$timeout)");
- $respuesta->addAssign("$div","innerHTML","$siguiente $impresion");
- return $respuesta;
- }
-return " $presentacion";
-
-
-}
-$xajax->registerFunction("aplicacion_presentacion");
-
-function aplicaciones_listado($id_empresa,$id_form,$tipo,$div){
- $onclick ="";
- $accion = "";
- if($id_empresa !=''){
- if($id_form !="") {$w_form = " AND id = '$id_form'";}
- $w_publico =" publico ='1'";
- $w_empresa = " AND id_empresa = '$id_empresa' ";
- $consulta = "SELECT * , form_id.id as id_formulario FROM form_id WHERE $w_publico $w_form $w_empresa ORDER BY orden asc limit 10 ";
- //xajax_contenido_parallax('$row[id]');
- }
- else {
- $consulta = "SELECT *, razon_social as nombre , form_id.id as id_formulario FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC ";
-
- }
- //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado_li .= "
";
- }else {$resultado_li = "";}
-
-if($tipo =='li') { return $resultado_li.$resultado;}
-elseif($tipo =='nav') { return $resultado_nav;}
-elseif($tipo =='grid') {
-if($div !="") {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado_grid");
- return $respuesta;
- }else{
- return $resultado_grid;
- }
-}
-elseif($tipo =='banner') { return $resultado_banner;}
-elseif($tipo =='carrusel') { return $resultado_carrusel;}
-elseif($tipo =='sitemap') { return $resultado."sitemap";;}
-else {return $resultado;}
-}
-$xajax->registerFunction("aplicaciones_listado");
-
-
-function contenido_aplicacion($id,$plantilla){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
- $control = mysql_result($sql,0,"control");
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysql_data_seek($sql, 0);
-
- //$contenido = "
$nombre[0] ";
- $contenido = "
$descripcion[0] ";
-
- $orden = 0;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- //return "$row[form_id] $row[control] $plantilla";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado
";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- if($id[0] =="") {$aviso = "
No se ha definido una aplicación con el nombre $nombre ";
- return $aviso;}
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
-
- mysql_data_seek($sql, 0);
- $contenido = " ";
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado ";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-
-
-function contenido_parallax($id){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- $contenido = "";
- mysql_data_seek($sql, 0);
-
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
- //$orden = $orden+500;
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'','contenido');
-
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $nav_li .="
-
- ";
- $style .=" a[id= '$row[control]']:target ~ #main_$id article.article
- {
- -webkit-transform: translateY(-$orden"."px);
- transform: translateY( -$orden"."px );
- } ";
- $links .= "
";
- $contenido .= "
-
- $contenido_desplegado
-
- ";
- $orden = $orden +800;
- }
- $contenido = "
-
-
- $links
-
-
-
-
- ";
- }
-
-//return " $contenido";
- $respuesta->addAssign("$div","innerHTML","$contenido");
- return $respuesta;
-
-}
-$xajax->registerFunction("contenido_parallax");
-
-function contenido_timeline($id){
-$div = "contenedor";
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- //$contenido = "
";
-//}else {$resultado ="
No se encontraron resultados "; return $resultado;}
-//if($id=="6" OR $id=="10") {
- $plantilla="";
- $class="";
- if($tipo !="" AND (!is_numeric($tipo)) AND $tipo !="metadatos" ) {
-////Usa una plantilla apra cada id
-
-$plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
-$plantilla = $plantilla[0];
-if($plantilla =="") {
-///Usa una plantilla generica por nombre
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = ''") ;
-$plantilla = $plantilla[0];
-//$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = '$id' ") ;
-}
-if($plantilla !='') { $plantilla = html_entity_decode ( $plantilla );}
-/*else {
-$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"") ;
-$plantilla= $plantilla[0];
- }
- */
- }
-if($plantilla != ""){
-eval("\$plantilla = \"$plantilla \";");
- $full ="$plantilla";
- $full = preg_replace("/<[^\/][^<>]*> *<\/[^<>]*>/", "", $full );
-
- }else {
- $full= "
$resultado
";
- }
-
- $resultado ="$full";
- return $resultado;
-
-// }else {$resultado ="
No se encontraron resultados "; return $resultado;}
- }else {$resultado =""; return $resultado;}
-}
-
-
-function subir_imagen($respuesta,$id){
-$resultado ="";
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//this.form.taget= 'ventana'; this.form.action = 'destinoEspecial.html'; this.form.submit()"
-if($id =="") {
- $empresa = $_SESSION['id_empresa'];
- $javascript = "$_SESSION[site]milfs/includes/upload.php";
- $path = "$_SESSION[site]milfs/";
-}
-else {
-$id_empresa = remplacetas('form_id','id',"$respuesta",'id_empresa','');
-$empresa= $id_empresa[0];
-$web = remplacetas('empresa','id',"$empresa",'web','');
- $javascript = "https://$web[0]/milfs/includes/upload.php";
- $path = "https://$web[0]/milfs/";
-}
-
-/*
-if(file_exists(milfs/includes/upload.php)) {$javascript="milfs/includes/upload.php"; $path ="milfs/";}
-else{$javascript="includes/upload.php"; $path ="";}
-*/
-
-//$javascript="milfs/includes/upload.php";
-//$javascript="milfs/includes/upload.php";
-//$path ="milfs/";
-$campo_mapa = buscar_campo_tipo($respuesta,"14");
-$campo_mapa = $campo_mapa[0];
-if ($id ==''){$id='imagen';}
-$size = ($_SESSION['upload_size']*1024*1024)." bytes";
-$resultado ="
-
-
-
-
-
-
-
-La imagen debe estar en formato .jpg y de tamaño máximo $_SESSION[upload_size] MB ( $size)
-
-";
-return $resultado;
-
-}
-
-
-function formulario_importador($accion) {
-
- if($accion =='') {
- $resultado="
Importador";
-
- return $resultado;
- }
- $respuesta = new xajaxResponse('utf-8');
- $formulariox =formulario_importar('','menu','');
- $resultado="$formulariox
";
- $respuesta->addAssign("contenido","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("formulario_importador");
-
-
-function subir_archivo($perfil){
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//$empresa = remplacetas('form_id','id',"$perfil",'id_empresa','');
-//$web = remplacetas('empresa','id',"$empresa[0]",'web','');
-$javascript="https://tupale.co/milfs/includes/upload_archivo.php";
-$resultado ="
-
-
-
-
-Máximo 1MB
-
- ";
-
-
-return $resultado;
-
-}
-
- /*
-function formularios_muestra_listado($formulario){
-
- if($formulario==''){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ";
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado .="
";
- $resultado .= "Seleccionar formulario a importar ";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= " $row[nombre] ";
- }
-
- $resultado .=" ";
- }else {$resultado = "";}
-
- return $resultado;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $subir = subir_archivo($formulario) ;
- $div="importador_select";
- $resultado .= "$subir";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-$respuesta->addAssign("importador_archivo","innerHTML","");
-
-
-
-return $respuesta;
-}
-}
-$xajax->registerFunction("formularios_muestra_listado");
- */
-
-function formulario_importar_subir($formulario){
- $pie="";
- $respuesta = new xajaxResponse('utf-8');
- $formulario_nombre = remplacetas('form_id','id',$formulario,'nombre','') ;
- //$formulario_descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
- $encabezado = "
Importar $formulario_nombre[0] ";
- $subir = subir_archivo($formulario) ;
- $div="contenido";
-
- $muestra_form = "
-
- $subir
-
-
- ";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$encabezado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-return $respuesta;
-
-}
-$xajax->registerFunction("formulario_importar_subir");
-
-
-function formulario_importar($filename,$accion,$perfil){
-$formulario = "";
-$consulta = "";
-$div = "importador_archivo";
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$resultado = "
-
-
-
-
- Importando formulario ";
-$nombre = "/tmp/$filename";
-if($accion == "grabar") {
-}
-if (($handle = fopen($nombre, 'r')) !== FALSE)
- {
- $fila= 0;
- set_time_limit(0);
-while (($datos = fgetcsv($handle,0,"|")) !== FALSE) {
-$numero = count($datos);
-if($fila >=1) {
-$resultado .= "";
-$numero_columna = 0;
-for ($c=0; $c < $numero; $c++) {
-$columna = $datos[$c];
-if($columna !=""){
-if($accion === "grabar"){
-$control=md5($perfil.$fila.time());
-$ip = obtener_ip();
-$graba_ip = " ip = INET_ATON('".$ip."') ";
-$consulta_campos = "INSERT INTO form_datos SET timestamp= '".time()."', id_usuario='$_SESSION[id]',id_empresa='$_SESSION[id_empresa]',form_id ='$perfil',
-$graba_ip ,
-control = '$control', $consulta id_campo = '$campo[$numero_columna]' , contenido = '$columna'";
- // $verificar_campo = formulario_verificar_campo($perfil,$campo[$numero_columna]);
- $elregistro= $campo[$numero_columna];
- //if($verificar_campo == NULL){}else{
- if(is_numeric($elregistro)) { $elregistro =$elregistro;}else {$elregistro = -9;}
- //$verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$elregistro,'campo_nombre','');
- if($campo_existe[0] == ""){}else{
- $sql = mysql_query($consulta_campos,$link);
- if($sql) {
- $class='success';
- $resultado = "GRABADO $fila".time();
- //$sql_resultado = "oK";
- }
- else {
- $class='danger';
- }
- }
- }
-}
-//$resultado .= "$columna $sql_resultado ";
-$numero_columna ++;
- }
- $resultado .= " ";
- }
- else {
- $resultado .= "";
-
- $posicion = 0;
- for ($c=0; $c < $numero; $c++) {
- $titulo = $datos[$c] ;
- $campo[$posicion] = $datos[$c];
- if(is_numeric($titulo)) { $titulo =$titulo;}else {$titulo = -9;}
- $verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$titulo,'campo_nombre','');
- if($verificar_campo == NULL){$verificar_campo_aviso =" No existe "; $class='danger';
- if($campo_existe[0] !='') { $verificar_campo_aviso =" No está en el formulario ";$class='warning';}
- }
-
- else{$verificar_campo_aviso =""; $class='success';}
-
- $resultado .= "$titulo $campo_existe[0]$verificar_campo_aviso ";
- $posicion ++;
- }
-
-
- $resultado .= " ";
- }
- $fila++;
- }
-
-
- $resultado .= "
-
$fila ".time()." " ;
- }
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}
-
-$xajax->registerFunction("formulario_importar");
-
-
-
-function formulario_verificar_campo($perfil,$id_campo){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM `form_contenido_campos` WHERE `id_form` = '$perfil' AND id_campo='$id_campo'";
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
-$existe = NULL;
-
- }else {
-
-$control=mysql_result($sql,0,"control");
-$obligatorio=mysql_result($sql,0,"obligatorio");
-$existe[]= $control;
-$existe[]= $obligatorio;
-$existe[]= $consulta;
-
-}
-
-return $existe;
- }
-
-function borrar_tmp($div) {
-if($div =='') {
- $div="borra_tmp";
-$resultado ="
Limpiar ";
-
-return $resultado ;
-}
-$dir = "tmp/";
-$ficheroseliminados= 0;
-$handle = opendir($dir);
-while ($file = readdir($handle)) {
- if (is_file($dir.$file)) {
- if ( unlink($dir.$file) ){
- $ficheroseliminados++;
- }
- }
-}
-$fecha = time ();
-$ahora = date ( "Y-m-d h:i:s" , $fecha );
-$resultado ="
$ahora
";
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("borrar_tmp");
-
-
-function formulario_imprimir_linea($id,$control,$tipo) {
- $id = mysql_seguridad($id);
- //if($id !='') {$w_id = "AND form_id = '$id'";}
- $control = mysql_seguridad($control);
-/* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC
- ";
- */
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
-
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
-
-
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysql_result($sql,0,"form_id");}
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
-
- $titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo = $titulo[0];
-
-$timestamp=mysql_result($sql,0,"timestamp");
-$fecha = date ( "Y-m-d h:i:s" , $timestamp);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
-// $resultado ="
";
- $imagen = formulario_valor_campo("$id","0","","$control");
- $imagen = $imagen[3];
- if($imagen[3] != null AND $tipo !='titulos') {
- $array[image]=$imagen;
- $imagen_icon="secure/?file=150/$imagen";
- $imagen= " ";
-
- }else {$imagen='';}
-$td .= "$imagen ";
-
- while( $row = mysql_fetch_array( $sql ) ) {
-
- $campo_tipo = remplacetas('form_campos','id',$row[id_campo],'campo_tipo');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $md5_contenido = $contenido[4];
- //md5(binary contenido) as md5_contenido,
- $contenido_original = $contenido;
- //$control = $contenido[0];
- $contenido = $contenido[3];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $campo_nombre[0] =" $campo_nombre[0]";
- if($tipo=="titulos") {
- $contenido = "$campo_nombre[0] ";
- }
- elseif($tipo=="titulos_csv"){
- $csv .= '"'.$campo_nombre[0].'";';
- }
- elseif($tipo=="linea_csv"){
- $csv .= '"'.$contenido.'";';
- }
- elseif($tipo=="array"){
-
- if($row[id_campo] == $titulo){$array[title]=$contenido;}
- if($row[id_campo] == $categoria_campo){
- $array[category]=$contenido;
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- //$icono[0] = $imagen_icon;
- if($icono[0] =='') {
- //$icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $array[icon][iconUrl] = "$icon";
- //$array[icon][iconSize] ="[50,50]";
- //$array[icon][shadowSize] =[70,70];
- //$array[icon][shadowUrl] = "http://$_SERVER[HTTP_HOST]/milfs/images/iconos/sha.png";
-
- }else{}
- $array[$row[id_campo]] = $contenido;
- }
- else{
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
- if($size > $limite) {
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' AND $tipo==""){if($contenido !=""){$contenido = " "; }else{$contenido="";}}
- if($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- require("includes/datos.php");
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/pin.png");
- $contenido = "
-
- ";
- } else { $contenido ='';}
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
- else {$contenido = Markdown("$contenido");}
-
- }
-
-
- if($tipo=="titulos") {
-$td .= " $contenido ";
-
- }else{
-
- $td .= " $contenido ";
- }
- }
-
-if($tipo=="titulos") { $identificador ="Identificador "; }else {$identificador ="$control ";}
- $resultado .="$td $identificador ";
-}
- if($tipo =='titulos_csv' or $tipo=='linea_csv') {
-
-return $csv;
- }
- if($tipo =="array") {
- //$array["title"]="hola mundos";
- return $array;
- }
- return $resultado;
-}
-
-
-// $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-function mostrar_coincidencias_plantilla($id_form,$filtro,$valor,$plantilla) {
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-$control=mysql_result($sql,0,"control");
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) )
- {
-$resultado .= contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- }
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias_plantilla");
-
-
-function mostrar_coincidencias($id_form,$filtro,$valor) {
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) )
- {
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $campos .= " $depliegue ";
-
- }
- $resultado = "
";
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias");
-
-
-function matriz_formulario($formulario,$div,$registros,$pagina,$formato){
- $respuesta = new xajaxResponse('utf-8');
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$md5_filtro = $formulario["campo_filtro"];
-//$formulario = mysql_seguridad($formulario);
-mysql_real_escape_string($formulario);
-$perfil = $formulario["form_id_id"];
-$filtro = $formulario["campo_filtro"];
-$control = md5(rand(1,99999999).microtime());
-
-$cantidad = formulario_contar($perfil);
-$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_filtro'";}
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{
- $resultado ="
Por favor seleccione un formulario";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-if($cantidad < 1) {
- $resultado ="
-
- El formulario \"$formulario_nombre[0]\" no tiene registros
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
-}
-
-$fecha_inicio = $formulario["inicio"];
-if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
-$fin = $formulario["fin"];
-$id_campo = $formulario["id_campo"];
-$busqueda = $formulario["busqueda"];
-
-if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";}
-if($id_campo ==''){
- $campo ='';
-
- }else{
- if($busqueda =='') {
- $resultado ="
Por favor escriba una palabra para buscar";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
- $campo ="AND id_campo = '$id_campo'";
-
- }
-
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';}
-
-
-
-$consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
- FROM form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_datos.id_empresa = '$_SESSION[id_empresa]'
- $busca
- $perfil
- $campo
- $w_filtro
- AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio')
- AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden";
-
-
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)==0){
- $resultado ="
No hay resultados para la consulta ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
-if (mysql_num_rows($sql)!=0){
- $total_registros = mysql_num_rows($sql);
- if($formato=='csv'){
- $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv";
- $boton_descarga ="
Descargar ";
- $archivo_reporte=fopen($nombre_archivo , "w");
- $encabezado =";;Periodo\n;;$inicio\n;;$fin \n ";
- fputs ($archivo_reporte,$encabezado);
- $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n";
- fputs ($archivo_reporte,$titulo);
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) )
- {
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv');
- $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv');
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $linea = $linea."\n";
- $lineas .= $linea;
- }
- $contenido ="$titulo \n $lineas";
- //rewind($archivo_reporte);
- fputs ($archivo_reporte,$contenido);
- $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga);
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
- }
- else{
- $respuesta ="
No hay resultados
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
-
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta.$limite;
- $sql=mysql_query($consulta_limite,$link);
- if (mysql_num_rows($sql)!='0'){
- $botones .= "
Limpiar ";
- if($formato!='csv'){
- $botones .= "
- Exportar
- ";
- }
- $paginacion ="";
- $paginacion .= $indice;
- $encabezado = "
-
-
-
$botones $paginacion $total_registros registros
-
-
";
-$fila=0;
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $menu ="
-
-
-
- ";
- $campos .= "
$menu $depliegue ";
- }
- $resultado .="
";
- }else{
- $resultado .="
No hay resultados para la consulta ";
- }
- //$resultado .="$consulta";
-$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado);
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-} $xajax->registerFunction("matriz_formulario");
-
-
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysql_query($consulta,$link);
-if (@mysql_num_rows($sql)!=0){
-$resultado[] = mysql_result($sql,0,$por);
-$resultado[] = mysql_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysql_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-function formulario_campos_select($perfil,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-
- $categoria = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," opcion = 'categoria'") ;
- $categoria = $categoria[0];
-$resultado = "
Campo
-
- Todos los campos ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-if($div =='') {
- if ($row[id_campo] == "$categoria"){
- $class="active";
- $filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
- }else { $class=""; $filtro ='';}
- $listado .="$row[id_campo] $row[campo_nombre] $filtro ";
- }
- }
-$resultado .= "
-
"; }
-else{$resultado = '';}
-
-if($div =='') {return $listado;}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("formulario_campos_select");
-
-
-function formulario_campos_filtro($perfil,$campo,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "
- Filtro
-
- Seleccione ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
";
- }
-else{$resultado = "
No se encontraron resultados
";}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_campos_filtro");
-
-
-//$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo","$id_campo");
-function formulario_consultar($div){
- if($div==''){
- $div = "contenido";
- $resultado = "
Consultas";
- return $resultado;
- }
- $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'",'');
- $fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $peticion = "
-
-
-
-
-
-
-
-
- Formulario
- $formulario
-
-
-
-
-
-
-
-
Consultar
-
-
-";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$peticion);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_consultar");
-
-
-function formulario_campos_procesar($form,$tipo_accion){
- //$form = mysql_seguridad($form);
- $campos_formulario ="";
-$grabar_campos_valores ="";
-$respuesta = new xajaxResponse('utf-8');
-$campo_nombre = $form["campo_nombre"];
-if($campo_nombre =='') {
-$respuesta->addAlert("El Nombre del campo no puede estar vacío");
-$respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
-return $respuesta;
-}
-
-//$campo_nombre = ucfirst(strtolower($campo_nombre));
-@$campo_descripcion = $form["campo_descripcion"];
-@$campo_tipo = $form["campo_tipo"];
-@$campo_area = $form["campo_area"];
-@$misma_area = $form["misma_area"];
-@$campo_orden = $form["campo_orden"];
-@$campo_identificador = $form["campo_identificador"];
-@$activo = $form["activo"];
-@$tipo = $form["tipo"];
-@$editar = $form["editar"];
-@$id_campo_editar = $form["id_campo_editar"];
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-if ($editar == 'editar' AND $tipo_accion =='editar'){
-mysql_query("
- UPDATE `form_campos`
- SET `campo_nombre` = '$campo_nombre',
- `campo_descripcion` = '$campo_descripcion',
- `orden` = '$campo_orden' ,
- `campo_area` = '$campo_area',
- `campo_tipo` = '$campo_tipo',
- `id_empresa` = '$_SESSION[id_empresa]',
- `activo` = '$activo'
- WHERE `form_campos`.`id` ='$id_campo_editar'
- LIMIT 1",$link);
-$w_campo = "id = '$id_campo_editar'";
-
- }else {
-$id_empresa = $_SESSION['id_empresa'];
-$id_especialista = $_SESSION['id'];
- $buscar_campo_nombre = remplacetas('form_campos','campo_nombre',$campo_nombre,'campo_nombre'," id_empresa = '$id_empresa' AND campo_area = '$campo_area' ") ;
- if($buscar_campo_nombre[0] == $campo_nombre) {
- $respuesta->addAlert("El Nombre del campo ( $campo_nombre ) ya existe en la misma área ");
- $respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
- return $respuesta;
- }
-if($campo_identificador == "") { $campo_identificador = md5($_SESSION['id_usuario']."-".microtime()); }
-$consulta = "
- INSERT INTO `form_campos`
- (`id_especialista`, `campo_nombre`,`campo_descripcion`,`campo_tipo`, `campo_area`, `orden`, `activo`, `identificador`, `id_empresa`)
- VALUES ('$id_especialista','$campo_nombre','$campo_descripcion','$campo_tipo','$campo_area','$campo_orden','1','$campo_identificador','$id_empresa')";
- $sql =mysql_query($consulta,$link);
- $ultimo_id = mysql_insert_id();
-$w_campo= "identificador = '$campo_identificador'";
-if($sql) {
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'div_campos')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
- $campos_formulario ="
-
-
- El campo se creó con éxito
- Crear un nuevo campo
- Modificar campo $listado_campos
- ";
- if(@$form['agregar_id_form'] !="") {
- $respuesta->AddScript("xajax_agregar_campos('grabar_campos','contenido','$ultimo_id','$form[agregar_id_form]') ");
- ///$respuesta->addAssign("$div","innerHTML",$resultado);
- //return $respuesta;
- }
- }else {$campos_formulario = "
Problemas al grabar el campo $consulta";}
- }
-
-if($id_campo_editar !='' AND $tipo_accion =='editar'){$id_form_campo = $id_campo_editar;}else {
-//$id_form_campo = mysql_insert_id($link);
-$id_form_campo = $ultimo_id;
-}
-//$respuesta->addAlert("( $campo_tipo / $id_form_campo / $ultimo_id / $form[opciones] ) $consulta");
-//$respuesta->addAssign("contenido","innerHTML","$consulta_campos_valores");
-//return $respuesta;
-if($campo_tipo == '23' ){
-$grabar_campos_valores = "(".$id_form_campo.",'".$form[opciones]."')";
-}
-/// separacion por comas
-else {
-$opciones=str_replace(', ',',',"$form[opciones]");
-$opciones = explode(",",$opciones);
-
-foreach($opciones as $c=>$v){
-
- //if($v !='') {$v = ucfirst(strtolower($v));
- if($v !='') {$v = $v;
-
-$grabar_campos_valores .= "( $id_form_campo ,'$v'),";
- }
-
- }
-$grabar_campos_valores =substr ("$grabar_campos_valores",0,-1);
-} /// fin de separacion por comas
-
-$borrar_campos_valores = "DELETE FROM `form_campos_valores` WHERE `id_form_campo` = '$id_form_campo'";
-$consulta_campos_valores = "INSERT INTO form_campos_valores (id_form_campo,campo_valor) VALUES ".$grabar_campos_valores."";
-
- $sql_borrar_campos_valores =mysql_query($borrar_campos_valores,$link);
- $sql_campos_valores =mysql_query($consulta_campos_valores,$link);
-
- $campos=mysql_query("
- SELECT id_form_campo, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, orden
- FROM `consulta_campos` , `tipo_campo`
- WHERE $w_campo
-
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- LIMIT 1",$link);
-
-
-$campos_formulario .= "
";
-while( @$row = mysql_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "
".$row['orden']."";}
-else{
-$campos_formulario .= "
".$row['orden']." ";
- } }
-
-$respuesta->addAssign("formulario_campos_$misma_area","innerHTML",$campos_formulario);
-return $respuesta;
-}$xajax->registerFunction("formulario_campos_procesar");
-
-function formulario_opciones_select($tipo,$id_campo){
- $valores="";
- $respuesta = new xajaxResponse('utf-8');
- $div = 'opciones_select';
-if($id_campo !=''){
-$consulta= "SELECT * FROM form_campos_valores WHERE id_form_campo = '$id_campo'";
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-while( $row = mysql_fetch_array( $sql ) ) {
- $valores .= "$row[campo_valor],";
- }
- $valores = substr($valores,0,-1);
- }
- }
-if($tipo =='8'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='9'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='16'){
- if($valores =='') {$valores = "1,10";}
-$resultado = "
$valores ";
- }
-elseif($tipo =='17'){
- $resultado ="
";
-}
-else{
-$resultado = "
$valores ";
-}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_opciones_select");
-
-
-
-function crear_campos_formulario($form,$id_form){
- $id_form=$id_form;
- $area="";
- $Campo_tipo_definido="";
- $Tipo_campo="";
- $campo_nombre ="";
- $campo_descripcion ="";
- $editar ="";
-
-$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-if($form['div'] !="") { $div = $form['div'];}else{$div="div_campos";}
-
-@$especialista = $form["id_especialista"];
-@$id_campo_editar = $form["id_campo_editar"];
-$resultado = "
-
-$id_campo_editar";
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$capa = "crear_campos_consulta_$area";
-$formulario ="manejo_campos_$area";
-
-if ($id_campo_editar > 0){
-$sql=mysql_query("SELECT * FROM form_campos WHERE id = '$id_campo_editar' AND activo ='1'",$link);
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .="";
-$campo_descripcion =$row['campo_descripcion'];
-$campo_nombre =$row['campo_nombre'];
-$orden =$row['orden'];
-$especialista =$row['id_especialista'];
-
-$formulario ="manejo_campos_$id_campo_editar";
-$editar="
-
-
-
";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
- }
-
-$Tipo_campo ="
Tipo:
-
";
-$tipos=mysql_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1' ORDER BY tipo_campo_nombre
- ",$link);
-while( $row = mysql_fetch_array( $tipos ) ) {
-
-if($row['id_tipo_campo'] == $Campo_tipo_definido){
-$Tipo_campo .= " > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row['tipo_campo_nombre']." [".$row['id_tipo_campo']."] ";
-}
-$Tipo_campo .="
";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-
-
-
- Incluir este campo en el formulario actual
-
-
- ";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-
-
";
-$resultado = "
-
-
- Crear un nuevo campo
- $resultado
-
-";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("crear_campos_formulario");
-
-function formulario_crear_campo($area,$campo,$div){
- $campos_formulario="";
- $misma_area="";
-$respuesta = new xajaxResponse('utf-8');
- if($div==''){
- $div = "contenido";
- $cerrar = "
[X] ";
-$resultado = "
Campos ";
-
- return $resultado;
- }
- //$div="div_campos";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta_campos ="SELECT id, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, form_campos.activo, form_campos.campo_tipo
- FROM `form_campos` , `form_tipo_campo`
- WHERE id_empresa = '$_SESSION[id_empresa]' AND id = $campo
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- ORDER BY orden ASC";
- $campos=mysql_query($consulta_campos,$link);
-if($campo ==''){
-
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'$div')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
-$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-$tabla_campos = campos_tabla('id_especialista','');
-$campos_formulario = "
-
-
-
-
-
-
-
-
-
-
-
-
-
$tabla_campos
-";
-}else{
-$campos_formulario .= "
";
-while( $row = mysql_fetch_array( $campos ) ) {
-// if($row[campo_tipo] =='8'){
- $respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-// }
- $Tipo_campo ="
Tipo:
-
";
-$tipos=mysql_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ",$link);
-while( $row_tipo = mysql_fetch_array( $tipos ) ) {
-
-if($row_tipo['id_tipo_campo'] == $row['campo_tipo'] ){
-$Tipo_campo .= " > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-if($row['activo'] =='1'){$activo = "
Activo: el campo puede ser usado en formularios ";}
-else{$activo = "
Inactivo: El campo NO se usará ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-
-
-
-
-
-
-
";
-
- }
- }///fin de edicion
-
-
-
-$respuesta->addAssign($div,"innerHTML",$campos_formulario);
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_crear_campo");
-
-function agregar_campos($tipo,$div,$id,$formulario){
-$respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-if($tipo==''){
- $div="contenido";
-$resultado = "
Editar";
-print $resultado;
-return;
- }
- if($tipo=='consultar_listado'){
- $consulta="SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ASC";
- $sql =mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado .="Formulario:
";
-$resultado .= "Selecciona ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "$row[nombre] ";
- }
-$resultado .=" $cerrar";
- }else {
-$resultado = "
No hay formularios para editar
";
- }
- }
-
-if ($tipo=='consultar_campos'){
- /// restringe campo a propios form_campos.id_empresa = '$_SESSION[id_empresa]' AND
- $consulta="
- SELECT form_contenido_campos.id_campo, form_contenido_campos.id,
- campo_nombre, obligatorio,control,multiple,form_contenido_campos.orden
- FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_form = $id
- AND form_contenido_campos.id_campo = form_campos.id
- ORDER BY form_contenido_campos.orden";
- $sql =mysql_query($consulta,$link);
- $consulta_nombre="SELECT * FROM form_id WHERE id ='$id'";
- $sql_nombre =mysql_query($consulta_nombre,$link);
- $nombre =mysql_result($sql_nombre,0,"nombre");
- $id_formulario = $id;
- //if (mysql_num_rows($sql)!='0'){
-$resultado ="$cerrar
$nombre
- ";
-$resultado .= "
-
- Campo
-
-
-
-
-
- Orden
-
-
- Multiple
-
-
- Borrar
-
-
-
";
-
-while( $row = mysql_fetch_array( $sql ) ) {
- /* $multiple = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = '$row[id]' AND descripcion REGEXP '^multiple:' ") ;
- $multiple = explode(":",$multiple[0]);
- $multiple = $multiple[1];*/
-
- //$multiple = $multiple[0];
- $privado = remplacetas('form_parametrizacion','campo',"$id_formulario",'opcion'," tabla='form_id' AND descripcion ='$row[id_campo]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
-
-
- //$multiple = $multiple[0];
-$resultado .= "
-
- $row[id_campo] $row[campo_nombre]
-
-
- Obligatorio
-
-
- 0
-
- 1
-
-
- Privacidad
-
- 0
-
- 1
-
-
-
-
-
-
-
-
";
- }
-
-$consulta_campos_todos ="SELECT form_campos.id, form_campos.campo_nombre, form_campos.campo_descripcion FROM form_campos WHERE form_campos.id_empresa = '$_SESSION[id_empresa]'
- ORDER BY campo_nombre ";
-$sql_consulta_campo =mysql_query($consulta_campos_todos,$link);
-
-$crear_nuevo ="
-
-
-
-
-
-
-";
- while( $row = mysql_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "
$row[campo_nombre] [$row[id]] ";
- }
-$resultado .="
-
-
-
-$crear_nuevo ";
-
- }/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
- if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="
Seleccione un campo";}
-else {
-$id_form=func_get_arg(3);
-$consulta = "SELECT id_campo FROM form_contenido_campos WHERE id_empresa = '$_SESSION[id_empresa]' AND id_campo= '$id' AND id_form= $id_form";
-$sql_consulta =mysql_query($consulta,$link);
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if(mysql_num_rows($sql_consulta) =='0') {
-$microtime = microtime();
-$orden = remplacetas('form_contenido_campos','id_form',$id_form,'orden',"") ;
-$nuevo_orden = $orden[0]+1;
-$consulta_grabar=" INSERT INTO form_contenido_campos (
-`id_campo` ,
-`id_empresa` ,
-`orden` ,
-`id_form` ,
-`obligatorio`,
-`control`
-)
-VALUES (
-'$id', '$id_empresa','$nuevo_orden', '$id_form', '0', md5('$microtime' + rand())
-)";
-$sql_consulta_grabar =mysql_query($consulta_grabar,$link);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_form')");
-return $respuesta;
- }else{
-$div='atencion';$resultado="
El campo ya pertenece a esta consulta ";
- }
- }
-
- }///fin de grabar_campos
-
-if($tipo=='eliminar'){
-$confirmar=func_get_arg(3);
-
-
-if($id==''){
-$id_c=func_get_arg(4);
-$capa_original=func_get_arg(5);
-$resultado = "
- Seguro que desea eliminar el campo de esta consulta?
-
[SI]
-
[NO]
-
- ";}
- else{
- if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "
-
- ";
- }else{
-$consulta="DELETE FROM `form_contenido_campos` WHERE `control` = '$confirmar' LIMIT 1";
-$sql_consulta_eliminar = mysql_query($consulta,$link);
-$div=func_get_arg(5);
-$id_consulta=func_get_arg(4);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_consulta')");
-
- }
- }
-
- }/// fin de eliminar
-if($tipo == 'obligatorio'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `obligatorio` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="
$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-if($tipo == 'orden'){ /// orden
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `orden` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="
$id
- ";
-
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-
-if($tipo == 'prellenado'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `consulta_tipo_campos` SET `prellenado` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="
$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de oprellenado
-$respuesta->addAssign($div,"style.display","block");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("agregar_campos");
-
-function formulario_nuevo($formulario,$div){
- $resultado ="";
- $formulario = mysql_seguridad($formulario);
- $respuesta = new xajaxResponse('utf-8');
- //$formulario=mysql_real_escape_string($formulario);
- $id_empresa= $_SESSION['id'];
- if($div==''){
- $div = "contenido";
-
-$resultado .= "
Formulario ";
-
- return $resultado;
- }
-if($formulario ==''){
- $formulario_nombre = "nuevo_formulario";
- $formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-
-Crear un formulario
-
- Nombre para el formulario
-
-
-
- Descripción
-
-
-
- Formulario anidado con:
- $formulario_respuesta
-
-
- Grupo:
-
-
-
-
- Privado
-
- Público
-
-
-
-
-
- Grabar
-
-
- ";
-
- }else{
-$control = md5(rand(1,99999999).microtime());
-
-$nombre = $formulario['nombre']; // aa
-$descripcion = $formulario['descripcion']; // dxddc
-$publico = $formulario['publico']; // dxddc
-$grupo = $formulario['grupo'];
-$id_empresa = $_SESSION['id_empresa'];
-
-if($publico =='') {$publico ='0';}
-$propietario= $_SESSION['id'];
-$formulario_respuesta = $formulario['formulario_respuesta']; // dxddc
-$link=Conectarse();
-@$formulario=mysql_real_escape_string($formulario);
-mysql_query("SET NAMES 'utf8'");
-$consulta = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-VALUES ('$nombre', '$descripcion', '1', '1', '$publico', '$propietario','$formulario_respuesta','$id_empresa');";
-$sql=mysql_query($consulta,$link);
-$ultimo_id = mysql_insert_id();
- if($grupo !="") {
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo' ,id_empresa= '$id_empresa'";
- $sql_grupo=mysql_query($consulta_grupo,$link);
- }
-
-$respuesta->addscript("xajax_formulario_listado('','contenido'); ");
-}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_nuevo");
-
-
-function formulario_listado($filtro_grupo,$div){
- $item="";
- $grupo_formularios="";
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} if($div==''){
- $div = "contenido";
- if(isset($_SESSION['grupo_formularios'])) { $sesion_grupo_formularios = $_SESSION['grupo_formularios'];}else { $sesion_grupo_formularios = "";}
-$resultado = "
Formularios ";
-
- return $resultado;;
- }
-$control = md5(rand(1,99999999).microtime());
-$respuesta = new xajaxResponse('utf-8');
-$_SESSION['grupo_formularios'] = $filtro_grupo;
-
-$link=Conectarse();
- $id=mysql_real_escape_string('$id');
-mysql_query("SET NAMES 'utf8'");
-if($filtro_grupo =="") {
-$consulta = "SELECT * FROM form_id WHERE id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
- }
-else {
-$consulta = "
-SELECT * FROM form_id, form_grupo
-WHERE form_grupo.id = form_id.id
-AND form_grupo.grupo = '$filtro_grupo'
-AND form_id.id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
-}
-$sql=mysql_query($consulta,$link);
-if($filtro_grupo !="") {
- $leyenda_filtro_grupo ="
Grupo $filtro_grupo ";
-
- }else{ $leyenda_filtro_grupo ="
Administración de Formularios ";
- unset($_SESSION['grupo_formularios']);
- }
-$resultado_link = "
Formularios ";
-$respuesta->addAssign("link_formulario","innerHTML",$resultado_link);
-
-
-$divider = 1;
-$columnas = intval(12/$divider);
- $listado_grupos = select_empresa('form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","AGRUPADO",'','',"$id_empresa");
- $listado_grupos ="
-
- Seleccione un grupo de formularios
- $listado_grupos
-
-
- ";
- $clonar = clonar_formulario($formulario,$id_empresa,"","formato");
- $mover = mover_formulario($formulario,$id_empresa,"formato");
- $nuevo_formulario = "
-
";
- $resultado = "
-
- $nuevo_formulario
-
-
- $listado_grupos
-
- $leyenda_filtro_grupo
-
-
-
- ";
-
-if (mysql_num_rows($sql)!='0' ){
- $i =0;
-
- while( $row = mysql_fetch_array( $sql ) ) {
- $id= $row['id'];
- $C = $id;
-
- $cantidad = formulario_contar($row['id']);
- if($cantidad >0) {$cantidad ="
Llenado: $cantidad veces ";}else{$cantidad = "";}
- $propietario = remplacetas('usuarios','id',$row['propietario'],'email',"") ;
- $estado = remplacetas('form_id','id',$id,'publico',"") ;
- $nombre_formulario = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion_formulario = remplacetas('form_id','id',$id,'descripcion',"") ;
- $estado = "
-
- Contenido privado
-
- Público
-
- ";
- $modificable = remplacetas('form_id','id',$id,'modificable',"") ;
- $modificable = "
-
- Formulario privado
-
- Público
-
- ";
-
-
- $primer = formulario_uso("$id",'','primer') ;
- if(@$primer[0] !='') {$primer = "
Primer registro: ".date ( "Y-m-d h:i:s" , $primer[0])." ";}else{$primer='';}
- $ultimo = formulario_uso("$id",'','ultimo') ;
- @$ultimo_control = $ultimo[1];
- if(@$ultimo[0] !='') {$ultimo = "
Último registro: ".date ( "Y-m-d h:i:s" , $ultimo[0])." ";}else{$ultimo='';}
-
- $nombre = editar_campo("form_id",$row['id'],"nombre","","","","");
- $orden = editar_campo("form_id",$row['id'],"orden","","","","");
- $descripcion = editar_campo("form_id",$row['id'],"descripcion","","","","");
- $geo = buscar_campo_tipo($id,"14");
- $email_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- $mensaje_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
- if($geo[0] !='') { $mapa= "
Mapa";}else {$mapa='';}
-
- if($i % $divider==0) {
-
-//$item .= "";
- }
- $i++;
- $grupo_actual = remplacetas('form_grupo','id',$row['id'],'grupo',"") ;
- if(is_null($grupo_actual[3])) {
- $valores_grupo['id']=$row['id'];
- $valores_grupo['grupo']="";
- $grupo = "
-
- ";
- // $grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }else
- {
- $grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
- }
-
-$item .= "
-
-
-
-
-
-
-
- Creación: $row[creacion] / $propietario[0]
- $cantidad
- $ultimo
- $primer
- $mapa
-
-
-
-
-
$row[id]
-
-
-
-
-
-
-
-
-
-
-
-
Agregar o quitar campos
-
-
-
-
-
-
-
- Nombre: $nombre
- Descripción: $descripcion
- Orden: $orden Grupo: $grupo
-
-
-
Mensaje de respuesta
-
-
$mensaje_envio[0]
-
Soporta CSS3, HTML5 y Bootstrap
-
Grabar y previsualizar
-
-
-
-
-
Previsualización
-
- $mensaje_envio[0]
-
-
-
-
-
-
-
-
-
-
- $estado
-
-
- $modificable
-
-
-
-
-
- ";
-
-
- if($i%$divider==0) {
- $item .= "
";
- }
-
- }
-
-
- //$resultado .="";
- }
-
-
-else{ $resultado .= "
Aún no se han diseñado formularios ";}
-
- $resultado_formulario ="
-
-
- ";
-/*
-
- */
- $resultado = "$resultado $resultado_formulario ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_listado");
-
-function formulario_eliminar($id,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre_form = $nombre[0];
- if($tipo =='') {
-$resultado ="
";
-}elseif($tipo=='cancelar') {
- $resultado ="
Eliminar";
-}elseif($tipo =='eliminar'){
-$consulta = "DELETE FROM form_id WHERE form_id.id = '$id' ";
-$link=Conectarse();
- $sql=mysql_query($consulta,$link);
- if($sql) {
- $respuesta->addAlert("Se eliminó el formulario \" $nombre_form \" ");
- $respuesta->addAssign("panel_$id","innerHTML","");
- return $respuesta;
-
- }
-}
-else {}
-$respuesta->addAssign("eliminar_$id","innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_eliminar");
-
-
-function campo_multiple($id_campo,$id_form,$control,$item){
-//if ( !isset ( $_SESSION['id'] ) ) { return;}
-
- if($item==''){$item=1;}
- $id= $item;
-$render = formulario_campos_render($id_campo,$id_form,$control,$item+1);
- $ingredientes = "
-
- $render
-
-
-
-
- ";
- $boton= "
".($item+1)."
- Agregar campo
-
";
-$div = "id_campo_$id_campo"."_".$id;
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$ingredientes);
-$respuesta->addAssign("boton_".$id_campo."","innerHTML","$boton ");
-return $respuesta;
-
-}
-$xajax->registerFunction("campo_multiple");
-
-
-function formulario_campos_render($id_campo,$id_form,$control,$item,$id_dato){
-$cols ="";
-$style="";
-$campo_multiple="";
-$render="";
-
-$consulta ="
- SELECT *
- FROM form_contenido_campos,form_campos, form_tipo_campo
- WHERE form_contenido_campos.id_form = '$id_form'
- AND form_contenido_campos.id_campo = '$id_campo'
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = form_campos.campo_tipo ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0'){
- if($id_dato !='') {
- $value = remplacetas('form_datos','id',$id_dato,'contenido'," control = '$control'") ;
- $multiple='0';
- $esta_editando =1;
- }
- else {
- $value = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$control'") ;
- $multiple=mysql_result($sql,0,"multiple");
- }
- if($item=='') {$item ="0";}else {$item=$item;}
-
- if($value[0] !='') {$value= "$value[0]";}ELSE{$value='';}
- $campo_nombre=mysql_result($sql,0,"campo_nombre");
- $campo_descripcion=mysql_result($sql,0,"campo_descripcion");
- $campo_tipo_accion=mysql_result($sql,0,"tipo_campo_accion");
- $campo_obligatorio=mysql_result($sql,0,"obligatorio");
- if($campo_obligatorio =='1') {$obligatorio ="danger";}else{$obligatorio ="default";}
-
- if($campo_tipo_accion == 'text'){$render = "
";}
- elseif($campo_tipo_accion == 'date'){$render = "
";}
- elseif($campo_tipo_accion == 'rango'){
- $rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = $rango;}
- elseif($campo_tipo_accion == 'mapa'){
- $lat="";
- $lon="";
- $zoom="";
- if($value !=""){
-
- $campos = explode(" ",$value);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- if($lat =="") {
- $localizacion = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- //$render= $localizacion[0];
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
-
- }
- }
- $render .= "
-
-
-
-
-
- ";
- $cols='12';
- }
-elseif($campo_tipo_accion == 'email'){$render = "
-
-
Escriba un email válido
";}
- elseif($campo_tipo_accion == 'envio'){$render = "
-
-
Se enviará un email
";}
- elseif($campo_tipo_accion == 'textarea'){
- $render = "
$value ";
- $cols='12';
- }
- //$subir_imagen = subir_imagen('');
- elseif($campo_tipo_accion == 'imagen'){
- $style ="display:hidden";
- // $gps = leer_exif($file);
- $render= "
"; //subir_imagen('',$id_campo[$item]);
- $cols='12'; }
-
- elseif($campo_tipo_accion == 'html'){
- $render = "
-
-
$value ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'limit'){
- $limite = limite("".$id_campo."[".$item."]",'','limite');
- $rows = ceil($limite / 50 )+1;
- $render = "$limite /
-
-
-
$value
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'select'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select "; $cols='12'; }
- elseif($campo_tipo_accion == 'radio'){
- $select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_campos'){
- //radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control)
- $campos_valores = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $mensaje = remplacetas('form_campos','id',$id_campo,'campo_descripcion',"") ;
- $campos = explode(":",$campos_valores[0]);
- $titulos = explode(";",$campos[0]);
- $campos_incluidos = explode(";",$campos[1]);
- for($i=0;$i
$campos_incluidos[$i] ";
- //$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "
-
-
-
- $mensaje[0]
- $listado_titulos
- $listado_campos
-
-
-
";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_linea'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = " ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'checkbox'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = checkbox_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";}
- elseif($campo_tipo_accion == 'combo'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = combo_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'relacion'){
- $select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'buscador'){
- $select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'base'){
- $select = buscador_base($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";}
- elseif($campo_tipo_accion == 'vinculado'){
- $vinculado = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $select = formulario_areas($vinculado[0],'campos');
- $render = "
- $select
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'number'){
- $render = "
-
- (solo números)
";}
-
- elseif($campo_tipo_accion == 'password'){
- if( $control != "") {
- $render="";$label=""; $campo_tipo_accion="oculto";
- }else {
- $render = "
-
- ";
- }
- //else {}
- $cols='12'; }
- elseif($campo_tipo_accion == 'unico'){
- $render ="
-
";
- }
- else{$render = " ";}
- if($multiple =='1'){
-
-
- $campo_multiple = "
-
- ";
-}
- if($item == 0) { $label = " $campo_nombre ";}
- else {$label = "$campo_nombre $campo_obligatorio ";}
- ///// CAMPOS QUE NO SE MOSTRARAN
- if($campo_tipo_accion == 'imagen'){
- $label="";
- $campo_descripcion="";
- }
- if($cols =="") {$cols = "6";}
- $input = "
-
-
-$campo_multiple
-
- ";
-
-
-if($campo_tipo_accion != "oculto") {
- $input= $input;
- }else { $input ="";}
-
- }
- return $input;
-}
-
-
-function validar_email($email) {
-
-if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
- return 1;
-}else{
- return 0;
-}
-}
-
-function formulario_valor_campo_ORIGINAL($perfil,$id_campo,$valor,$id_control){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$valor=mysql_real_escape_string($valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-$consulta = "SELECT * FROM `form_datos` WHERE `form_id` = '$perfil' AND id_campo='$id_campo' $valor AND `control` = '$id_control' ORDER BY timestamp DESC limit 1";
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysql_result($sql,0,"control");
-$timestamp=mysql_result($sql,0,"timestamp");
-mysql_data_seek($sql, 0);
-if($cant === 1) {
- $contenido=mysql_result($sql,0,"contenido");
- }else {
-while( $row = mysql_fetch_array( $sql ) ) {
- $contenido .= "$row[contenido]\n ";
- }
- }
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = $contenido;
-}
-return $existe;
- }
-
-
-
-function formulario_valor_campo($perfil,$id_campo,$valor,$id_control,$orden,$timestamp){
-$contenido="";
-if ($timestamp != ""){$where_timestamp = "AND form_datos.timestamp = '$timestamp' ";}ELSE { $where_timestamp = ""; }
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-$campo_multiple = remplacetas("form_contenido_campos","id_campo",$id_campo,"multiple"," id_form ='$perfil'");
-$tipo_campo = remplacetas("form_campos","id","$id_campo","campo_tipo","");
-$campo_multiple = $campo_multiple[0];
-if($tipo_campo[0] =="24") {$campo_multiple = "1";}
-/// SI EL CAMPO ES MULTIPLE O CHECK BOX MUESTRA LAS MULTIPLES ENTRADAS
-if($campo_multiple !="1" ){ $limite =" asc limit 1 ";}else {$limite =" asc ";}
-if(@$orden !=""){ $campo_orden =" AND orden ='$orden' ";}else {$campo_orden ="";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$valor=mysql_real_escape_string($valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-/*
-$consulta = "SELECT * FROM `form_datos`
-WHERE `form_id` = '$perfil'
-AND id_campo='$id_campo' $valor
-AND `control` = '$id_control' $campo_orden
-GROUP BY orden
-ORDER BY timestamp $limite ";
-*/
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$perfil'
- AND id_campo ='$id_campo' $valor
- AND control ='$id_control' $campo_orden
- $where_timestamp
- group by orden
- ORDER BY orden $limite";
-
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysql_result($sql,0,"control");
-$timestamp=mysql_result($sql,0,"timestamp");
-$orden=mysql_result($sql,0,"orden");
-$id_usuario=mysql_result($sql,0,"id_usuario");
-$ip=mysql_result($sql,0,"ip");
-mysql_data_seek($sql, 0);
-$md5_contenido = "";
-if($cant === 1) {
- //$contenido=mysql_result($sql,0,"contenido");
- $identificador=mysql_result($sql,0,"identificador");
- $identificador = explode(',',$identificador);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $md5_contenido = $contenido_campo[3];
- //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
- //$md5_contenido = $md5_contenido[0];
- $contenido = "$contenido_campo[0] ";
- }else {
-while( $row = mysql_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_campo[0]\n";
- }
- }
-// $contenido .="$consulta";
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = "$contenido";
-$existe[] = $md5_contenido;
-$existe[] = $orden;
-$existe[] = $id_usuario;
-$existe[] = $ip;
-}
-return $existe;
- }
-
-function formulario_grabar($formulario) {
- $debug="";
- $respuesta = new xajaxResponse('utf-8');
- $datos="";
- $envio="";
- //$formulario = mysql_seguridad($formulario);
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
- $consulta_grabada ='0';
- $control = $formulario['control']; //
- $form_id = $formulario['form_id']; //
- $tipo = $formulario['tipo']; //
- if(@$formulario['imagen'] !=''){$formulario[0][0] = $formulario['imagen'];}
-
- $consulta_form = "SELECT * FROM form_contenido_campos,form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$form_id' ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-// $sql=mysql_query($consulta_form,$link);
-
-// if (mysql_num_rows($sql)!='0'){
-// mysql_data_seek($sql, 0);
-// while( $row = mysql_fetch_array( $sql ) ) {
-
-
-//////
- if(isset ( $_SESSION['id_empresa'])){$id_empresa = $_SESSION['id_empresa']; }else{
- $id_empresa = remplacetas('form_id','id',$formulario['form_id'],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- }
-foreach($formulario as $c=>$v){
-
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if($V != '') {
-
-
-
-$datos .= "$$c = \$formulario['$c'][$C]; // $V /$campo_tipo[0]
";
- if($campo_tipo[0] =='12' OR $campo_tipo[0] =='13') {
- $validar = validar_email($V);
- if($validar == '0') {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }else {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- }
- }
- if($campo_tipo[0] =='3' ) {
- $validar = is_numeric($V);
- if(is_numeric($V) ) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
- }else{
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] solo acepta valores numéricos");
- return $respuesta;
- }
- }
-
- if($campo_tipo[0]=='17') {
- $limite = limite("$c",'','limite');
- $size= strlen($V);
- $restante = ($limite - $size);
- if( $restante < 0) {
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] no debe tener mas de $limite caractéres, sobran $restante");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
- }
-
-
-
- }
-else{ //busca campos vacios
-
-$campo_obligatorio = remplacetas("form_contenido_campos","id_campo",$c,"obligatorio","id_form = '$formulario[form_id]'");
-if($campo_obligatorio[0] =='1'){
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] es obligatorio");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
-
-}
-
-$md5 = md5($V);
-$igual = formulario_valor_campo("$form_id","$c","$md5","$formulario[control]","$C");
-$existe = formulario_valor_campo("$form_id","$c","","$formulario[control]","$C");
-//$valor_anterior .= $existe[3]."| ";
-$debug .= "$existe";
-if(!is_null($existe) AND $tipo =='edit' AND $V =='') {
- $consulta_vacio ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysql_query($consulta_vacio,$link);
- if($sql) {
- $consulta_grabada ='1';
- }
-}
-if(is_null($igual) ){$repetido = 0;}else{
-$repetido = 1;
-}
-
-
-//return $respuesta;
-//$respuesta->addAlert("$debug");
-//return $respuesta;
-$debug .= "V = $V /$c /$repetido / $igual ";
-if(($V !='' ) && (is_numeric($c)) AND $repetido !=1 ) {
-//$debug = "Hola mundo";
- $V = mysql_real_escape_string($V);
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
-
-if(@$campo_tipo[0] =="18") {
- $V = md5("$V");
-}else{$V=$V;}
-
-
- $consulta ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '".@$_SESSION[id]."', '$V', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysql_query($consulta,$link);
- $debug .= "$consulta = $sql ,";
- if($sql) {
- $consulta_grabada ='1';
- }
- }
-
- } ///fin del array
-
- }///fin del array primario
- else {
- if($v !='') { //$datos .= "$$c = \$formulario['$c']; // $v
";
- }
- }
- }
-
-
-
-
-// }
-// }
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX" )
-{
- $exito ="
-
- $formulario[mensaje]
-
- ";
- $mail = '1';
- }
- elseif($tipo == "solocampos" ){
-
-
- $exito ="
-
- $formulario[mensaje]
-
- ";
-
- $mail='0';
- }
- else{
- $campo_envio = buscar_campo_tipo($formulario['form_id'],"13");
- if($campo_envio[0] != "") {
-$envio = email_contenido("$formulario[form_id]","$formulario[control]","$campo_envio[0]",'');
- }
-
-if($tipo = "embebido") {
-$otro_formulario ="
-
- Llenar otro formulario
-
-";
-}else {
- $otro_formulario = "
-
- Llenar otro formulario
-
-
- ";
-}
-$impresion = formulario_imprimir("","$formulario[control]","preview");
-$mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
-//$impresion = mostrar_identificador($formulario['control']);
- $exito ="
-
- $mensaje_agradecimiento[0]
-
-
- $impresion
-
-
- Gracias por llenar el formulario $formulario[form_nombre]
-
-
- $otro_formulario
-
-
- $envio
-
-
-
";
-
-// $mail ='1';
- }
-
-//if($mail =='1') {
-
- //$propietario = remplacetas('form_id','id',$formulario[form_id],'propietario',"") ;
- //$propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $email_envio = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($email_envio[0] !="") {
- $impresion = formulario_imprimir("","$formulario[control]","preview");
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email = remplacetas("empresa","id","1","email","");
- $email = remplacetas("empresa","id","$id_empresa","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$formulario[form_id],"nombre","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $razon_social[0] <$reply[0]>\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0]" . "\r\n";
-
-$asunto= "$nombre_formulario[0]";
-$cuerpo ="
-$mensaje_agradecimiento[0]
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]i$formulario[control]
-Saludos de MILFS
-";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $exito .=""; }else {$exito .="error enviando correo";}
- //$exito .= "$email[0] $headers ";
- }
- /// }
- $respuesta->addAssign("div_$control","innerHTML","$exito ");
- return $respuesta;
- }else{
- $mensaje ="
-
-
Todo bien pero al parecer no se modicaron registros ";
- $respuesta->addAssign("div_$control","innerHTML","$mensaje");
- }
-//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
-return $respuesta;
-}
-$xajax->registerFunction("formulario_grabar");
-
-function mysql_seguridad($inp) {
- if(is_array($inp))
- return array_map(__METHOD__, $inp);
-
- if(!empty($inp) && is_string($inp)) {
- return str_replace(array('\\', "\0", "'", '"', "\x1a"), array('\\\\', '\\0', "\\*", "\\*", '\\Z'), $inp);
- }
-
- return $inp;
-}
-
-function formulario_campos_render_multiple($id_campo,$id_form,$control,$item) {
-
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$id_form'
- AND id_campo ='$id_campo'
- AND control ='$control'
- group by orden ORDER BY orden asc";
- $link=Conectarse();
- //$resultado .= "$consulta";
- mysql_query("SET NAMES 'utf8'");
- $sql =mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0' ){
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- //$identificador = $row[identificador];
- $resultado .= $identificador;
- $resultado .= formulario_campos_render($row[id_campo],$id_form,$control,$row[orden],$identificador);
- $item = $item + 1;
- }
- }
- $resultado .= formulario_campos_render($id_campo,$id_form,'',$item,'')."";
-
- return $resultado;
-}
-
-
-
-function formulario_modal($id,$form_respuesta,$control,$tipo) {
-
- $respuesta = new xajaxResponse('utf-8');
- $solo_campos ="";
- $subir_imagen ="";
-
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
- $formulario_respuesta = formulario_respuesta("$id","$control");
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"",'') ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = "$formulario_respuesta";
- $pie .= empresa_datos("$id_empresa",'pie');
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $cabecera ="".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
-
- $nuevo_formulario = "Llenar otro formulario ";
-if($control !='' AND $tipo =='' ) {
- $impresion = formulario_imprimir("$id","$control","");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $muestra_form = "$impresion
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $modificable = remplacetas('form_id','id',$id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
-
-$consulta = "
- SELECT * FROM form_id, form_contenido_campos
- WHERE form_id.id = form_contenido_campos.id_form
- AND form_id.id = '$id' ORDER BY form_contenido_campos.orden ASC
- ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- $descripcion=mysql_result($sql,0,"descripcion");
- $nombre=mysql_result($sql,0,"nombre");
- $id_empresa=mysql_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera = "
- $salir
-
-
-
-
-
-
-
-
-
$nombre $descripcion
-
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($id,"15");
-@$campo_imagen_nombre = $campo_imagen[1];
-@$campo_imagen = $campo_imagen[0];
-
-
-if (@$campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$id","$campo_imagen"."[0]");
- }
- $muestra_form = "
-
-
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {
-
- //if(null === @$_SESSION['id'] AND $permiso_identificador != $control) {
- if($_SESSION['id_empresa'] !== $id_empresa AND $permiso_identificador != $control) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
-
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //// si no esta logueado nose puede editar ////
- $control_edit = "$control";
-
- }else {$control_edit = "";}
-
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas("form_campos","id","$row[id_campo]","campo_tipo","");
- //if($tipo_campo[0] =="24") { $row[multiple] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos = formulario_campos_render_multiple($row['id_campo'],$id,$control_edit);
- }else{
- $campos = formulario_campos_render($row['id_campo'],$id,$control_edit,'','');
- }
- $muestra_form .= "$campos ";
- $solo_campos .= "$campos ";
- }
- $muestra_form .="
-
- ";
- }
-
-$muestra_form .="
-
-
-
";
- $muestra_form = "$muestra_form
";
-if($tipo=='campos') {
- return $solo_campos;
-}
-if($tipo=='embebido') {
- return $muestra_form;
-}
-
-$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
-$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
-$respuesta->addAssign("pie_modal","innerHTML","$pie");
-$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-//$respuesta->addscript("$('textarea').markdown({autofocus:false,savable:false})");
-//$respuesta->addscript("$(document).ready(function () { $(\"#24[0]\").cleditor(); })");
-//$(document).ready(function () { $("#input").cleditor(); });
-
-
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_modal");
-
-
-
-function limpia_div($capa){
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($capa,"style.padding","0px");
-$respuesta->addClear($capa,"innerHTML");
-
-return $respuesta;
-}$xajax->registerFunction("limpia_div");
-
-
-function select_key($tabla,$key,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$key;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-$resultado="
-Seleccione
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
-if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_empresa($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor,$id_empresa){
- $w ="";
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE id_empresa = '$id_empresa' $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado="
-Seleccione
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row['campo_valor'] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= " $row[campo_valor] ";
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-
-
-function radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-$valor = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-$nombre_linea = mysql_result($sql,0,"campo_nombre");
-$descripcion_linea = mysql_result($sql,0,"campo_descripcion");
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor[0]"){$selected="checked";}else{$selected ="";}
-$lineas .= " $row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-
-function radio_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-$nombre_linea = mysql_result($sql,0,"campo_nombre");
-$descripcion_linea = mysql_result($sql,0,"campo_descripcion");
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$lineas .= "$row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-function radio_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado="
-
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$resultado .= " $row[campo_valor]
";
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function checkbox_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
- $name = explode("[",$name);
- $name = $name[0];
- $fila="0";
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' and contenido ='$row[campo_valor]' ");
-
- $nombre= "$name"."[".$fila."]";
-//if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-if($value[0] ==="$row[campo_valor]"){$selected="checked";}else{$selected ="";}
-$resultado .= "
-
-
- $row[campo_valor] $selected
-
-
";
- $fila++;
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function rango($tabla,$campo,$key,$valor,$selected,$nombre,$onchange){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT min($campo) as min , max($campo) as max FROM $tabla WHERE $key ='$valor' ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- $min=mysql_result($sql,0,"min");
- $max=mysql_result($sql,0,"max");
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-$resultado="
- $min
-
- $max $selected
-
" ;
-
-
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function limite($id_campo,$contenido,$tipo){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT campo_valor FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- $limite=mysql_result($sql,0,"campo_valor");
-
- }else{}
- if($tipo =='limite') { return $limite;}
-$respuesta = new xajaxResponse('utf-8');
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("limite");
-
-function confirma_campo($valor_1,$valor_2,$campo,$campo_confirmacion){
- $respuesta = new xajaxResponse('utf-8');
- $pos = strpos($campo,"email");
-
-if($pos == "") { //// si no es un email
- }
- else {//// si es un email se revisa
- $email = validar_email("$valor_1");
- if($email === 0 ) {
- $respuesta->addAssign("$campo","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("El email no es valido ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- return $respuesta;
- }
- else{
- }
- }
-
-
-
- if($valor_1 != $valor_2){$resultado = "Los valores NO son iguales";
- $respuesta->addAlert("$resultado");
- /// $respuesta->addAssign("$campo","style.color","red");
-
-
- $respuesta->addAssign("$campo","value","$pos");
- $respuesta->addAssign("$campo_confirmacion","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- // document.getElementById('mobileno').focus();
-
-
- }else{
- //$respuesta->addAssign("$campo_confirmacion","style.color","green");
-
- $respuesta->addAssign("$campo","className"," form-control ");
- $respuesta->addAssign("$campo_confirmacion","className"," form-control ");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-success ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-success ");
- }
- return $respuesta;
-}
-$xajax->registerFunction("confirma_campo");
-
-
-function validar_campo($valor,$campo,$tabla,$div,$id){
-$valor = mysql_seguridad($valor);
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta="SELECT $campo FROM $tabla WHERE $campo = '$valor' LIMIT 1";
-$sql =mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0' ){
-$verificacion = "atencion"; $existe='';
-
-$respuesta->addAssign($campo,"value","");
-///$respuesta->addAlert("El valor $valor $existe existe");
-$resultado = "Grrr $valor $existe existe ";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else {$verificacion ="check"; $existe='NO';}
-$resultado = "Ok, buen $campo ! ";
-$respuesta->addAssign("$id","style.backgroundColor","#CBE7CB");
-//$resultado .= "$valor,$campo,$tabla,$div";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-
-return $respuesta;
-}
-$xajax->registerFunction("validar_campo");
-
-
-function comprobar_email($email,$tipo,$campo){
-$email = mysql_seguridad($email);
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='tercero') {$id_campo='tercero_email';}
-
-
-else{$id_campo = 'email';}
-
-if($campo !=''){
-$id_campo="$campo";
-}
-
-
-if ($email == "" AND $tipo==''){
- $respuesta->addAlert("El campo email es obligatorio ");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- return $respuesta;
- }
-
- $mail_correcto = 0;
- //compruebo unas cosas primeras
- if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
- if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
- //miro si tiene caracter .
- if (substr_count($email,".")>= 1){
- //obtengo la terminacion del dominio
- $term_dom = substr(strrchr ($email, '.'),1);
- //compruebo que la terminación del dominio sea correcta
- if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
- //compruebo que lo de antes del dominio sea correcto
- $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
- $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
- if ($caracter_ult != "@" && $caracter_ult != "."){
- $mail_correcto = 1;
- }
- }
- }
- }
- }
- if ($mail_correcto AND $tipo=='' )
- {
-$consulta= "SELECT email FROM usuarios WHERE email = '$email' LIMIT 1 ";
- $link=Conectarse();
-$sql=mysql_query($consulta,$link);
-$revisa=mysql_result($sql,0,"email");
-if ($revisa != ''){
-
- $respuesta->addAlert("$email: ya está registrado ");
- $respuesta->addAssign("email","style.color","red");
- $respuesta->addAssign("email","value","");
- return $respuesta;
- }
- $respuesta->addAssign("email","style.color","green");}
- elseif ($mail_correcto AND $tipo==='revisar' ) {
- $revisar = remplacetas("usuarios","email",$email,"email","");
- if($revisar[0] != '') {
-
- $respuesta->addAssign("$campo","style.color","white");
- $respuesta->addAssign("$id_campo","style.backgroundColor","green");
- }else{
- $respuesta->addAlert("$email: No existe en el sistema)");
- $respuesta->addAssign("$campo","value","");
- }
- return $respuesta;
- }
-
- elseif ($mail_correcto AND $tipo==='tercero' ) {
- $documento = remplacetas("terceros","email",$email,"documento","");
- if($documento[1] =='') { /// si el tercero NO existe
-
- }else { /// si el tercero existe en el sistema
-
- $tipo_persona = remplacetas("terceros","id",$documento[1],"tipo_persona","");
-
- if($tipo_persona[0] =='1') {
- $razon_social = remplacetas("terceros","id",$documento[1],"razon_social","");
- $resultado .= " $razon_social[0]] Nit: $documento[0]";
- } else {
- $primer_nombre = remplacetas("terceros","id",$documento[1],"p_nombre","");
- $segundo_nombre = remplacetas("terceros","id",$documento[1],"s_nombre","");
- $primer_apellido = remplacetas("terceros","id",$documento[1],"p_apellido","");
- $segundo_apellido = remplacetas("terceros","id",$documento[1],"s_apellido","");
- $resultado .=" \r $primer_nombre[0] $segundo_nombre[0] $primer_apellido[0] $segundo_apellido[0] \r Documento: $documento[0]";
- }
-
- $respuesta->addAlert("$email: $resultado");
- $respuesta->addAssign("tercero_documento","value","$documento[0]");
- $respuesta->addAssign("tercero_primer_nombre","value","$primer_nombre[0]");
- $respuesta->addAssign("tercero_segundo_nombre","value","$segundo_nombre[0]");
- $respuesta->addAssign("tercero_primer_apellido","value","$primer_apellido[0]");
- $respuesta->addAssign("tercero_segundo_apellido","value","$segundo_apellido[0]");
- $respuesta->addAssign("tercero_razon_social","value","$razon_social[0]");
- $respuesta->addAssign("tercero_id","value","$documento[1]");
-
- }
-
- }
- else
- {$respuesta->addAlert("$email: no es un correo válido");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("comprobar_email");
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-
-function milfs(){
- $crear_campos = formulario_crear_campo('','','');
- $listado = formulario_listado('','');
- //$consultas = formulario_consultar('','');
- $importador = formulario_importador('');
- $limpiar_cache = borrar_tmp('');
- $configuracion= configuracion('');
-
- $login = login_boton('');
- $menu =
-"
-
-
-
- $crear_campos
-
- $listado
-
-
- $configuracion
-
-
-
-
-
";
-
- return $menu;
-}
-function url_existe($url)
-{
- $handle = @fopen($url, "r");
- if ($handle == false)
- return NULL;
- fclose($handle);
- return $url;
-}
-function es_imagen($url)
- {
- $imageSizeArray = getimagesize($url);
- $imageTypeArray = $imageSizeArray[2];
- return (bool)(in_array($imageTypeArray , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG )));
- }
-function parametrizacion($array) {
- //return $array;
- $link=Conectarse();
- mysql_real_escape_string($array);
- $accion = $array[accion];
- $tabla = $array[tabla];
- $campo = $array[campo];
- $opcion = $array[opcion];
- $descripcion= $array[descripcion];
- $visible= $array[visible];
- $id= $array[id];
-
- if($accion =='grabar'){
- $consulta= "INSERT INTO form_parametrizacion set tabla='$tabla', campo ='$campo',opcion ='$opcion' , descripcion ='$descripcion' ,visible='$visible'";
- }
- // return $consulta;
- $sql=mysql_query($consulta,$link);
- if($sql){return "Campo grabado"; }else{return "";}
-
-}
-
-?>
diff --git a/milfs/funciones/funciones_back.php b/milfs/funciones/funciones_back.php
deleted file mode 100644
index 5a2a6ce..0000000
--- a/milfs/funciones/funciones_back.php
+++ /dev/null
@@ -1,9399 +0,0 @@
-
- $row[descripcion]
-
-
-
-
- $impresion
-
- ";
- }
- $resultado = "
-
-
- LO MAS VISTO
-
-
- $contenido
-
-
- ";
- }
- elseif($tipo =='formulario') {
- while( $row = mysql_fetch_array( $sql ) ) {
- $formulario_titulo = remplacetas('form_id','id',"$row[campo]",'nombre',"") ;
- $formulario_empresa = remplacetas('form_id','id',"$row[campo]",'id_empresa',"") ;
- $empresa_logo = remplacetas('empresa','id',"$formulario_empresa[0]",'imagen',"") ;
- $contenido .= " ";
-
- }
- $resultado = "
-
-
- LO MAS ACTIVO
-
-
- $contenido
-
-
- ";
-
- }
- else{}
-
- }
- }
-
-
-return $resultado;
-}
-
-function social_login($accion,$servicio,$uid) {
- require ("milfs/includes/parametrizacion.php");
- $control_uid = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$uid' AND id_campo = '$social_login_uid'") ;
- $control_servicio = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$servicio' AND control = '$control_uid[0]'") ;
- $usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_usuario'") ;
- $nombre_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido"," id_campo = '$login_campo_nombres'") ;
- $avatar_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_avatar'") ;
-
- if($accion == "consultar") {
-
- if($control_servicio[0] != "") {
- $resultado ="Existe $control_servicio[0] ";
- }
- else {
- $resultado ="";
- }
- }
- elseif($accion =="login") {
- if($control_servicio[0] != "") {
- $_SESSION['usuario_milfs'] = "$usuario[0]";
- $_SESSION['nombre_usuario_milfs'] = "$nombre_usuario[0]";
- $_SESSION['control_usuario_milfs'] = "$control_servicio[0]";
- $_SESSION['avatar_usuario_milfs'] = "$avatar_usuario[0]";
-
- header("Location: ./");
- die();
- }
- else{
- session_destroy();
- header("Location: ./");
- die();
- }
-
-
-
- }
- else{}
-
-return $resultado;
-
-}
-
-
-function campo_privacidad($opcion,$id_campo,$form,$accion) {
- //return $array;
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-$respuesta = new xajaxResponse('utf-8');
- if($accion =='grabar'){
- $limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$form' AND descripcion='$id_campo' AND opcion like 'privacidad:%' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1 ";
- $sql=mysql_query($limpiar,$link);
-
- $consulta= "INSERT INTO form_parametrizacion set tabla='form_id', campo = '$form', opcion ='privacidad:$opcion' , descripcion ='$id_campo' ,visible='0', id_empresa = '$_SESSION[id_empresa]'";
- }
- // return $consulta;
- $sql=mysql_query($consulta,$link);
- if($sql){
- if($opcion == '1') { $mensaje = "El campo ahora es privado y NO se mostrará su contenido";}
- else { $mensaje = "El campo ahora ES PÚBLICO y SE MOSTRARÁ su contenido";}
- //$respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- $respuesta->addAlert("ATENCION: $mensaje");
- return $respuesta;
- }else {
- //$respuesta->addAlert("$consulta");
- //$respuesta->addAssign("debug","innerHTML","$consulta");
- //return $respuesta;
- }
-
-}
-$xajax->registerFunction("campo_privacidad");
-
-
-
-function respuestas_formulario($id,$identificador) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $formulario_respuesta = formulario_respuesta("$id","$identificador");
- $consulta = "SELECT form_id , timestamp FROM form_datos
- WHERE control = '$identificador' AND form_id != '$id' GROUP BY form_id , timestamp
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
-
- $resultado ="";
- while( $row = mysql_fetch_array( $sql ) ) {
- $respuesta = mostrar_identificador("$identificador","$row[form_id]","respuesta",'simple',"$row[timestamp]");
- $fecha = date($format, $row['timestamp']);
- $resultado .= " $respuesta ";
-
-}
- $resultado .="";
-}else{$resultado ="";}
-$resultado = "$resultado $formulario_respuesta";
-return $resultado;
-}
-
-
-function formulario_respuesta($id,$identificador) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $consulta = "SELECT * FROM form_id
- WHERE formulario_respuesta = '$id'
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado ="
- ";
- while( $row = mysql_fetch_array( $sql ) ) {
- $resultado .= "$row[nombre] $row[descripcion] ";
-
-}
- $resultado .="
";
-}else{$resultado ="";}
-return $resultado;
-}
-function consultar_contenido_formulario($form,$registros,$pagina,$tipo){
- $imagen ="";
- $acciones ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $campo_filtro ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
-$respuesta = new xajaxResponse('utf-8');
-
-
-$id_form = $form;
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql_total=mysql_query($consulta_principal,$link);
-$total_registros = mysql_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta_principal.$limite;
- $sql=mysql_query($consulta_limite,$link);
-mysql_data_seek($sql_total, 0);
-//$sql=mysql_query($consulta_principal,$link);
-if (mysql_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-//$fecha = time ();
-// $ahora = date ( "Y-m-d" , $fecha );
-// $campos = listar_campos_formulario($id_form,"select");
-
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
- $paginacion = "";
- $encabezado = "
- ";
-
-// $total_registros = mysql_num_rows($sql);
-/* $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- */
-// $listado_nombres = "Identificador $listado_nombres ";
-///$listado_campos = listar_campos_formulario("$id_form",'');
-mysql_data_seek($sql_total, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-
-// if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","landingpage",'');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= " $row[control]";
- }
-$buscador = buscar_datos("*formato*","$form","landingpage","mostrar_resultado");
-$filtro = portal_filtro_campos_select($form,"$campo_filtro","mostrar_resultado","landingpage");
-if( $tipo !== "" AND $tipo !=="embebido" ) {
-$acciones="
-
-
-
-
- $filtro
-
- $buscador
-
- ";
-}
-$resultado = "
-
-
-$acciones
-
-$linea
-$encabezado
-
-";
- }
-else {
-$resultado ="
No hay resultados $consulta_limite";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-
- /*$datos = $resultado;
- $div ="contenido_de_modal";
- $resultado = " $datos
";
- $div_contenido = "$div
";
- */
- if($tipo =="") {
- // $respuesta->addAssign("contenido_interior","innerHTML","$div_contenido");
- $respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- return $respuesta;
- }
- if($tipo =="contenido" OR $tipo =="embebido" ) {
- return $resultado;
- }
-}
-$xajax->registerFunction("consultar_contenido_formulario");
-
-
-function multiempresa_listado($tabla,$div){
-$resultado = "";
-$encontrados = "";
-$link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-
-mysql_data_seek($sql, 0);
-$fila=1;
-$divider=4;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysql_fetch_array( $sql ) ) {
- if($i % $divider==0) {
- $encontrados .= "";
- }
- $i++;
- if($row[imagen] !="") {
- $logo="
";
- }
- else {
- $logo_empresa = remplacetas('empresa','id',"1",'imagen','');
- $logo="
";
- }
- $slogan= substr($row[slogan],0, $length = 140);
- $contenido ="
-
-
-
-
$row[razon_social]
-
-
$logo
-
-
-
-
-
";
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- $resultado ="
-
- $encontrados
-
- ";
- }else{
- $resultado = " No hay resultados
";
- }
-if($div =="") { return $resultado; }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa_listado");
-
-
-
-function decodifica_parametro ($string)
-{
- $inicial = substr($string,0,1);
- $string = mb_substr($string,1);
- $cadena = $string;
- //$length = strlen($base);
-
- $size = strlen($string) - 1;
- $string = str_split($string);
-
- //$out = strpos($base, array_pop($string));
-//return $out;
- /*foreach($string as $i => $char)
- {
-
- $out += (strpos($base, $char)* pow($length, $size - $i));
-//$out .= "$i => $char";
- }*/
-$resultado[0]=$inicial;
-//$resultado[1]=$out;
-$resultado[1]=$cadena;
-
- return $resultado;
-}
-
-function grabar_imagen($imagen,$control) {
-
- $imgData = str_replace(' ','+',$imagen);
- $imgData = substr($imgData,strpos($imgData,",")+1);
- $imgData = base64_decode($imgData);
-
- $nombre= $control.".png";
- $filePath = "$_SESSION[path]/tmp/".$nombre;
-
- $file = fopen($filePath, 'w');
- fwrite($file, $imgData);
- fclose($file);
- $full= "$_SESSION[path_images_secure]/full/".$nombre;
- if (!rename($filePath,$full)){}
- else {
- echo generar_miniatura($nombre,"150");
- echo generar_miniatura($nombre,"300");
- echo generar_miniatura($nombre,"600");
- }
-
- //return "$nombre";
- return "$nombre";
-}
-
-
-function generar_miniatura($file,$width) {
//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[0] / $file_info[1];
// Calculamos las nuevas dimensiones
$newwidth = $width;
$newheight = round($newwidth / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 80);
-imagepng($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 9);
-//imagegif($thumb,"$_SESSION[path_images_secure]/".$width."/$file");
-//imagejpeg($thumb,null, 80);
-}
-
-function generar_vcard($identificador){
-$impresion = mostrar_identificador("$identificador","","vcard",'simple');
-$impresion = formulario_imprimir("$id_form","$identificador","$plantilla");
-$nombre ="vcard_".$identificador.".vcf";
-$vcard ="BEGIN:VCARD
-VERSION:3.0
-N:Gump;Forrest
-FN:Forrest Gump
-ORG:Bubba Gump Shrimp Co.
-TITLE:Shrimp Man
-PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif
-TEL;TYPE=WORK,VOICE:(111) 555-1212
-TEL;TYPE=HOME,VOICE:(404) 555-1212
-ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
-LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America
-ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
-LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America
-EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com
-REV:20080424T195243Z
-END:VCARD";
-$archivo = "milfs/tmp/$nombre";
-$file=fopen($archivo,"w") or die("Problemas en la creacion");//En esta linea lo que hace PHP es crear el archivo, si ya existe lo sobreescribe
-fputs($file,$impresion);//En esta linea abre el archivo creado anteriormente e ingresa el resultado de tu script PHP
-fclose($file);//Finalmente lo cierra
-/*
-$ruta="/tmp/vcard_".$identificador.".vcf";
-header ("Content-Disposition: attachment; filename=".$ruta);
-header ("Content-Type: application/octet-stream");
-header ("Content-Length: ".filesize($ruta));
-readfile($ruta);
-*/
-return $archivo;
-
-
-}
-
-function autoriza_formulario_mostrar($password,$form,$control) {
- $respuesta = new xajaxResponse('utf-8');
- if($password =="") { unset($_SESSION['permiso_identificador']); $respuesta->addScript("javascript:location.reload(true);"); return $respuesta;}
- $campo = buscar_campo_tipo($form,"18");
- $campo_password = $campo[0];
- $comprobar_clave = remplacetas('form_datos','form_id',"$form",'contenido'," BINARY contenido = MD5('$password') AND id_campo = '$campo_password'") ;
- $password = md5($password);
- $aviso = "";
-
-if($comprobar_clave[0] !== $password ) {
- unset($_SESSION['permiso_identificador']);
- $respuesta->addAlert("La clave no es válida ");
- $aviso = "$comprobar_clave[2] !== $control";
- $respuesta->addAssign("pie_modal","innerHTML",$aviso);
- return $respuesta;
- }
- else{
- $_SESSION['permiso_identificador']="$control";
- //$respuesta->addAssign("pie_modal","innerHTML",$aviso);
- $respuesta->addScript("javascript:location.reload(true);");
- }
- return $respuesta;
-}
-$xajax->registerFunction("autoriza_formulario_mostrar");
-
-
-//($control,$form,$plantilla,$tipo)
-function landingpage_contenido_identificador($identificador,$form,$plantilla,$tipo){
- $linea="";
-
- $id_empresa = remplacetas('form_datos','control',$identificador,'id_empresa',"") ;
- //$form = remplacetas('form_datos','control',$identificador,'form_id',"") ;
-
- $respuestas = respuestas_formulario($form,$identificador);
- $imagen = buscar_imagen($form[0],$identificador,"","$id_empresa[0]");
- $plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$plantilla",'id',"campo = '$form'") ;
-
- $uri = "$_SESSION[site]i$identificador";
- $qr = "https://qwerty.co/qr/?d=$uri";
- if($imagen !="") {
-
- $mostrar_imagen =" ";
- $miniatura = "
- $uri";
-
- }else {
- $miniatura ="i$identificador ";
- $mostrar_imagen = " ";
-
-
-
- }
-
- //
- //$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- if($plantilla[0] !="" ) {
- $impresion = mostrar_identificador($identificador,"","landingpage","","");
- } else{
- $contenido = mostrar_identificador($identificador,"","","","");
- $impresion = "
-
-
-
-
-
-
-
-
-
-
-
-
- $contenido
- $miniatura
-
-
- $mostrar_imagen
-
-
-
-
-
-
-
-
-
-
-
- ";
-
- }
- $linea = "
-
-
- ";
-
- return $linea;
- }
-
-
-function landingpage_contenido_formulario($form,$registros,$pagina,$div_original){
- $cantidad = formulario_contar($form);
- $div="contenido_interior";
- //if($registros =="") {$registros ="10";}
- $consulta= "SELECT control FROM form_datos WHERE form_id = '$form' GROUP BY control ORDER BY id DESC ";
- $id_empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- //$sql=mysql_query($consulta,$link);
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysql_query($consulta_limite,$link);
-
- $paginacion ="";
- $paginacion .= $indice;
-/*
- /// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysql_query($consulta_limite,$link);
- $page= $pagina;
- @$pages= ceil($cantidad / $registros); //13; // Hardcoded for testing purpose
- $limit= 20 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
-
- $paginacion = "";
-
- */
-
- //// PAGINACION
-if (mysql_num_rows($sql)!='0'){
- $linea=" ( $cantidad ) $paginacion";
- $fila = 1;
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
- $impresion = mostrar_identificador($row['control'],"","landingpage","","");
- $imagen = buscar_imagen($form,$row['control'],"","$id_empresa[0]");
- if($imagen !="") { $clase = "col-lg-5 col-sm-6";}else {$clase = "col-lg-12 col-sm-12";}
- $uri = " Ver mas ... ";
- $linea .= landingpage_contenido_identificador($row['control']);
- }
- $resultado_linea="$linea
";
- }
- if($div_original=="") {
-
- return $resultado_linea;
- }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$linea");
-
- return $respuesta;
-
- }
- }
-$xajax->registerFunction("landingpage_contenido_formulario");
-/*
-$respuesta = new xajaxResponse('utf-8');
-$resultado =" $mensaje Procesando ... ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-
-*/
-function landingpage_contenido($id_empresa){
-$consulta= "SELECT * FROM form_id WHERE publico ='1' AND id_empresa= '$id_empresa' ORDER BY orden ASC";
-$miniatura ="";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- $linea="";
-if (mysql_num_rows($sql)!='0'){
-
- $fila = 1;
- //include("includes/datos.php");
- $error_token = "";
- $contenido = "";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; } else {$error_token = "";}}
- while( $row = mysql_fetch_array( $sql ) ) {
- $contenido = "Mas información ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- if($ultimo_mapa[0] !="") {
- $campos = explode(" ",$ultimo_mapa[0]);
- $lat = $campos['0'];
- @$lon = $campos['1'];
- @$zoom = $campos['2'];
-
- if($error_token != 1) {
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/negro.png");
- $miniatura = "
-
-
- "; }else{ $miniatura ="No se ha definido un token de mapbox
";}
- }
- if($geo[0] !='') { $mapa= "$miniatura ";}else {$mapa='';}
- if ( $fila%2==0){
-
- $linea .= "
-
-
-
-
-
-
-
-
-
$row[nombre]
-
$row[descripcion]
- $mapa
-
-
-
- $contenido
-
-
-
-
-
-
-
-
- ";
-
- }else{
- $linea .= "
-
-
-
-
-
-
-
-
-
-
$row[nombre]
-
$row[descripcion]
- $mapa
-
-
-
- $contenido
-
-
-
-
-
-
-
- ";
- }
-
-
- //$linea .= "$fila $plantilla$row[nombre] ";
- $fila++;
- }
- }
-return $linea;
-}
-
-function buscar_imagen($form,$control,$tipo,$empresa) {
- $imagen="";
- if($control !="") { $w_control = "AND form_datos.control ='$control'";}else{$w_control ="";}
- if ($form ==""){
- $consulta = "SELECT form_datos.id_empresa, contenido , campo_nombre , id_campo FROM form_id, form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_id.id = form_datos.form_id
- AND form_datos.id_empresa = '$empresa'
- AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $imagen = mysql_result($sql,0,"contenido");
- }
-if($tipo == "consulta") { return $consulta; }
- return $imagen;
-
- }
-$publico = remplacetas('form_id','id',"$form",'publico',"") ;
-if($publico[0] !="0" ){
-$campo_imagen = buscar_campo_tipo("$form","15");
-$imagen = remplacetas('form_datos','form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ;
-//$imagen = "$imagen[0]";
-return $imagen[0];
-}
-return;
-}
-
-function wait($div,$mensaje){
-$respuesta = new xajaxResponse('utf-8');
-$resultado =" $mensaje Procesando ... ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-
-function campos_tabla($filtro,$div) {
-$mio ="";
-$lineas ="";
-$w_empresa ="";
-$w_especialista ="";
-if($filtro == 'id_empresa') { $w_empresa = " AND id_empresa = '$_SESSION[id_empresa]' ";}
-if($filtro == 'id_especialista') { $w_especialista = " AND id_especialista = '$_SESSION[id]' ";}
-if($filtro == 'llenos') {
-$consulta= " SELECT * , form_campos.id as id FROM form_campos, form_datos WHERE form_campos.id = form_datos.id_campo $w_empresa $w_especialista GROUP BY id_campo ORDER BY campo_area, campo_nombre ";
-}elseif($filtro == 'vacios') {
-$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_datos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-}else{
-$consulta= " SELECT * FROM form_campos WHERE id = id $w_empresa $w_especialista ORDER BY campo_area, campo_nombre ";
-}
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- //$div = "div_tabla_campos";
- $filtros = "
-
-
-
- Seleccione
- Todos
- Mis campos
- Mi empresa
- Vacios
- Llenos
-
-
-
- ";
- if (mysql_num_rows($sql)!='0'){
- while( $row = mysql_fetch_array( $sql ) ) {
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"") ;
- $campo_tipo ="$tipo_nombre[0] ";
- if($_SESSION['id_empresa'] == $row['id_empresa']) {
- $row['campo_nombre']= editar_campo("form_campos","$row[id]","campo_nombre","","","","");
- $row['campo_descripcion']= editar_campo("form_campos","$row[id]","campo_descripcion","","","","");
- $row['campo_area']= editar_campo("form_campos","$row[id]","campo_area","","","","");
- $row['activo']= editar_campo("form_campos","$row[id]","activo","","","","","");
- $accion = " ";
- $class='success';
- }else {
- $class='';
- $accion ="";
- }
- if($_SESSION['id'] == $row['id_especialista']) {
- $row['id_especialista'] = " $row[id_especialista]";
- }
-
- $lineas .= "$row[id] $row[campo_nombre] $row[campo_descripcion] $campo_tipo $row[campo_area] $row[activo] $row[id_empresa] $row[id_especialista] $mio $accion ";
- }
- $tabla = "
-
-
- id Nombre Descripcion Tipo
- $lineas
-
-
- ";
- }
- if($div !=""){
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$tabla");
- return $respuesta;
- }
- else{
- $resultado = "$filtros $tabla";
- return $resultado;
-}
-}
-$xajax->registerFunction("campos_tabla");
-
-function remplacetas_noid($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysql_query($consulta,$link);
-if (@mysql_num_rows($sql)!=0){
-$resultado[] = mysql_result($sql,0,$por);
-$resultado[] = mysql_result($sql,0,"$campo");
-$resultado[] = $consulta;
-$resultado[] = mysql_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-
-
-function contar_visitas($id,$tipo) {
-$id_visitas = remplacetas('form_parametrizacion','campo',$id,'id'," tabla='form_id' AND opcion='$tipo'") ;
-$visitas = remplacetas('form_parametrizacion','id',$id_visitas[0],'descripcion',"") ;
-$cantidad = $visitas[0]+1;
-if($visitas[0] =="") {
- $consulta = "INSERT INTO form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'";
- }
-else {
- $consulta = "UPDATE form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'
- WHERE id ='$id_visitas[0]' LIMIT 1";
-}
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
-$cantidad = "$cantidad $_SESSION[analizador]";
-return $cantidad;
-}
-
-
-function geocoder($valor,$campo){
-$respuesta = new xajaxResponse('utf-8');
-if(strlen($valor) > 3) {
-$valor = urlencode($valor);
-$json = "https://nominatim.openstreetmap.org/search.php?format=json&limit=5&addressdetails=1&q=$valor";
-$data = file_get_contents("$json");
-$geocoder = json_decode($data, true);
-if($data ==="[]") {$vacio="
-
- No se encontraron resultados
-";}
-
-foreach ($geocoder as $clave => $valor) {
- $ciudad = $valor['address']['city'];
- $municipio = $valor['address']['town'];
- $pais = $valor['address']['country'];
- $departamento = $valor['address']['state'];
- $licencia= $valor['licence'];
- $link = "milfs/mapero.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo";
- $linea .= "
-
-
- $valor[display_name]
-
- $ciudad $municipio $pais $departamento
-
-
-
- ";
-//foreach ($valor as $clave => $valor) { $linea .= "CLAVE : $clave > VALOR: $valor"; }
-}
-$resultado = "
-
- $vacio $licencia
-
";
-}
- //$div_contenido = "$div
";
- //$respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("muestra_geocoder","innerHTML","$resultado");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("geocoder");
-
-
-function mostrar_psi(){
-$respuesta = new xajaxResponse('utf-8');
-include("psi.php");
- //$div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_psi");
-
-function multiempresa_crear($tabla,$formulario,$div) {
-$formulario = limpiar_caracteres($formulario);
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '".mysql_real_escape_string($v)."',";
- }
- $valores = "$valores id_responsable = '$_SESSION[id]'";
-
-$respuesta = new xajaxResponse('utf-8');
-
- $insertar = "INSERT INTO $tabla set $valores";
- $sql=mysql_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
-
-
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("multiempresa_crear");
-
-function nombre_dominio($url){
- $protocolos = array('http://', 'https://', 'ftp://', 'www.');
- $nombre = explode('/', str_replace($protocolos, '', $url));
- // $nombre = substr($url[0],0,-strlen(strstr($url[0],"." )));
- return $nombre[0];
-}
-
-function configurar_dominio ($id,$tipo) {
-$directorio = "/opt/tupalescripts/";
-$dominio = remplacetas('empresa','id',"$id",'web','') ;
-$nombre = nombre_dominio($dominio[0]);
-$nombre = str_replace(".", "_", $nombre);
-if($tipo =="crear" ) {
- $ar=fopen("$directorio".$id."","w"); //or die("Problemas en la creacion");
- $variables=fopen("$directorio"."variables","w"); //or die("Problemas en la creacion");
- $contenido = "dominio=$dominio[0] \nnombre=$nombre \nidem=$id \n";
-
- fputs($ar,"$contenido");
- fputs($variables,"$contenido");
-
- fclose($ar);
- fclose($variables);
-
- $resultado ="Se configuró el dominio para $nombre ";
- }else {
- $borrar=fopen("$directorio"."borrar","w");
- fputs($borrar,"nombre=$nombre");
- fclose($borrar);
- unlink("$directorio".$id."");
- $resultado ="Se ELIMINÓ el dominio $nombre ";
- }
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("dominio_$id","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("configurar_dominio");
-
-
-function multiempresa($tabla,$div){
- if($_SESSION['id'] == 1) {
- if($div =="") {
- $div="contenido";
- $resultado =" Configuración multiempresa ";
- return $resultado;
- }
-$link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$consulta = "SELECT * FROM empresa ";
-$sql=mysql_query($consulta,$link);
-
-$resultado="
-$name
-Id Nombre Sigla Email Web Dirección Teléfono
- " ;
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
-$razon_social= editar_campo("empresa",$row['id'],"razon_social","","","");
-$sigla= editar_campo("empresa",$row['id'],"sigla","","","");
-$email= editar_campo("empresa",$row['id'],"email","","","");
-$web= editar_campo("empresa",$row['id'],"web","","","");
-$direccion= editar_campo("empresa",$row['id'],"direccion","","","");
-$telefono= editar_campo("empresa",$row['id'],"telefono","","","");
-$estado= editar_campo("empresa",$row['id'],"estado","","","");
-
-if($row[id] !=1) {
- $dominio ="";
- $archivo= "/opt/tupalescripts/$row[id]";
- //$archivo= "tmp/$row[id]";
- if(file_exists("$archivo")) {
- $configuracion_dominio="ok";
- $configuracion_dominio=" ";
- }
- else{
- $configuracion_dominio=" ";
- }
- $acciones = " Estado: $estado
-
- $configuracion_dominio";
-
- }
-$resultado .= "$row[id] $razon_social $sigla $email $web $direccion $telefono $acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-Agregar empresa
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa");
-
-
-
-
-
-
-function contar_valores_formulario($campo,$key,$valor){
-$consulta = "SELECT distinct($campo) as cantidad FROM form_datos WHERE $key LIKE '$valor' ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = mysql_num_rows($sql);
-//$resultado = mysql_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-function listar_campos_formulario($id_form,$tipo){
- $tipo="$tipo";
-$consulta = "SELECT distinct(id_campo),campo_nombre FROM form_datos,form_campos WHERE form_id = '$id_form' AND form_datos.id_campo = form_campos.id ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-while( $row = mysql_fetch_array( $sql ) ) {
- if($tipo=="nombres"){
-$resultado[] = "$row[campo_nombre]";}
- elseif($tipo=="select"){
- $option .= "$row[campo_nombre] ";
- }
- else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){
-$resultado = "
-
- Campo
- $option
- ";
-
-}
-//$resultado = mysql_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-//($formulario,$div,$registros,$pagina,$formato)
-function consultar_formulario($form,$registros,$pagina,$tipo){
- $imagen ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
-$respuesta = new xajaxResponse('utf-8');
-//if(is_array($form)) {$id_form = $form['id_form'];}else { $id_form = $form;}
-$id_empresa = $_SESSION['id_empresa'];
-if(is_array($form)) {
- $fecha_inicio = $form["inicio"];
- if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
- $fin = $form["fin"];
- if( $fin !="") { $fechas = " AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') AND UNIX_TIMESTAMP('$fin 23:59:59')";}
- $id_form = $form['id_form'];
- @$id_campo = $form['id_campo'];
- $busqueda = $form['busqueda'];
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$form[busqueda]%%'";}else{$busca ='';}
-if($id_campo !=''){$campo ="AND id_campo = '$id_campo'";}else{$campo ='';}
-}else{
-$id_form = $form;
-}
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' AND form_datos.id_empresa = '$id_empresa' $busca $campo $fechas GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$sql_total=mysql_query($consulta_principal,$link);
-$total_registros = mysql_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- if($tipo == "csv" ) {$consulta_limite = "$consulta_principal";}
- else{$consulta_limite = $consulta_principal.$limite;}
- $sql=mysql_query($consulta_limite,$link);
-
-//$sql=mysql_query($consulta_principal,$link);
-if (mysql_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-$fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $campos = listar_campos_formulario($id_form,"select");
- $peticion = "
-
-
-
-
-
-
-
-
- ";
-/////// FILTRO
-
-$boton_borrar = "
-
-
-
- ";
-
- if($formato!='csv'){
- $boton_exportar = " Exportar ";}
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
-
- $paginacion = "";
-
-
-
-
- $encabezado = "
- ";
-
- $total_registros = mysql_num_rows($sql);
- $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- $listado_nombres = "Identificador $listado_nombres ";
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-while( $row = mysql_fetch_array( $sql ) ) {
-//$cantidad_campos = contar_valores_formulario("id_campo","control","$row[control]");
-
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-foreach($listado_campos as $campo=>$valor){
- //$imagen = buscar_imagen($if_form,$row['control'],"","");
- $contenido = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo ='$valor' ") ;
- $id_dato = remplacetas('form_datos','control',$row['control'],'id',"id_campo ='$valor' ") ;
- $tipo_campo = remplacetas('form_campos','id',$valor,'campo_tipo',"") ;
- if($tipo_campo[0] ==15 AND $contenido[0] != "") {
- @$listado_campos .= "
-
-
-
-
-
- ";
- }
- elseif(($tipo_campo[0] ==1 or $tipo_campo[0] ==2 or $tipo_campo[0] ==3 or $tipo_campo[0] ==4 or $tipo_campo[0] ==12 or $tipo_campo[0] ==13 )AND $contenido[0] != "") {
- $editar_contenido = editar_campo("form_datos","$id_dato[0]","contenido","");
- @$listado_campos .= "$editar_contenido ";
- }
- else {
-@$listado_campos .= "$contenido[0] ";
-}
-
- }
- if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
- $menu ="
-
-
-
- ";
-$lineas .= " $menu$row[control] $listado_campos ";
-
- }
-
-$tabla ="
-
- $listado_nombres
-
- $lineas
-
-
";
-$resultado = "
-$encabezado
-
-
-
-$tabla
-
-
-";
- }
-else {
-$resultado ="
No hay resultados $consulta_limite";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-if($tipo =="csv") {
-$html = str_get_html($tabla);
- // header('Content-type: application/ms-excel');
- // header('Content-Disposition: attachment; filename=sample.csv');
- $nombre_archivo ="tmp/Prueba_Formulario_".mktime()."_".$_SESSION['id'].".csv";
- //$fp = fopen("php://output", "w");
- $fp=fopen($nombre_archivo , "w");
- foreach($html->find('tr') as $element)
- {
- $td = array();
- foreach( $element->find('th') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- if (!empty($td)) {
- fputcsv($fp, $td);
- }
-
- $td = array();
- foreach( $element->find('td') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- fputcsv($fp, $td);
- }
-
- fclose($fp);
-$boton_descarga ="Descargar ";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = " $datos
";
- $div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- if($tipo =="modal") {
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-}
- return $respuesta;
-
-}
-$xajax->registerFunction("consultar_formulario");
-
-
-function datos_array($identificador) {
-
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-$consulta ="SELECT * FROM form_datos WHERE control = '$identificador'
-GROUP BY id_campo ORDER BY timestamp DESC ";
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
-$array = array();
-$array[identificador] = "$identificador";
-while($row = mysql_fetch_array( $sql ))
- {
-
-
- $contenido = remplacetas('form_datos','id',$row[id],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id],'id_campo',"") ;
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- //$array[id_campo] = $row[id_campo];
-
-//// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$row[form_id]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
-/// PRIVACIDAD
-if($privado !='1') {
- $array[$nombre_campo[0]] = "$contenido[0]";
- $array['timestamp'] = "$row[timestamp]";
- $array['proceso'] = "$row[proceso]";
- $array['id'] = "$row[id]";
- $array['orden'] = "$row[orden]";
- //$array[] = $row;
-
-}
- }
- return $array;
-}
-
-function parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div){
- $respuesta = new xajaxResponse('utf-8');
-if($campo =="") {
-$resultado = "
-
-
-
- Hiperparametrizador Experimental
-
-
- Descripción
-
-
-
-
-
-";
-return $resultado;
-}
- $link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = '".mysql_real_escape_string($tabla)."' AND campo ='".mysql_real_escape_string($campo)."' AND opcion ='".mysql_real_escape_string($opcion)."' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = '".mysql_real_escape_string($tabla)."' , campo ='".mysql_real_escape_string($campo)."', opcion ='".mysql_real_escape_string($opcion)."', descripcion ='".mysql_real_escape_string($descripcion)."', visible='1' , id_empresa = '$_SESSION[id_empresa]'";
-$sql=mysql_query($consulta,$link);
-if($sql) {
- $resultado = "$descripcion";
- $respuesta->addAssign("$div","innerHTML",$resultado);
-
- }else {
-//$respuesta->addAlert("$consulta");
-}
-//$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("parametrizacion_linea");
-
-function email_contenido($id,$control,$id_campo,$email_envio){
-
-if($email_envio =="") {
- $email = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$id' AND id_campo ='$id_campo' ") ;
- $formulario =
-
- "
- ";
-return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
-
- $validar = validar_email($email_envio);
- if($validar == '0') {
- $respuesta->addAssign("input_email_envio","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('email_envio').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
-
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $propietario[0]" . "\r\n";
-$impresion = formulario_imprimir("$id","$control","email");
-
-$impresion ="
-$encabezado
-$impresion
";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-
-$impresion
-
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]i$control
-Saludos de MILFS
-";
- if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="Se envió un email a $email_envio "; }else {$exito .="error enviando correo";}
-
-$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("email_contenido");
-
-
-function mapa_ficha($id) {
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $descripcion_limpia = strip_tags($descripcion[0]);
- $nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
- $id_empresa = $id_empresa[0];
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $imagen = " ";
- $datos ="$nombre[0] $descripcion[0] ";
- $empresa = "$razon_social[0] |
$web[0] | $direccion[0] | $email[0]
";
-
- //$prueba = json_decode($prueba);
-
- $resultado ="
-
-
-
-
- $imagen
-
-
-
$nombre[0]
- $descripcion_limpia[0]
-
-
-
-
$razon_social[0]
-
MILFS
-
-
-
- ";
- return $resultado;
-}
-
-function formulario_parametrizacion($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($accion =='categorias') {
-
- }
- elseif($accion =='grabar'){
-
- }
- else {
- $listado ="
-
-
-
-
-
-
Parametrización
-
Parametrización del formulario $nombre[0]. Por favor seleccione una opción
-
-
-
-
- ";
- $respuesta->addAssign($div,"innerHTML",$listado);
- return $respuesta;
- }
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "Filtro
-
- Todos ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= " ";
- }
-else{$resultado = 'nada';}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_parametrizacion");
-
-
-
-function lista_categorias($perfil,$categoria,$tipo) {
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
- $categoria_campo = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- if($categoria_campo >0 ) {
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$categoria_campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "";
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $icono = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$row[md5_contenido]'") ;
- if($icono[0] =='') {
- $icon = "$_SESSION[site]milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- $contenido= substr($row[contenido],0, $length = 15);
-$resultado .= "
$contenido ";
- }
-$resultado .= "
";
- }
-else{$resultado = '';}
-}
-return $resultado;
-}
-
-function parametrizacion_categoria($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-$categorias = lista_categorias($perfil,$categoria,$tipo);
-if($accion =='categorias') {
- $resultado = "
-
- La categorización se usa para filtrar los datos de un formulario en categorias que pueden ser usadas por ejemplo para diferenciar los datos en un mapa.
- Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza
- $categorias
-
-
-
-
- Icono para la categoría
-
-
- URL
-
-
-
-
- Grabar
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- $respuesta -> addScript("xajax_formulario_campos_select('$perfil','parametrizacion')");
- return $respuesta;
- }
- elseif($accion =='grabar'){
- if($form[tipo] =='categoria') {
- $url_icon = "$form[icon]";
- $es_imagen = es_imagen("$url_icon");
- $altura = GetImageSize($url_icon);
- $altura= $altura[1];
- if($form[id_campo] =='') { $error = "Seleccione un campo";}
- elseif($form[campo_filtro] =='') { $error = "Seleccione Filtro";}
- elseif(!$es_imagen ) { $error = " [ $url_icon ] no es una imagen válida para el ícono";}
- elseif($altura > 500 ) { $error = " El ícono no debe tener mas de 300 pixeles de alto.";}
- elseif($form[icon] =='') {
- $error = "Escriba la dirección del ícono";
- }
- else {$error='';}
- if( $error !='') {
- $respuesta -> addAlert("$error $revisar_url ");
- return $respuesta;
- }else{
- $categoria_icono[tabla] = "form_id";
- $categoria_icono[campo] = "$form[perfil]";
- $categoria_icono[opcion] = "$form[tipo]:icon:$form[campo_filtro]";
- $categoria_icono[descripcion] = "$url_icon";
- $categoria_icono[visible] = "1";
- $categoria_icono[accion] = "grabar";
- $grabar_icono = parametrizacion($categoria_icono);
-
- $categoria_campo[tabla] = "form_id";
- $categoria_campo[campo] = "$form[perfil]";
- $categoria_campo[opcion] = "$form[tipo]:campo";
- $categoria_campo[descripcion] = "$form[id_campo]";
- $categoria_campo[visible] = "1";
- $categoria_campo[accion] = "grabar";
- $grabar_campo = parametrizacion($categoria_campo);
-
- $categoria_filtro[tabla] = "form_id";
- $categoria_filtro[campo] = "$form[perfil]";
- $categoria_filtro[opcion] = "$form[tipo]:filtro:$form[id_campo]";
- $categoria_filtro[descripcion] = "$form[campo_filtro]";
- $categoria_filtro[visible] = "1";
- $categoria_filtro[accion] = "grabar";
- $grabar_filtro = parametrizacion($categoria_filtro);
-
-
- $resultado =" $form[campo_filtro] $form[id_campo] ($altura ) [$grabar_icono]";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-
- }/// fin de parametrizacion categorias
- }
-}
-$xajax->registerFunction("parametrizacion_categoria");
-
-
-function parametrizacion_plantilla_campos($formulario){
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-while( $row = mysql_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen =" "; $identificador=" ";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= " $imagen $row[campo_nombre] [$row[id_campo]] ";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-
-
-
-
-
-
-
- $listado
- Fecha
-
-
-";
-}
-return $resultado;
-}
-
-
-function parametrizacion_plantilla($formulario,$div,$valores) {
- $respuesta = new xajaxResponse('utf-8');
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$link=Conectarse();
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-mysql_query("SET NAMES 'utf8'");
-if($valores =="boton") {
-$consulta ="SELECT * FROM form_parametrizacion WHERE campo = '$formulario' AND `opcion` REGEXP '^plantilla:' ORDER BY opcion";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $campos_opcion = explode(":",$row[opcion]);
- $plantilla_nombre = $campos_opcion[1];
-$listado .= "$row[opcion] ";
-$li .= "
- $plantilla_nombre
-
-
-
- ";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-
-
-
-";
-$lista ="
-
-Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas HTML5 , CSS3 y clases de Bootstrap
-
-
- Nombre
- Editar
- Ver
-
-$li
-
-Nueva plantilla
-";
- $respuesta->addAssign("$div","innerHTML","$lista");
- return $respuesta;
-
-}
-else {
-
-$resultado ="
-
-
-
Aún no se han definido plantillas para este formulario
- Crear una plantilla
-
-
-";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-
-elseif($valores =="formulario" OR is_numeric($valores)) {
- $campos = parametrizacion_plantilla_campos("$formulario");
- $descripcion = remplacetas('form_parametrizacion','id',$valores,'descripcion',"") ;
- $opcion = remplacetas('form_parametrizacion','id',$valores,'opcion',"") ;
- $campos_opcion = explode(":",$opcion[0]);
- $plantilla_nombre = $campos_opcion[1];
- include("includes/bootsrap_class_list.php");
-$resultado ="
-
-
-
-
-
-
-
- A
A
')); \">
-
-
A
-
A
-
div
-
H1
-
H2
-
H3
-
-
<li>
-
-
MB
-
-
-
-
-
- $descripcion[0]
-
-
- $campos
-
-
-
-
-";
-
-}
-
-elseif(is_array($valores)) {
- $texto=str_replace('"',"'",$valores[text_contenedor]);
-$plantilla = htmlentities($texto);
-if($valores[nombre_plantilla] == "") {
- $respuesta->addAlert("No ha especificado un nombre para la plantilla");
- $respuesta->addAssign("input_nombre_plantilla","className","input-group has-error");
- return $respuesta;
- }
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='plantilla:$valores[nombre_plantilla]' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='plantilla:$valores[nombre_plantilla]', descripcion =\"$plantilla\", visible='1' ";
-$sql=mysql_query($consulta,$link);
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-$datos = contenido_mostrar("$formulario","$ultimo[1]",'',"$valores[nombre_plantilla]");
-$preview = " $valores[nombre_plantilla] $datos ";
- $div_contenido = "$preview
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- $respuesta->addAssign("titulo_modal","innerHTML","$resultado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- return $respuesta;
-
-}
-else{
-$resultado ="";
-}
-$resultado .= "";
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla");
-
-
-function parametrizacion_titulo($formulario,$div,$valores) {
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if($valores =="") {
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "$row[campo_nombre] [$row[id_campo]] ";
-}
-$resultado = "
-
- El campo titulo, se usa como indice del formulario en algunas visualizaciones como el timeline
- Campo de Título actual $campo_titulo_nombre[0] [$campo_titulo[0]]
-
-
- Cambiar campo título
-
-
- $listado
-
-
-
-";
-}
-}else {
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='titulo' LIMIT 1 ";
-$sql=mysql_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='titulo', descripcion ='$valores', visible='1' ";
-$sql=mysql_query($consulta,$link);
-if($sql){
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$resultado ="addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_titulo");
-
-
-function mostrar_modal($form,$control,$plantilla){
-$respuesta = new xajaxResponse('utf-8');
-if( $control == "") {
- $datos = formulario_areas($form,"");
-}else {
-$datos = contenido_mostrar("$form","$control",'',"$plantilla");
-}
-$div ="contenido_de_modal";
-
-$resultado = "
-
- $datos
-
-
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_modal");
-
-function portal_filtro_cadena($formulario,$id_campo,$control,$div,$plantilla){
-$cadena = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$formulario' AND id_campo ='$id_campo' ") ;
-$consulta ="SELECT * FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' AND contenido = '$cadena[0]'
- GROUP BY control ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-
- $datos = contenido_mostrar("$formulario","$row[control]",'',"$plantilla");
- if($plantilla == "") {
-$listado .= "
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-
- $listado
-
-";
-}
-
-if ($div ==""){$div="mostrar_contenido";}
-else {$div = "$div";}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("portal_filtro_cadena");
-
-
-
-function portal_filtro_campos($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $formulario_nombre[0] / $campo_nombre[0]
- {json}
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_filtro_campos_select($formulario,$id_campo,$div,$plantilla){
-
-if($id_campo =="") {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- if($id_campo =="") { $resultado = ""; return $resultado;}
- }
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT *
- FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario'
- AND form_campos.id = form_datos.id_campo
- AND form_datos.id_campo = '$id_campo'
- GROUP BY contenido
- ORDER BY contenido";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $campo_nombre[0]
- $listado
-
-";
-}
-$resultado ="
-
- Filtro
- $resultado
-
";
-return $resultado;
-}
-
-
-
-function portal_listado_campos($formulario){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_contenido_campos.orden";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[campo_nombre] ";
-}
-$resultado = "
-
-
- $formulario_nombre[0]
- {json}
- $listado
-
-
-";
-}
-return $resultado;
-}
-
-
-function portal_listado_formularios(){
-
-$consulta ="SELECT * FROM form_id WHERE publico = '1'";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$listado .= "
$row[nombre] ";
-}
-$resultado = "
-
- Set de datos
-
- ";
-}
-return $resultado;
-}
-
-
-function insertar_linea($tabla,$key,$campo,$valor,$control,$orden,$div){
- $respuesta = new xajaxResponse('utf-8');
- //$key = limpiar_caracteres($key);
- //$valor = limpiar_caracteres($valor);
-if($_SESSION[id_empresa] =="") {
- $empresa = remplacetas('form_id','id',"$key",'id_empresa','') ;
- $empresa = $empresa[0];
- }else {$empresa=$_SESSION[id_empresa];}
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
-if($tabla =="form_datos") {
-
-$consulta = "INSERT INTO form_datos ( orden, timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( '$orden',UNIX_TIMESTAMP(),'$_SESSION[id]','$empresa','$key',$ip ,'$control', '$campo' , '$valor')
- ";
-
-}
-mysql_real_escape_string($consulta);
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- if($valor !="") {
- $sql=mysql_query($consulta,$link);
-}
-if($sql) {
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
- }
-else {
-return " $consulta ";
-}
-}else {
-return "No se inserto $consulta ";;
-}
-}
-$xajax->registerFunction("insertar_linea");
-
-
-function select_combo($id,$tabla,$campo_valor,$campo_descripcion,$tipo){
-
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$Campo_descripcion = ucwords($campo_descripcion);
-$Campo_valor = ucwords($campo_valor);
-$nombre=$tabla."_".$campo_valor;
-$div=$nombre."_hijo";
-$combo = $id."_".$tabla;
-if($tipo!=''){
-$respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE $campo_valor = '$tipo' AND id_empresa = '$id_empresa'";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado .= "
$Campo_descripcion
-
";
-$resultado .= " Seleccione $Campo_descripcion ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[$campo_valor] $row[$campo_descripcion] ";
- }
-$resultado .= " ";
- }
-
-
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;}
-ELSE{ /// si no especifica $tipo
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE id_empresa = '$id_empresa' GROUP BY $campo_valor ";
-$sql=mysql_query($consulta,$link);
-///$Documento=mysql_result($grupo,0,"documento_numero");
-$resultado = "
$Campo_valor
-
";
- $resultado .= " Seleccione $Campo_valor ";
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "$row[$campo_valor] ";
- }
- }
-$resultado .= "
";
- }/// FIN de $tipo no especifico
-
-return $resultado;
-}
-$xajax->registerFunction("select_combo");
-
-
-
-function crear_session ($form,$control) {
-
-$consulta = " SELECT distinct(id_campo),contenido FROM form_datos WHERE control = '$control' AND form_id = '$form' order by timestamp DESC ";
-$link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!=0){
- $resultado ="
";
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $id_form = $row[form_id];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre = strtolower( str_replace(' ','_',$campo_nombre[0]));
- $_SESSION[$nombre] = $row[contenido];
- $resultado .= "$_SESSION[$nombre] ";
- }
- $resultado .= " ";
- }
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla,$tipo,$timestamp){
- $resultado="";
- $tipo="$tipo";
- if($form != "") {$id_form = "$form";}else {$id_form ="";}
-
- $impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp);
- if($impresion !="") {
- $visitas= contar_visitas($control,'identificador') ;
- $visitas= "
$visitas";
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
- if($tipo=="") {
- $resultado = "
-
- $visitas
-
$nombre[0]
- $descripcion[0]
-
- $impresion
-
-
- "; }else {
-$resultado = "$impresion";
- }
- }else{
-$resultado ="
No hay resultados ";
- }
-
-return $resultado ;
-}
-
-function buscar_campo_nombre($form_id,$nombre) {
-
-$consulta ="SELECT form_campos.id FROM `form_campos` , form_contenido_campos WHERE `campo_nombre` = '$nombre' AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='$form_id' LIMIT 1";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql = mysql_query($consulta,$link);
- $id_campo=mysql_result($sql,0,"id");
-return $id_campo;
-}
-
-function conversorSegundosHoras($tiempo_en_segundos) {
- $horas = floor($tiempo_en_segundos / 3600);
- $minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
- $segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
-
- return $horas . ':' . $minutos . ":" . $segundos;
-}
-
-function mensajes($tipo,$campos_form,$datos,$control) {
- $campo_remitente = $campos_form['remitente'];
- $campo_destinatario = $campos_form['destinatario'];
- $campo_asunto = $campos_form['asunto'];
- $campo_mensaje = $campos_form['mensaje'];
- $form_id = $campos_form['formulario_id'];
- $form_usuarios = $campos_form['formulario_usuarios'];
- $campo_usuarios = $campos_form['campo_usuario'];
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='formulario') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
-
-//$campos = formulario_areas($form_id,'campos');
-$control_original = $control;
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
- $respuesta->addAssign("div_mensaje_$control_original","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo =='responder') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
- $remitente = buscar_campo_nombre("$form_id","Para");
- $destinatario = buscar_campo_nombre("$form_id","De");
- $mensaje = buscar_campo_nombre("$form_id","Mensaje");
- $asunto = buscar_campo_nombre("$form_id","Asunto");
-
- $asunto_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$asunto' AND control='$control'") ;
- $mensaje_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$mensaje' AND control='$control'") ;
- $remitente_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$remitente' AND control='$control'") ;
- $destinatario_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$destinatario' AND control='$control'") ;
-
-$formulario ="
-
-
-
-
-
-
-
-
- Asunto
-
-
-
- Mensaje
- $mensaje_value[0]
-
- ";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
-";
- $respuesta->addAssign("div_mensaje_$control","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo=="recuperar") {
-
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
-
- $consulta ="SELECT *, FROM_UNIXTIME(timestamp) as fecha , DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d') as dia, DATE_FORMAT(FROM_UNIXTIME(timestamp),'%H:%i') as hora FROM form_datos WHERE form_id ='$form_id' AND id_campo = '$campo_destinatario' AND contenido ='$_SESSION[usuario_milfs]' GROUP BY control, timestamp order by timestamp DESC ";
-
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-
- $mensajes = mysql_query($consulta,$link);
-// $destinatario ="$campo_destinatario"."[0]";
-// $para = buscador_campo("$campo_destinatario","$form_id","","$destinatario","","");
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
-
-
-
-$lista ="
-
-
-
-";
-while( $row = mysql_fetch_array( $mensajes ) ) {
- $asunto = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_asunto' AND control='$row[control]'") ;
- $mensaje = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_mensaje' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_remitente' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_usuarios",'contenido'," id_campo = '$campo_usuarios' AND control='$remitente[0]'") ;
- if($remitente[0] =='') {$remitente[0]="
Sistema";}
- $hoy=date('Y-m-d');
- $control = $row[control];
- if($hoy == $row[dia]){$momento = $row[hora];}else {$momento=$row[dia];}
-//function contenido_mostrar($id,$control,$div,$plantilla)
-//$contenido = contenido_mostrar("$form_id","$control","",'');
- $lista .="
-
- ";
-}
- // $respuesta->addAssign("div_mensaje","innerHTML",$lista);
- $lista .=" ";
- return $lista;
-
-}
-
-$resultado ="hola";
-
- $respuesta->addAssign("div_mensaje","innerHTML",$resultado);
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("mensajes");
-
-function revisar_campo_unico($id,$campo,$id_form,$valor) {
- $respuesta = new xajaxResponse('utf-8');
- $div= "div_$id";
- $existe = remplacetas('form_datos','form_id',"$id_form",'control'," BINARY contenido = '$valor' AND id_campo = '$campo'") ;
- if($existe[0] != "") {
- $texto ="El valor ya existe";
-$respuesta->addAssign("$div","className","text-danger");
-$respuesta->addAssign("input_$id","className","form-group has-error");
- }else{
- $texto ="";
-$respuesta->addAssign("$div","className","text-success");
-$respuesta->addAssign("input_$id","className","form-group has-success");
- }
-
- $respuesta->addAssign("$div","innerHTML",$texto);
- return $respuesta;
-}
-$xajax->registerFunction("revisar_campo_unico");
-
-
-
-function milfs_session($form_id,$campo_usuario,$campo_password,$tipo,$datos){
- $datos = mysql_seguridad($datos);
- $respuesta = new xajaxResponse('utf-8');
-// require ("milfs/includes/parametrizacion.php");
-
-if($tipo =="") {
-
-
-
-if($_SESSION[usuario_milfs]) {
- //$control = remplacetas('form_datos','control',"$_SESSION[control_usuario_milfs]",'contenido'," id_campo = '$campo_password' ") ;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$_SESSION[nombre_usuario_milfs]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
-//$email = "someone@somewhere.com";
-if($_SESSION[avatar_usuario_milfs] !="") {
- $avatar = $_SESSION[avatar_usuario_milfs];
-}else {
-$default = "https://tupale.co/milfs/images/avatar.png";
-$avatar = "https://www.gravatar.com/avatar/" . md5( strtolower( trim( $email[0] ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
-}
- $formulario = "
Hola $_SESSION[nombre_usuario_milfs] SALIR";
-}else {
-$formulario ="
-$accion
-
-
-
-";
-
-
-}
-return $formulario;
-}
-elseif($tipo =='salir') {
- session_destroy();
- $respuesta->addScript("javascript:location.reload(true);");
-
-}
-elseif($tipo=='registrarse') {
- $modificable = remplacetas('form_id','id',$form_id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $formulario = "
Función no disponible, por favor comuníquese con el administrador código $_SESSION[id]
";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
- }
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-
-Registrarse
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-$boton
-
-
-";
-
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
- if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-
Usuario
-
-
-
Código de recuperación Deja este campo vacío si aun no tienes el código de recuperación
-
-
-";
-$boton ="
-
Solicitar clave
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-
-$boton
-
-
-
-";
- }else{
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- if($usuario[0] !="") {
- $password = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_password' ") ;
- if($datos[codigo] !="") {
- if( $datos[codigo] =="$password[0]" ){
- $control = remplacetas('form_datos','control',"$usuario[0]",'control'," id_campo = '$campo_password' ") ;
- $campos ="
-
-
-
-
-
-
-
- ";
-
- $formulario ="$campos";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
-
- }else {
- $respuesta->addAlert("El código no es correcto, por favor rectifíquelo o solicítelo nuevamente dejando el campo VACIO");
- return $respuesta;
- }
- }
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $formulario="$usuario[0] $password[0] // $campo_email[0] $email[0]";
- $email_empresa = remplacetas('empresa','id','1','email','') ;
- $sigla = remplacetas('empresa','id','1','sigla','') ;
- $razon_social = remplacetas('empresa','id','1','razon_social','') ;
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] <$email_empresa[0]>\r\n";
- $headers .= "Reply-To: $email_empresa[0]\r\n";
- $headers .= "Return-path: $email_empresa[0]\r\n";
- $asunto= "[ $sigla[0] ] Código para recuperar contraseña ";
- $cuerpo ="
-
Hola $datos[usuario]
- El código para recuperar tu contraseña es:
-
$password[0]
- Regresa pronto :-)
-
- ";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="
Te hemos enviado un correo a $email[0] con el código de recuperación "; }
- else {$formulario ="
Error enviando correo ";}
-
- }else{
-
- $formulario="
No encontramos tu usuario $datos[usuario] . Por favor rectifícalo y prueba nuevamente ";
-
- }
-
-
- }
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='confirmar_recuperar') {
-
- if($datos[password] != $datos[confirmar_password]) {
- $respuesta->addAlert("Los valores no son iguales");
- return $respuesta;
-
- }
- $link=Conectarse();
-
-mysql_query("SET NAMES 'utf8'");
-
-
-
-
- $consulta="UPDATE form_datos SET contenido = MD5('$datos[password]')
- WHERE control ='$datos[control]'
- AND contenido ='$datos[codigo]'
- AND form_id ='$form_id'
- AND id_campo = '$campo_password' ";
-
- if (mysql_query($consulta,$link)){
-$resultado ="
Se cambió el password Por favor ingrese con sus nuevos datos
aquí ";
-$respuesta->addAssign("formulario_session","innerHTML",$resultado);
-return $respuesta;
- };
-
-
-
-}
-
-elseif ($tipo=='ingreso'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $password = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = MD5('$datos[password]') AND id_campo = '$campo_password'") ;
-
-if ( $usuario[0] != "" AND $usuario[0] === $password[0]) {
-$respuesta->addAssign("login_milfs","className"," has-success ");
-
-$_SESSION['usuario_milfs'] = $usuario[0];
-$_SESSION['nombre_usuario_milfs'] = $datos['usuario'];
-$_SESSION['control_usuario_milfs'] = $datos['control'];
-$resultado ="
Gracias por regresar $_SESSION[nombre_usuario_milfs] ";
-$respuesta->addScript("javascript:location.reload(true);");
-}else {$resultado ="
Error Los datos no son correctos :( ";
-$respuesta->addAssign("login_milfs","className"," has-error ");
-$respuesta->addAssign("resultado","innerHTML",$resultado);
-return $respuesta;
-}
-
-$respuesta->addAssign("formulario_session","innerHTML",$resultado);
-//$respuesta->addAlert("resultado");
-
-
-}
-elseif ($tipo=='nuevo'){
-
-$usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-
-$campos_consulta_obligatorio="
- SELECT id_campo, obligatorio
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
- AND obligatorio='1'
- ";
-
-
- $campos_obligados= mysql_query($campos_consulta_obligatorio,$link);
-
-while( $row = mysql_fetch_array( $campos_obligados ) ) {
-$campo_valor=$datos[$row[id_campo]][0];
-
-if($row[obligatorio]=='1'){
- $obligatorios .= "$row[id_campo]";
-if($campo_valor == '' && $row[obligatorio]=='1'){
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
-$error = "Revise campos obligatorios $campo_nombre[0]";
-
- }else {$error ="";}
-if($error !=''){
-$respuesta->addAlert($error);
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
- return $respuesta; }
- }
-
-
- }/// fin de registros obligatorios
-
-
-
- $campos_consulta="
- SELECT id_campo, obligatorio, id_empresa
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
-
- ";
- $campos= mysql_query($campos_consulta,$link);
-$ip = obtener_ip();
-$control = $datos['control'];
-while( $row = mysql_fetch_array( $campos ) ) {
-$campo_valor=$datos[$row['id_campo']][0];
-$campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
-/// Si el campo es password (18) se guarda su equivalente en md5
-if($campo_tipo[0] =="18") {
- $campo_valor = MD5("$campo_valor");
-}
-// SI EL CAMPO ES UNICO O EMAIL SE REVISA QUE NO EXISTA
-elseif($campo_tipo[0] =="19" OR $campo_tipo[0] =="12" OR $campo_tipo[0] =="13" ) {
-$existe = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$campo_valor' AND id_campo = '$row[id_campo]'") ;
- if($existe[0] !='') {
- $respuesta->addAlert("ATENCION: El nombre de usuario o el Correo electrónico ya se encuentran registrados !");
- $respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
-
-
- return $respuesta;
- }else{
- //$respuesta->addAlert("$existe[2]"); return $respuesta;
- }
-}
-else {}
-
- if ($campo_valor !=''){
-
-$insertar_consulta = "
- INSERT INTO `form_datos`
- SET
- id_campo = '$row[id_campo]',
- contenido = '$campo_valor',
- control ='$control',
- timestamp = UNIX_TIMESTAMP(),
- form_id = '$form_id',
- ip = '$ip',
- id_empresa = '$row[id_empresa]'
- ";
-
-
- }else{
-
-
- }
-
-if ($error ==''){
-$sql_consulta=mysql_query($insertar_consulta,$link);
-if($sql_consulta){
-$login = milfs_session("$form_id","$campo_usuario","$campo_password","","");
-$resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-
-
- }else{$resultado.= "
La consulta no se grabó
";}
-}else { }
-
- }
-$resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-$respuesta->addAssign("formulario_session","innerHTML",$resultado);
-return $respuesta;
-
-
-}
-
-else{}
-return $respuesta;
-
-}
-$xajax->registerFunction("milfs_session");
-
-
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- $respuesta = new xajaxResponse('utf-8');
-if($valores =="") {
- $alerta = "
Por favor escriba que desea buscar ";
-$respuesta->addAssign("$div","innerHTML",$alerta);
- return $respuesta;
-}
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form contenido like '%%$valor%%' group by control LIMIT 200 ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-$fila=1;
-$divider=2;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
- /* $contenido = htmlentities($row[contenido]);
- $p = stripos($contenido, $valor);
- $s1 = substr($contenido, 0, $p);
- $s2 = substr($contenido, $p, strlen($valor));
- $s3 = substr($contenido, ($p + strlen($valor)));
- $r = $s1."
$s2 ".$s3;
- */
- $datos = landingpage_contenido_identificador($row['control']);
- //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
$datos
";
-
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor $encontrados ";
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql_total=mysql_query($consulta_total,$link);
-$total = mysql_num_rows($sql_total);
-$sql=mysql_query($consulta,$link);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = $descripcion[0];
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion";
-
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysql_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
$buscador
-
-
-
- $contenido
-
- Mostrar mas resultados
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-
-function insertar_registro($tabla,$formulario,$div,$principal) {
- //$valores ="$formulario[0]";
- $formulario = limpiar_caracteres($formulario);
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
-
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysql_query($insertar,$link);
- $ultimo_id = mysql_insert_id();
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $valores = limpiar_caracteres("$valores");
- $grupo = editar_campo("$tabla",$ultimo_id,"$principal","","","");
- $respuesta->addAssign($div,"innerHTML","
$formulario[$principal] ");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- //$respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_registro");
-
-
-
-function formulario_area_campos($perfil,$area,$control) {
- $tipo="";
- $control_edit ="$control";
- $solo_campos ="";
- $muestra_form ="";
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} $campos= "";
-
-$consulta = "
- SELECT * FROM form_campos , form_contenido_campos
- WHERE form_contenido_campos.id_form = '$perfil'
- AND form_contenido_campos.id_campo = form_campos.id
- AND campo_area='$area'
- ORDER BY form_contenido_campos.orden";
-
- $link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-
-
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- if( $row['obligatorio'] == '1'){$obligatorio="*";}else {$obligatorio='X';}
-
- if($row['campo_tipo'] =="24") { $row['multiple'] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos .= formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }else{
- $campos .= formulario_campos_render($row['id_campo'],$perfil,$control_edit,'','');
- }
- $muestra_form .= "$campos $obligatorio ";
- $solo_campos .= "$campos $obligatorio ";
-
- }
-
-
-}
-
-
-$resultado = "$muestra_form";
- return $campos;
-
-}
-
-function formulario_areas($perfil,$tipo,$form_respuesta,$control_respuesta){
- $id="";
- $resultado_campos ="";
- $subir_imagen ="";
- $campo_imagen_nombre ="";
- if($form_respuesta =='respuesta'){$control = $control_respuesta;}
- //elseif($form_respuesta =='edicion'){$control = $control_respuesta;}
- else{
-$control = md5(rand(1,99999999).microtime());
-}
- $respuesta = new xajaxResponse('utf-8');
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- /*$consulta = "SELECT * FROM form_areas, form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
- AND form_areas.id = form_campos.campo_area AND form_areas.id_empresa = '$id_empresa'
- OR (form_contenido_campos.id_form = '$perfil' AND form_campos.campo_area ='0' )
- AND form_areas.estado = '1' GROUP BY form_areas.id ORDER BY form_areas.orden";
- */
- $consulta= "SELECT * FROM form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
-
- GROUP BY form_campos.campo_area
- ";
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- //$campo_titulo = remplacetas('parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
- $descripcion = remplacetas('form_id','id',$perfil,'descripcion','') ;
- $formulario_respuesta = remplacetas('form_id','id',$perfil,'formulario_respuesta','') ;
- $empresa = remplacetas('form_id','id',$perfil,'id_empresa','') ;
- $empresa = $empresa[0];
-
- $nombre= strtoupper($nombre[0]);
- $descripcion= $descripcion[0];
- $form_respuesta= $formulario_respuesta[0];
-
-
-//// encabezado form
-
- if($tipo =='edit') {$control= $control_respuesta;}
- elseif($form_respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- //$descripcion=mysql_result($sql,0,"descripcion");
- //$nombre=mysql_result($sql,0,"nombre");
- //$empresa=mysql_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$empresa",'encabezado');
- $pie = empresa_datos("$empresa",'pie');
- $cabecera = "
-
-
-
-
-
-
-
-
$nombre$descripcion
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($perfil,"15");
-if($campo_imagen[0] !="") {
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen_nombre = ucwords($campo_imagen_nombre);
-$campo_imagen = $campo_imagen[0];
- }
-
-if ($campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$perfil","$campo_imagen"."[0]");
-if($tipo != "campos") {
- $imagen = "
-
-
- ";
-
- }else {$imagen =" ";}
- }
-
- $muestra_form = "
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
-
-////fin encabezado form
-
-
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row['campo_area']=="0"){$area_nombre ="";}
- else{
- $area_nombre = remplacetas('form_areas','id',$row['campo_area'],'nombre','') ;
- $area_nombre = $area_nombre[0];
- }
- $fila = $fila +1;
-
- //$producto = remplacetas('farmacia_cum','id',$row[id_producto],'fabricante_importador') ;
- ///// para pasar el parametro de medicamentos al formulario no pos se adiciona ".func_get_arg(2)."
- $campos = formulario_area_campos($perfil,$row['campo_area'],"$control_edit");
-$resultado_campos .= "
-
-$area_nombre
-$campos
- ";
- }
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos
-
- ";
-
-//// fin botonera form
-
- }
-
-//// cierre form
-
-$muestra_form .="
-
-
-
";
-if($tipo=='campos') {
-
- $resultado = "$resultado_campos $imagen ";
- return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-
-";
-return $resultado;
-
-/// fin cierre form
- // $resultado .= "$consulta";
-//$respuesta->addAssign($div,"style.display","block");
-//$respuesta->addAssign($div,"innerHTML",$resultado);
-//return $respuesta;
- //print $muestra_form;
-// return $muestra_form;
- }
-
- $xajax->registerFunction("formulario_areas");
-
-
-
-function tabla_areas($tabla,$value,$descripcion,$onchange,$where,$nombre,$div){
- $group ="";
- if($div =="") {
- $div="div_campos";
- $resultado = "
-
Modificar areas
- ";
- return $resultado;
- }
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$campo3 = $campos[2];
-$campo4 = $campos[3];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="group by $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT * FROM $tabla WHERE 1 $w AND id_empresa='$_SESSION[id_empresa]' $group ORDER BY orden ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-
-$resultado="
-$name
-Id $campo1 $campo2 $campo3 $campo4
- " ;
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysql_fetch_array( $sql ) ) {
-$editar_campo1= editar_campo("$tabla",$row['id'],"$campo1","","","","");
-$editar_campo2= editar_campo("$tabla",$row['id'],"$campo2","","","","");
-$editar_campo3= editar_campo("$tabla",$row['id'],"$campo3","","","","");
-$editar_campo4= editar_campo("$tabla",$row['id'],"$campo4","","","","");
-$eliminar = " ";
-$resultado .= "$row[$value] $editar_campo1 $editar_campo2 $editar_campo3 $editar_campo4 $eliminar ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-
-
-
-
-Agregar área
-
-
-
-
-
-
-
-
-
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("tabla_areas");
-
-
-
-
-function importar_coleccion($form){
-$div ="confirmar_importacion";
-//$archivos = listado_archivos("$form[path]");
-//$archivos = listar_archivos("$form[path]",'cantidad','',$form);
-
- $directorio = opendir("$form[path]"); //ruta actual
-$resultado = " ";
-while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
-{
- if (is_dir($archivo))//verificamos si es o no un directorio
- {
- // $resultado .= "[".$archivo . "]
"; //de ser un directorio lo envolvemos entre corchetes
- }
- else
- {$autor="";
- $ext = explode(".", $archivo);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {
- $cantidad_imagenes++ ;
-
- $exif = leer_exif("$form[path]/$archivo");
- //$name = $exif['exif']['FileName']." ".$form['38']['0']."*" ;
- $form['0']['0'] = "$archivo";
- $autor= $exif['exif']['Artist'];
- $creator = $form['40'][0];
- if($autor !="" ) { $remplazo = array('40' => array("$autor")); }else{ $remplazo; }
-
- }
- //$form = array_replace_recursive($form, $reemplazo);
- $resultado .= $archivo ." / $name ".$form['0'][0]."
";
- }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= "( $c : $V )
";
- if($V != '') {
- }
- }
-}
-}
-*/
-//$resultado="$archivos $campo";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("importar_coleccion");
-
-
-
-
-function listar_archivos( $path ,$opcion, $div,$datos){
- // Abrimos la carpeta que nos pasan como parámetro
-
- $resultado ="";
- //$link = Conectarse();
- $dir = opendir($path);
- $cantidad =0;
- $cantidad_imagenes =0;
-//$datos['61'] = array ( 0 => "otro valor");//"OTRO VALOR";
- if(is_file($path)) {$esarchivo="Escriba la ruta a un directorio en el servidor
"; }
- // Leo todos los ficheros de la carpeta
- //if($esarchivo =="") {
- // $elemento = readdir($dir);
- //}
- while ($elemento = readdir($dir) ){
-
- // Tratamos los elementos . y .. que tienen todas las carpetas
- if( $elemento != "." && $elemento != ".."){
- // Si es una carpeta
- if( is_dir($path.$elemento) ){
- // Muestro la carpeta
- // $resultado .= "
CARPETA: ". $elemento ."
";
- // Si es un fichero
- } else {
- $ext = explode(".", $elemento);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {$cantidad_imagenes++ ;
-
- $exif = leer_exif("$path/$elemento");
- $name = $exif['exif']['FileName'];
- $title= "$name ";
- $date= $exif['exif']['DateTimeOriginal'];
- $autor= $exif['exif']['Artist'];
- if(!isset($autor)) { $autor = $datos['40'][0]; }
- $licencia= $exif['exif']['Copyright'];
- if($licencia ==="") { }
- else{
-// $datos['61'][0]= " XX $licencia XXX";
- }
-
-
- //$datos['61'][0] = $licencia;
- if(isset($exif['exif']['UndefinedTag:0xC4A5'])) {
- $exif['exif']['UndefinedTag:0xC4A5']= base64_encode($exif['exif']['UndefinedTag:0xC4A5']);
- }
- if(isset($exif['exif']['MakerNote'])) {
- $exif['exif']['MakerNote']= base64_encode($exif['exif']['MakerNote']);
- }
- if ( $exif['lon'] =="" )
- {
- $geo = $datos['58'][0];
- $mundo ="";
- $datos['58'][0] = $datos['58'][0];
-
- }
- else {
- $geo = "$exif[lon] $exif[lat] 18" ;//$datos['58'][0];
- $mundo ="
";
- $datos['58'][0]= "$geo";
-
-
- }
-
- // $remplazos = array('40');
- // else { $mapa="";}
- //$json = json_encode($exif['exif'],JSON_PRETTY_PRINT);
- //if ( $exif['lon'] =="" ){$datos['58'][0] = $geo;}else {$datos['58'][0] = $datos['58'][0];}
- $resultado .= "
$geo $mundo / ".$datos['58'][0]." ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]." ";
-
- }
-
- $cantidad ++;
-
- $campo .= "";
-
-
- }
- }
-
- }
-
-
- if($div !="" ) {
- if($opcion == "cantidad") {
- $resultado = "
-
- $esarchivo $cantidad archivos, $cantidad_imagenes imágenes jpg, $mapa georeferenciadas
-
-
";
- }
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }else {
-
-
-
- return " $campo $resultado"; }
-}
-$xajax->registerFunction("listar_archivos");
-
-
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( "$file" );
- $resultado['exif'] = $exif;
- $resultado['file']= $file;
- $resultado['FileName']=$exif['FileName'];
-
-if($exif === false) {
-//return false;
-}
-
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado['lat'] = $gps_latitude;
- $resultado['lon'] = $gps_longitude;
-
- //$resultado = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
- }else{}
-
-}
-
-
- $resultado['DateTime'] = $exif['DateTimeOriginal'];
- $resultado['estado'] = "oK";
-
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-
-function relacion_render($form_id,$id_campo,$valor,$cantidad){
-
-
-
-
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-$link = "
Ver referencia ";
-}
-
- return " $valor_actual $link";
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_render");
-
-function buscador_base($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_base_$name";
-$onchange = " xajax_buscador_select_base('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select_base('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_base");
-
-
-function buscador_select_base($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_base_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $tabla = explode(':',$claves[0]) ;
- $tabla = $tabla[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion1 = explode(':',$claves[2]) ;
- $descripcion1 = $descripcion1[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $descripcion3 = explode(':',$claves[4]) ;
- $descripcion3 = $descripcion3[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT * FROM $tabla WHERE $descripcion1 like '$valor%%' GROUP BY $key limit 50 ";
-
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-//$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-//$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select_base");
-
-
-
-function buscador_campo($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_$name";
-$onchange = " xajax_buscador_select('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_campo");
-
-
-function imprimir_buscador_campo($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function imprimir_base($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $campo1 = remplacetas("$formulario","$key","$valor","$descripcion","");
- $campo2 = remplacetas("$formulario","$key","$valor","$descripcion2","");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function buscador_select($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and (id_campo ='$key' OR id_campo ='$descripcion' )AND contenido like '$valor%%' GROUP BY control limit 50 ";
-
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $campo_key[0] $campo_descripcion[0] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select");
-
-
-
-function relacion_select($id_campo,$form_id,$valor,$name,$control,$tipo){
-$link=Conectarse();
-$valor_actual ="";
-mysql_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit =="" ) {$limit = 20;}
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- if($row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_select");
-
-function combo_select($id_campo,$form_id,$valor,$name,$control,$control_combo){
- $selected="";
- $and="";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if($control_combo !="") {
- $div ="combo_$name";
-$and ="AND campo_valor LIKE '$control_combo:%%'";
-}else{
-$onchange ="xajax_combo_select('$id_campo','$valor','$valor','$name','$control',(this.value)) ";
-$div ="combo_$name";
-$name ="primario_$name";
-}
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' $and ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado=" $valor
-Seleccione
- " ;
- // $resultado = array_unique($entrada);
-while( $row = mysql_fetch_array( $sql ) ) {
- $campos = explode(':',$row['campo_valor']);
-
- IF($control_combo ==""){
- $campo_primario[]=$campos[0];
- $campo_primario = array_unique($campo_primario);
- }
- else {
- $campo_primario[] = "$campos[0] $campos[1]";
- }
- //$identificador = $identificador[0];
-//if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-//$resultado .= " $campos[0] ";
- }
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "$V ";
-}
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-if($control_combo =='') {
- return $resultado;
- }
-else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-$xajax->registerFunction("combo_select");
-
-
-function aplicacion_carrusel($nombre,$id,$plantilla){
- if($id =='') {
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- }
- if($nombre =='') {
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre = $nombre[0];
- }
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
- $descripcion = $descripcion[0];
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
- $campo_titulo = $campo_titulo[0];
- $consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
- $link=Conectarse();
- $sql=mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysql_data_seek($sql, 0);
-// $contenido = "
$nombre[0] ";
-// $contenido .= "
$descripcion[0] ";
-
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- if($orden === 0) {$activo = "active";}else{$activo="";}
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $campo = buscar_campo_tipo($id,"15");
- $id_campo = $campo[0];
- $imagen = remplacetas('form_datos','control',$row[control],'contenido',"id_campo = '$id_campo'") ;
- $items .= "
-
-
- $contenido_desplegado
-
-
";
- $indicador .= "
";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- //$contenido .= "$contenido_desplegado ";
- $orden = ($orden +1 );
- }
-$contenido .= "
-
-
-
$nombre[0] $descripcion[0]
-
-
-
- ";
- //$contenido = " $links
";
- }
-
-
-return $contenido;
-}
-
-
-function formulario_embebido($id){
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
- $impresion = formulario_areas($id,"embebido",'','');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
-
$visitas
- $formulario_nombre[0]$formulario_descripcion[0]
- $impresion
-
-
-
-
-
-
-
";
- return $muestra_form ;
-}
-
-
-function formulario_embebido_ajax($id,$opciones,$tipo){
- $respuesta = new xajaxResponse('utf-8');
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- if($publico[0] =="0") {
- $resultado = "
NO tiene permiso para usar este formulario ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "$permiso_identificador
Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
-
-
-
- if($tipo =='edit' AND $_SESSION['id_empresa'] !== $id_empresa[0] AND $permiso_identificador != $opciones) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
- $salir
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- if($tipo=="respuesta") { $form_respuesta = "respuesta";}
- $impresion = formulario_areas("$id","$tipo","$form_respuesta","$opciones");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
$visitas
-
-
- $impresion
-
-
- ";
- // return $muestra_form ;
-
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- //$div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-
-}
-$xajax->registerFunction("formulario_embebido_ajax");
-
-function formulario_embebido_campos($id,$opcion){
- $impresion = formulario_modal("$id",$form_respuesta,$control,"$opcion");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $muestra_form = "
-
-
$formulario_nombre[0]
-
$formulario_descripcion[0]
- $impresion
-
-
-
";
- return $muestra_form ;
-}
-
-function json($datos){
-if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND
-form_id.publico = '1' "; $w_publico = "WHERE form_id.publico = '1'
-"; }
-else { $publico = "AND form_id.id_empresa = '$_SESSION[id_empresa]'
-"; $w_publico = "WHERE form_id.id_empresa = '$_SESSION[id_empresa]' ";
-}
-$datos = mysql_seguridad($datos);
-$link=Conectarse();
-mysql_query("SET NAMES 'UTF8'");
-if($datos[id] !=''){
-if($datos[tipo] =='simple') {
-$campos ="control " ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-GROUP BY form_datos.control
-ORDER BY form_datos.timestamp DESC";
-
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysql_fetch_array( $sql ))
- {
-
-
-
- if($datos[tipo]=="simple"){
-
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
-
- //if($privado != '1') {
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $nuevos_datos = $datos;
- $nuevos_datos[identificador]="$row[control]";
- $nuevos_datos[tipo]="array";
- //$features[$row[control]] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- $features[] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
-//}//
- }
- else {
- // $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-
-if($tipo == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-return $resultado;
-
-}
-else {
-$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo , contenido ,timestamp, control as identificador ,
-form_datos.orden" ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-ORDER BY form_datos.control ,form_datos.timestamp ";
-}
-
-}
-elseif($datos[identificador] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo ,contenido ,timestamp, control as identificador ,
-form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (control = '$datos[identificador]' )
-$publico
-";
-}
-elseif($datos[dato] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, nombre as formulario,
-campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp,
-control as identificador, form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_datos.id = '$datos[dato]' )
-$publico
-";
-}
-else {
-$consulta = "SELECT id as form_id, nombre as form_nombre, descripcion
-as form_descripcion , creacion , publico AS contenido_publico ,
-modificable AS formulario_publico
-FROM form_id $w_publico";
-}
-
-
-$sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysql_fetch_array( $sql ))
- {
- //$nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $formulario = remplacetas('form_datos','id',$row[id_dato],'form_id',"") ;
- //// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$formulario[0]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
-/// PRIVACIDAD
- if($privado !='1') {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $features[] = "$nombre_campo[0] : $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-}
-
- $i++;
- }
-
-
-
-}
-
-if($datos[tipo] == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-
-return $resultado;
-}
-
-
-
-
-function imprime_geojson($id,$id2,$plantilla){
- $id_form = mysql_seguridad($id);
- $id_form2 = mysql_seguridad($id2);
- $campo = buscar_campo_tipo($id_form,"14");
- $campo2 = buscar_campo_tipo($id_form2,"14");
- $id_campo = $campo[0];
- $id_campo2 = $campo2[0];
- if($id_form2 !=""){$w_id2 =" OR form_id = '$id_form2'"; $or_2 ="or id_campo = '$id_campo2'";}
-
-$link=Conectarse();
-
- $consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data
-FROM `form_datos`
-WHERE (form_id = '$id_form' $w_id2 )
-AND ( id_campo ='$id_campo' $or_2 )
-group by control
-ORDER BY orden desc";
-//return $consulta;
-
- mysql_query("SET NAMES 'UTF8'");
- $sql = mysql_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysql_num_rows($sql)!='0'){
- $id = 1;
- $features = array();
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $marcador = array();
- $propiedades = array();
- $identificador = explode(',',$row[data]);
- $identificador = $identificador[0];
- $campos = explode(" ",$identificador);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- $formulario = formulario_imprimir($row[id],$row[control],"$plantilla");
-
- $marcador["type"] = "Point";
- $marcador["coordinates"] = array($lat,$lon);
- $propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
- //$propiedades[description] ="HOLA MUNDO";
- $propiedades[description] ="
$formulario
";
- $propiedades[sounds] ="";
- $propiedades[url] ='';
- $propiedades[icon][iconSize] =[60];
- //$propiedades[icon][shadowSize] =[70,70];
- //$propiedades[icon][shadowUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
-
- //$propiedades[title] ='Hola mundo';
- if($propiedades[icon][iconUrl] =="") {
- $icono_imagen = buscar_imagen("$id_form",$row['control'],"","");
- //$propiedades[icon][iconUrl] = "$_SESSION[site]/milfs/images/iconos/negro.png";
- $propiedades[icon][iconUrl] = "$_SESSION[url]images/secure/?file=150/$icono_imagen";
- }
- $geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)."},";
- $features[] = $marcador;
-
- $id++;
- }
-
-}
-//-75.58295 6.25578 16
-
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
- \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
- \"type\": \"FeatureCollection\",
- \"features\": [$geometria ]}";
-return $geometria;
-}
-
-
-function aplicacion_presentacion($id,$div,$timeout){
- if($timeout < '1000') {$timeout =5000;};
- $respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT * FROM form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$control = mysql_result($sql,0,control);
-$impresion = formulario_imprimir("$id","$control","");
-
- }
-$siguiente = "
SIGUIENTE ";
-if($div ==''){
- $presentacion = "
$siguiente $impresion
";
- }else{
- //$respuesta->addAlert("$consulta");
- $respuesta->addScript("setTimeout(function(){xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout')},$timeout)");
- $respuesta->addAssign("$div","innerHTML","$siguiente $impresion");
- return $respuesta;
- }
-return " $presentacion";
-
-
-}
-$xajax->registerFunction("aplicacion_presentacion");
-
-function aplicaciones_listado($id_empresa,$id_form,$tipo,$div){
- $onclick ="";
- $accion = "";
- if($id_empresa !=''){
- if($id_form !="") {$w_form = " AND id = '$id_form'";}
- $w_publico =" publico ='1'";
- $w_empresa = " AND id_empresa = '$id_empresa' ";
- $consulta = "SELECT * , form_id.id as id_formulario FROM form_id WHERE $w_publico $w_form $w_empresa ORDER BY orden asc limit 10 ";
- //xajax_contenido_parallax('$row[id]');
- }
- else {
- $consulta = "SELECT *, razon_social as nombre , form_id.id as id_formulario FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC ";
-
- }
- //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado_li .= "
";
- }else {$resultado_li = "";}
-
-if($tipo =='li') { return $resultado_li.$resultado;}
-elseif($tipo =='nav') { return $resultado_nav;}
-elseif($tipo =='grid') {
-if($div !="") {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado_grid");
- return $respuesta;
- }else{
- return $resultado_grid;
- }
-}
-elseif($tipo =='banner') { return $resultado_banner;}
-elseif($tipo =='carrusel') { return $resultado_carrusel;}
-else {return $resultado;}
-}
-$xajax->registerFunction("aplicaciones_listado");
-
-
-function contenido_aplicacion($id,$plantilla){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
-
- $control = mysql_result($sql,0,"control");
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysql_data_seek($sql, 0);
-
- //$contenido = "
$nombre[0] ";
- $contenido = "
$descripcion[0] ";
-
- $orden = 0;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- //return "$row[form_id] $row[control] $plantilla";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado
";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- if($id[0] =="") {$aviso = "
No se ha definido una aplicación con el nombre $nombre ";
- return $aviso;}
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
-
- mysql_data_seek($sql, 0);
- $contenido = " ";
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado ";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-
-
-function contenido_parallax($id){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- $contenido = "";
- mysql_data_seek($sql, 0);
-
- $orden = 0;
-while( $row = mysql_fetch_array( $sql ) ) {
- //$orden = $orden+500;
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'','contenido');
-
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $nav_li .="
-
- ";
- $style .=" a[id= '$row[control]']:target ~ #main_$id article.article
- {
- -webkit-transform: translateY(-$orden"."px);
- transform: translateY( -$orden"."px );
- } ";
- $links .= "
";
- $contenido .= "
-
- $contenido_desplegado
-
- ";
- $orden = $orden +800;
- }
- $contenido = "
-
-
- $links
-
-
-
-
- ";
- }
-
-//return " $contenido";
- $respuesta->addAssign("$div","innerHTML","$contenido");
- return $respuesta;
-
-}
-$xajax->registerFunction("contenido_parallax");
-
-function contenido_timeline($id){
-$div = "contenedor";
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- $control = mysql_result($sql,0,control);
- //$contenido = "
";
-//}else {$resultado ="
No se encontraron resultados "; return $resultado;}
-//if($id=="6" OR $id=="10") {
- $plantilla="";
- $class="";
- if($tipo !="" AND (!is_numeric($tipo)) AND $tipo !="metadatos" ) {
-////Usa una plantilla apra cada id
-
-$plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
-$plantilla = $plantilla[0];
-if($plantilla =="") {
-///Usa una plantilla generica por nombre
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = ''") ;
-$plantilla = $plantilla[0];
-//$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = '$id' ") ;
-}
-if($plantilla !='') { $plantilla = html_entity_decode ( $plantilla );}
-/*else {
-$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"") ;
-$plantilla= $plantilla[0];
- }
- */
- }
-if($plantilla != ""){
-eval("\$plantilla = \"$plantilla \";");
- $full =" $plantilla ";
- }else {
- $full= "
$resultado
";
- }
-
- $resultado ="$full";
- return $resultado;
-
-// }else {$resultado ="
No se encontraron resultados "; return $resultado;}
- }else {$resultado =""; return $resultado;}
-}
-
-
-function subir_imagen($respuesta,$id){
-$resultado ="";
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//this.form.taget= 'ventana'; this.form.action = 'destinoEspecial.html'; this.form.submit()"
-if($id =="") {
- $empresa = $_SESSION['id_empresa'];
- $javascript = "$_SESSION[site]milfs/includes/upload.php";
- $path = "$_SESSION[site]milfs/";
-}
-else {
-$id_empresa = remplacetas('form_id','id',"$respuesta",'id_empresa','');
-$empresa= $id_empresa[0];
-$web = remplacetas('empresa','id',"$empresa",'web','');
- $javascript = "https://$web[0]/milfs/includes/upload.php";
- $path = "https://$web[0]/milfs/";
-}
-
-/*
-if(file_exists(milfs/includes/upload.php)) {$javascript="milfs/includes/upload.php"; $path ="milfs/";}
-else{$javascript="includes/upload.php"; $path ="";}
-*/
-
-//$javascript="milfs/includes/upload.php";
-//$javascript="milfs/includes/upload.php";
-//$path ="milfs/";
-$campo_mapa = buscar_campo_tipo($respuesta,"14");
-$campo_mapa = $campo_mapa[0];
-if ($id ==''){$id='imagen';}
-$size = ($_SESSION['upload_size']*1024*1024)." bytes";
-$resultado ="
-
-
-
-
-
-
-
-La imagen debe estar en formato .jpg y de tamaño máximo $_SESSION[upload_size] MB ( $size)
-
-";
-return $resultado;
-
-}
-
-
-function formulario_importador($accion) {
-
- if($accion =='') {
- $resultado="
Importador";
-
- return $resultado;
- }
- $respuesta = new xajaxResponse('utf-8');
- $formulariox =formulario_importar('','menu','');
- $resultado="$formulariox
";
- $respuesta->addAssign("contenido","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("formulario_importador");
-
-
-function subir_archivo($perfil){
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//$empresa = remplacetas('form_id','id',"$perfil",'id_empresa','');
-//$web = remplacetas('empresa','id',"$empresa[0]",'web','');
-$javascript="https://tupale.co/milfs/includes/upload_archivo.php";
-$resultado ="
-
-
-
-
-Máximo 1MB
-
- ";
-
-
-return $resultado;
-
-}
-
- /*
-function formularios_muestra_listado($formulario){
-
- if($formulario==''){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ";
-$sql=mysql_query($consulta,$link);
-
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
- $resultado .="
";
- $resultado .= "Seleccionar formulario a importar ";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= " $row[nombre] ";
- }
-
- $resultado .=" ";
- }else {$resultado = "";}
-
- return $resultado;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $subir = subir_archivo($formulario) ;
- $div="importador_select";
- $resultado .= "$subir";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-$respuesta->addAssign("importador_archivo","innerHTML","");
-
-
-
-return $respuesta;
-}
-}
-$xajax->registerFunction("formularios_muestra_listado");
- */
-
-function formulario_importar_subir($formulario){
- $pie="";
- $respuesta = new xajaxResponse('utf-8');
- $formulario_nombre = remplacetas('form_id','id',$formulario,'nombre','') ;
- //$formulario_descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
- $encabezado = "
Importar $formulario_nombre[0] ";
- $subir = subir_archivo($formulario) ;
- $div="contenido";
-
- $muestra_form = "
-
- $subir
-
-
- ";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$encabezado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-return $respuesta;
-
-}
-$xajax->registerFunction("formulario_importar_subir");
-
-
-function formulario_importar($filename,$accion,$perfil){
-$formulario = "";
-$consulta = "";
-$div = "importador_archivo";
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$resultado = "
-
-
-
-
- Importando formulario ";
-$nombre = "/tmp/$filename";
-if($accion == "grabar") {
-}
-if (($handle = fopen($nombre, 'r')) !== FALSE)
- {
- $fila= 0;
- set_time_limit(0);
-while (($datos = fgetcsv($handle,0,"|")) !== FALSE) {
-$numero = count($datos);
-if($fila >=1) {
-$resultado .= "";
-$numero_columna = 0;
-for ($c=0; $c < $numero; $c++) {
-$columna = $datos[$c];
-if($columna !=""){
-if($accion === "grabar"){
-$control=md5($perfil.$fila.time());
-$ip = obtener_ip();
-$graba_ip = " ip = INET_ATON('".$ip."') ";
-$consulta_campos = "INSERT INTO form_datos SET timestamp= '".time()."', id_usuario='$_SESSION[id]',id_empresa='$_SESSION[id_empresa]',form_id ='$perfil',
-$graba_ip ,
-control = '$control', $consulta id_campo = '$campo[$numero_columna]' , contenido = '$columna'";
- // $verificar_campo = formulario_verificar_campo($perfil,$campo[$numero_columna]);
- $elregistro= $campo[$numero_columna];
- //if($verificar_campo == NULL){}else{
- if(is_numeric($elregistro)) { $elregistro =$elregistro;}else {$elregistro = -9;}
- //$verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$elregistro,'campo_nombre','');
- if($campo_existe[0] == ""){}else{
- $sql = mysql_query($consulta_campos,$link);
- if($sql) {
- $class='success';
- $resultado = "GRABADO $fila".time();
- //$sql_resultado = "oK";
- }
- else {
- $class='danger';
- }
- }
- }
-}
-//$resultado .= "$columna $sql_resultado ";
-$numero_columna ++;
- }
- $resultado .= " ";
- }
- else {
- $resultado .= "";
-
- $posicion = 0;
- for ($c=0; $c < $numero; $c++) {
- $titulo = $datos[$c] ;
- $campo[$posicion] = $datos[$c];
- if(is_numeric($titulo)) { $titulo =$titulo;}else {$titulo = -9;}
- $verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$titulo,'campo_nombre','');
- if($verificar_campo == NULL){$verificar_campo_aviso =" No existe "; $class='danger';
- if($campo_existe[0] !='') { $verificar_campo_aviso =" No está en el formulario ";$class='warning';}
- }
-
- else{$verificar_campo_aviso =""; $class='success';}
-
- $resultado .= "$titulo $campo_existe[0]$verificar_campo_aviso ";
- $posicion ++;
- }
-
-
- $resultado .= " ";
- }
- $fila++;
- }
-
-
- $resultado .= "
-
$fila ".time()." " ;
- }
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}
-
-$xajax->registerFunction("formulario_importar");
-
-
-
-function formulario_verificar_campo($perfil,$id_campo){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM `form_contenido_campos` WHERE `id_form` = '$perfil' AND id_campo='$id_campo'";
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
-$existe = NULL;
-
- }else {
-
-$control=mysql_result($sql,0,"control");
-$obligatorio=mysql_result($sql,0,"obligatorio");
-$existe[]= $control;
-$existe[]= $obligatorio;
-$existe[]= $consulta;
-
-}
-
-return $existe;
- }
-
-function borrar_tmp($div) {
-if($div =='') {
- $div="borra_tmp";
-$resultado ="
Limpiar ";
-
-return $resultado ;
-}
-$dir = "tmp/";
-$ficheroseliminados= 0;
-$handle = opendir($dir);
-while ($file = readdir($handle)) {
- if (is_file($dir.$file)) {
- if ( unlink($dir.$file) ){
- $ficheroseliminados++;
- }
- }
-}
-$fecha = time ();
-$ahora = date ( "Y-m-d h:i:s" , $fecha );
-$resultado ="
$ahora
";
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("borrar_tmp");
-
-
-function formulario_imprimir_linea($id,$control,$tipo) {
- $id = mysql_seguridad($id);
- //if($id !='') {$w_id = "AND form_id = '$id'";}
- $control = mysql_seguridad($control);
-/* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC
- ";
- */
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
-
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
-
-
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysql_result($sql,0,"form_id");}
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
-
- $titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo = $titulo[0];
-
-$timestamp=mysql_result($sql,0,"timestamp");
-$fecha = date ( "Y-m-d h:i:s" , $timestamp);
-
-if (mysql_num_rows($sql)!='0'){
- mysql_data_seek($sql, 0);
-// $resultado ="
";
- $imagen = formulario_valor_campo("$id","0","","$control");
- $imagen = $imagen[3];
- if($imagen[3] != null AND $tipo !='titulos') {
- $array[image]=$imagen;
- $imagen_icon="secure/?file=150/$imagen";
- $imagen= " ";
-
- }else {$imagen='';}
-$td .= "$imagen ";
-
- while( $row = mysql_fetch_array( $sql ) ) {
-
- $campo_tipo = remplacetas('form_campos','id',$row[id_campo],'campo_tipo');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $md5_contenido = $contenido[4];
- //md5(binary contenido) as md5_contenido,
- $contenido_original = $contenido;
- //$control = $contenido[0];
- $contenido = $contenido[3];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $campo_nombre[0] =" $campo_nombre[0]";
- if($tipo=="titulos") {
- $contenido = "$campo_nombre[0] ";
- }
- elseif($tipo=="titulos_csv"){
- $csv .= '"'.$campo_nombre[0].'";';
- }
- elseif($tipo=="linea_csv"){
- $csv .= '"'.$contenido.'";';
- }
- elseif($tipo=="array"){
-
- if($row[id_campo] == $titulo){$array[title]=$contenido;}
- if($row[id_campo] == $categoria_campo){
- $array[category]=$contenido;
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- //$icono[0] = $imagen_icon;
- if($icono[0] =='') {
- //$icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $array[icon][iconUrl] = "$icon";
- //$array[icon][iconSize] ="[50,50]";
- //$array[icon][shadowSize] =[70,70];
- //$array[icon][shadowUrl] = "http://$_SERVER[HTTP_HOST]/milfs/images/iconos/sha.png";
-
- }else{}
- $array[$row[id_campo]] = $contenido;
- }
- else{
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
- if($size > $limite) {
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' AND $tipo==""){if($contenido !=""){$contenido = " "; }else{$contenido="";}}
- if($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- require("includes/datos.php");
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/negro.png");
- $contenido = "
-
- ";
- } else { $contenido ='';}
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
- else {$contenido = Markdown("$contenido");}
-
- }
-
-
- if($tipo=="titulos") {
-$td .= " $contenido ";
-
- }else{
-
- $td .= " $contenido ";
- }
- }
-
-if($tipo=="titulos") { $identificador ="Identificador "; }else {$identificador ="$control ";}
- $resultado .="$td $identificador ";
-}
- if($tipo =='titulos_csv' or $tipo=='linea_csv') {
-
-return $csv;
- }
- if($tipo =="array") {
- //$array["title"]="hola mundos";
- return $array;
- }
- return $resultado;
-}
-
-
-// $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-function mostrar_coincidencias_plantilla($id_form,$filtro,$valor,$plantilla) {
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-$control=mysql_result($sql,0,"control");
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) )
- {
-$resultado .= contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- }
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias_plantilla");
-
-
-function mostrar_coincidencias($id_form,$filtro,$valor) {
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-//mysql_real_escape_string($consulta);
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!=0){
-mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) )
- {
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $campos .= " $depliegue ";
-
- }
- $resultado = "
";
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias");
-
-
-function matriz_formulario($formulario,$div,$registros,$pagina,$formato){
- $respuesta = new xajaxResponse('utf-8');
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$md5_filtro = $formulario["campo_filtro"];
-//$formulario = mysql_seguridad($formulario);
-mysql_real_escape_string($formulario);
-$perfil = $formulario["form_id_id"];
-$filtro = $formulario["campo_filtro"];
-$control = md5(rand(1,99999999).microtime());
-
-$cantidad = formulario_contar($perfil);
-$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_filtro'";}
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{
- $resultado ="
Por favor seleccione un formulario";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-if($cantidad < 1) {
- $resultado ="
-
- El formulario \"$formulario_nombre[0]\" no tiene registros
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
-}
-
-$fecha_inicio = $formulario["inicio"];
-if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
-$fin = $formulario["fin"];
-$id_campo = $formulario["id_campo"];
-$busqueda = $formulario["busqueda"];
-
-if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";}
-if($id_campo ==''){
- $campo ='';
-
- }else{
- if($busqueda =='') {
- $resultado ="
Por favor escriba una palabra para buscar";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
- $campo ="AND id_campo = '$id_campo'";
-
- }
-
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';}
-
-
-
-$consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
- FROM form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_datos.id_empresa = '$_SESSION[id_empresa]'
- $busca
- $perfil
- $campo
- $w_filtro
- AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio')
- AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden";
-
-
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)==0){
- $resultado ="
No hay resultados para la consulta ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
-if (mysql_num_rows($sql)!=0){
- $total_registros = mysql_num_rows($sql);
- if($formato=='csv'){
- $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv";
- $boton_descarga ="
Descargar ";
- $archivo_reporte=fopen($nombre_archivo , "w");
- $encabezado =";;Periodo\n;;$inicio\n;;$fin \n ";
- fputs ($archivo_reporte,$encabezado);
- $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n";
- fputs ($archivo_reporte,$titulo);
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) )
- {
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv');
- $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv');
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $linea = $linea."\n";
- $lineas .= $linea;
- }
- $contenido ="$titulo \n $lineas";
- //rewind($archivo_reporte);
- fputs ($archivo_reporte,$contenido);
- $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga);
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
- }
- else{
- $respuesta ="
No hay resultados
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
-
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta.$limite;
- $sql=mysql_query($consulta_limite,$link);
- if (mysql_num_rows($sql)!='0'){
- $botones .= "
Limpiar ";
- if($formato!='csv'){
- $botones .= "
- Exportar
- ";
- }
- $paginacion ="";
- $paginacion .= $indice;
- $encabezado = "
-
-
-
$botones $paginacion $total_registros registros
-
-
";
-$fila=0;
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $menu ="
-
-
-
- ";
- $campos .= "
$menu $depliegue ";
- }
- $resultado .="
";
- }else{
- $resultado .="
No hay resultados para la consulta ";
- }
- //$resultado .="$consulta";
-$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado);
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-} $xajax->registerFunction("matriz_formulario");
-
-
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysql_query($consulta,$link);
-if (@mysql_num_rows($sql)!=0){
-$resultado[] = mysql_result($sql,0,$por);
-$resultado[] = mysql_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysql_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-function formulario_campos_select($perfil,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-
- $categoria = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," opcion = 'categoria'") ;
- $categoria = $categoria[0];
-$resultado = "
Campo
-
- Todos los campos ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-if($div =='') {
- if ($row[id_campo] == "$categoria"){
- $class="active";
- $filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
- }else { $class=""; $filtro ='';}
- $listado .="$row[id_campo] $row[campo_nombre] $filtro ";
- }
- }
-$resultado .= "
-
"; }
-else{$resultado = '';}
-
-if($div =='') {return $listado;}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("formulario_campos_select");
-
-
-function formulario_campos_filtro($perfil,$campo,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado = "
- Filtro
-
- Seleccione ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
";
- }
-else{$resultado = "
No se encontraron resultados
";}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_campos_filtro");
-
-
-//$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo","$id_campo");
-function formulario_consultar($div){
- if($div==''){
- $div = "contenido";
- $resultado = "
Consultas";
- return $resultado;
- }
- $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'",'');
- $fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $peticion = "
-
-
-
-
-
-
-
-
- Formulario
- $formulario
-
-
-
-
-
-
-
-
Consultar
-
-
-";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$peticion);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_consultar");
-
-
-function formulario_campos_procesar($form,$tipo_accion){
- //$form = mysql_seguridad($form);
- $campos_formulario ="";
-$grabar_campos_valores ="";
-$respuesta = new xajaxResponse('utf-8');
-$campo_nombre = $form["campo_nombre"];
-if($campo_nombre =='') {
-$respuesta->addAlert("El Nombre del campo no puede estar vacío");
-$respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
-return $respuesta;
-}
-
-//$campo_nombre = ucfirst(strtolower($campo_nombre));
-@$campo_descripcion = $form["campo_descripcion"];
-@$campo_tipo = $form["campo_tipo"];
-@$campo_area = $form["campo_area"];
-@$misma_area = $form["misma_area"];
-@$campo_orden = $form["campo_orden"];
-@$campo_identificador = $form["campo_identificador"];
-@$activo = $form["activo"];
-@$tipo = $form["tipo"];
-@$editar = $form["editar"];
-@$id_campo_editar = $form["id_campo_editar"];
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-if ($editar == 'editar' AND $tipo_accion =='editar'){
-mysql_query("
- UPDATE `form_campos`
- SET `campo_nombre` = '$campo_nombre',
- `campo_descripcion` = '$campo_descripcion',
- `orden` = '$campo_orden' ,
- `campo_area` = '$campo_area',
- `campo_tipo` = '$campo_tipo',
- `id_empresa` = '$_SESSION[id_empresa]',
- `activo` = '$activo'
- WHERE `form_campos`.`id` ='$id_campo_editar'
- LIMIT 1",$link);
-$w_campo = "id = '$id_campo_editar'";
-
- }else {
-$id_empresa = $_SESSION['id_empresa'];
-$id_especialista = $_SESSION['id'];
- $buscar_campo_nombre = remplacetas('form_campos','campo_nombre',$campo_nombre,'campo_nombre'," id_empresa = '$id_empresa' AND campo_area = '$campo_area' ") ;
- if($buscar_campo_nombre[0] == $campo_nombre) {
- $respuesta->addAlert("El Nombre del campo ( $campo_nombre ) ya existe en la misma área ");
- $respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
- return $respuesta;
- }
-if($campo_identificador == "") { $campo_identificador = md5($_SESSION['id_usuario']."-".microtime()); }
-$consulta = "
- INSERT INTO `form_campos`
- (`id_especialista`, `campo_nombre`,`campo_descripcion`,`campo_tipo`, `campo_area`, `orden`, `activo`, `identificador`, `id_empresa`)
- VALUES ('$id_especialista','$campo_nombre','$campo_descripcion','$campo_tipo','$campo_area','$campo_orden','1','$campo_identificador','$id_empresa')";
- $sql =mysql_query($consulta,$link);
- $ultimo_id = mysql_insert_id();
-$w_campo= "identificador = '$campo_identificador'";
-if($sql) {
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'div_campos')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
- $campos_formulario ="
-
-
- El campo se creó con éxito
- Crear un nuevo campo
- Modificar campo $listado_campos
- ";
- if(@$form['agregar_id_form'] !="") {
- $respuesta->AddScript("xajax_agregar_campos('grabar_campos','contenido','$ultimo_id','$form[agregar_id_form]') ");
- ///$respuesta->addAssign("$div","innerHTML",$resultado);
- //return $respuesta;
- }
- }else {$campos_formulario = "
Problemas al grabar el campo $consulta";}
- }
-
-if($id_campo_editar !='' AND $tipo_accion =='editar'){$id_form_campo = $id_campo_editar;}else {
-//$id_form_campo = mysql_insert_id($link);
-$id_form_campo = $ultimo_id;
-}
-//$respuesta->addAlert("( $campo_tipo / $id_form_campo / $ultimo_id / $form[opciones] ) $consulta");
-//$respuesta->addAssign("contenido","innerHTML","$consulta_campos_valores");
-//return $respuesta;
-if($campo_tipo == '23' ){
-$grabar_campos_valores = "(".$id_form_campo.",'".$form[opciones]."')";
-}
-/// separacion por comas
-else {
-$opciones=str_replace(', ',',',"$form[opciones]");
-$opciones = explode(",",$opciones);
-
-foreach($opciones as $c=>$v){
-
- //if($v !='') {$v = ucfirst(strtolower($v));
- if($v !='') {$v = $v;
-
-$grabar_campos_valores .= "( $id_form_campo ,'$v'),";
- }
-
- }
-$grabar_campos_valores =substr ("$grabar_campos_valores",0,-1);
-} /// fin de separacion por comas
-
-$borrar_campos_valores = "DELETE FROM `form_campos_valores` WHERE `id_form_campo` = '$id_form_campo'";
-$consulta_campos_valores = "INSERT INTO form_campos_valores (id_form_campo,campo_valor) VALUES ".$grabar_campos_valores."";
-
- $sql_borrar_campos_valores =mysql_query($borrar_campos_valores,$link);
- $sql_campos_valores =mysql_query($consulta_campos_valores,$link);
-
- $campos=mysql_query("
- SELECT id_form_campo, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, orden
- FROM `consulta_campos` , `tipo_campo`
- WHERE $w_campo
-
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- LIMIT 1",$link);
-
-
-$campos_formulario .= "
";
-while( @$row = mysql_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "
".$row['orden']."";}
-else{
-$campos_formulario .= "
".$row['orden']." ";
- } }
-
-$respuesta->addAssign("formulario_campos_$misma_area","innerHTML",$campos_formulario);
-return $respuesta;
-}$xajax->registerFunction("formulario_campos_procesar");
-
-function formulario_opciones_select($tipo,$id_campo){
- $valores="";
- $respuesta = new xajaxResponse('utf-8');
- $div = 'opciones_select';
-if($id_campo !=''){
-$consulta= "SELECT * FROM form_campos_valores WHERE id_form_campo = '$id_campo'";
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-while( $row = mysql_fetch_array( $sql ) ) {
- $valores .= "$row[campo_valor],";
- }
- $valores = substr($valores,0,-1);
- }
- }
-if($tipo =='8'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='9'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='16'){
- if($valores =='') {$valores = "1,10";}
-$resultado = "
$valores ";
- }
-elseif($tipo =='17'){
- $resultado ="
";
-}
-else{
-$resultado = "
$valores ";
-}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_opciones_select");
-
-
-
-function crear_campos_formulario($form,$id_form){
- $id_form=$id_form;
- $area="";
- $Campo_tipo_definido="";
- $Tipo_campo="";
- $campo_nombre ="";
- $campo_descripcion ="";
- $editar ="";
-
-$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-if($form['div'] !="") { $div = $form['div'];}else{$div="div_campos";}
-
-@$especialista = $form["id_especialista"];
-@$id_campo_editar = $form["id_campo_editar"];
-$resultado = "
-
-$id_campo_editar";
-$link = Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$capa = "crear_campos_consulta_$area";
-$formulario ="manejo_campos_$area";
-
-if ($id_campo_editar > 0){
-$sql=mysql_query("SELECT * FROM form_campos WHERE id = '$id_campo_editar' AND activo ='1'",$link);
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .="";
-$campo_descripcion =$row['campo_descripcion'];
-$campo_nombre =$row['campo_nombre'];
-$orden =$row['orden'];
-$especialista =$row['id_especialista'];
-
-$formulario ="manejo_campos_$id_campo_editar";
-$editar="
-
-
-
";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
- }
-
-$Tipo_campo ="
Tipo:
-
";
-$tipos=mysql_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ",$link);
-while( $row = mysql_fetch_array( $tipos ) ) {
-
-if($row['id_tipo_campo'] == $Campo_tipo_definido){
-$Tipo_campo .= " > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-
-
-
- Incluir este campo en el formulario actual
-
-
- ";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-
-
";
-$resultado = "
-
-
- Crear un nuevo campo
- $resultado
-
-";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("crear_campos_formulario");
-
-function formulario_crear_campo($area,$campo,$div){
- $campos_formulario="";
- $misma_area="";
-$respuesta = new xajaxResponse('utf-8');
- if($div==''){
- $div = "contenido";
- $cerrar = "
[X] ";
-$resultado = "
Campos ";
-
- return $resultado;
- }
- //$div="div_campos";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta_campos ="SELECT id, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, form_campos.activo, form_campos.campo_tipo
- FROM `form_campos` , `form_tipo_campo`
- WHERE id_empresa = '$_SESSION[id_empresa]' AND id = $campo
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- ORDER BY orden ASC";
- $campos=mysql_query($consulta_campos,$link);
-if($campo ==''){
-
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'$div')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
-$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-$tabla_campos = campos_tabla('id_especialista','');
-$campos_formulario = "
-
-
-
-
-
-
-
-
-
-
-
-
-
$tabla_campos
-";
-}else{
-$campos_formulario .= "
";
-while( $row = mysql_fetch_array( $campos ) ) {
-// if($row[campo_tipo] =='8'){
- $respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-// }
- $Tipo_campo ="
Tipo:
-
";
-$tipos=mysql_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ",$link);
-while( $row_tipo = mysql_fetch_array( $tipos ) ) {
-
-if($row_tipo['id_tipo_campo'] == $row['campo_tipo'] ){
-$Tipo_campo .= " > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-if($row['activo'] =='1'){$activo = "
Activo: el campo puede ser usado en formularios ";}
-else{$activo = "
Inactivo: El campo NO se usará ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-
-
-
-
-
-
-
";
-
- }
- }///fin de edicion
-
-
-
-$respuesta->addAssign($div,"innerHTML",$campos_formulario);
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_crear_campo");
-
-function agregar_campos($tipo,$div,$id,$formulario){
-$respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-if($tipo==''){
- $div="contenido";
-$resultado = "
Editar";
-print $resultado;
-return;
- }
- if($tipo=='consultar_listado'){
- $consulta="SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ASC";
- $sql =mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-$resultado .="Formulario:
";
-$resultado .= "Selecciona ";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "$row[nombre] ";
- }
-$resultado .=" $cerrar";
- }else {
-$resultado = "
No hay formularios para editar
";
- }
- }
-
-if ($tipo=='consultar_campos'){
- $consulta="
- SELECT form_contenido_campos.id_campo, form_contenido_campos.id,
- campo_nombre, obligatorio,control,multiple,form_contenido_campos.orden
- FROM form_contenido_campos, form_campos
- WHERE form_campos.id_empresa = '$_SESSION[id_empresa]' AND form_contenido_campos.id_form = $id
- AND form_contenido_campos.id_campo = form_campos.id
- ORDER BY form_contenido_campos.orden";
- $sql =mysql_query($consulta,$link);
- $consulta_nombre="SELECT * FROM form_id WHERE id ='$id'";
- $sql_nombre =mysql_query($consulta_nombre,$link);
- $nombre =mysql_result($sql_nombre,0,"nombre");
- $id_formulario = $id;
- //if (mysql_num_rows($sql)!='0'){
-$resultado ="$cerrar
$nombre
- ";
-$resultado .= "
-
- Campo
-
-
-
-
-
- Orden
-
-
- Multiple
-
-
- Borrar
-
-
-
";
-
-while( $row = mysql_fetch_array( $sql ) ) {
- /* $multiple = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = '$row[id]' AND descripcion REGEXP '^multiple:' ") ;
- $multiple = explode(":",$multiple[0]);
- $multiple = $multiple[1];*/
-
- //$multiple = $multiple[0];
- $privado = remplacetas('form_parametrizacion','campo',"$id_formulario",'opcion'," tabla='form_id' AND descripcion ='$row[id_campo]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
-
-
- //$multiple = $multiple[0];
-$resultado .= "
-
- $row[id_campo] $row[campo_nombre]
-
-
- Obligatorio
-
-
- 0
-
- 1
-
-
- Privacidad
-
- 0
-
- 1
-
-
-
-
-
-
-
-
";
- }
-
-$consulta_campos_todos ="SELECT form_campos.id, form_campos.campo_nombre, form_campos.campo_descripcion FROM form_campos WHERE form_campos.id_empresa = '$_SESSION[id_empresa]'
- ORDER BY campo_nombre ";
-$sql_consulta_campo =mysql_query($consulta_campos_todos,$link);
-
-$crear_nuevo ="
-
-
-
-
-
-
-";
- while( $row = mysql_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "
$row[campo_nombre] [$row[id]] ";
- }
-$resultado .="
-
-
-
-$crear_nuevo ";
-
- }/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
- if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="
Seleccione un campo";}
-else {
-$id_form=func_get_arg(3);
-$consulta = "SELECT id_campo FROM form_contenido_campos WHERE id_empresa = '$_SESSION[id_empresa]' AND id_campo= '$id' AND id_form= $id_form";
-$sql_consulta =mysql_query($consulta,$link);
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if(mysql_num_rows($sql_consulta) =='0') {
-$microtime = microtime();
-$consulta_grabar=" INSERT INTO form_contenido_campos (
-`id_campo` ,
-`id_empresa` ,
-`id_form` ,
-`obligatorio`,
-`control`
-)
-VALUES (
-'$id', '$id_empresa', '$id_form', '0', md5('$microtime' + rand())
-)";
-$sql_consulta_grabar =mysql_query($consulta_grabar,$link);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_form')");
-return $respuesta;
- }else{
-$div='atencion';$resultado="
El campo ya pertenece a esta consulta ";
- }
- }
-
- }///fin de grabar_campos
-
-if($tipo=='eliminar'){
-$confirmar=func_get_arg(3);
-
-
-if($id==''){
-$id_c=func_get_arg(4);
-$capa_original=func_get_arg(5);
-$resultado = "
- Seguro que desea eliminar el campo de esta consulta?
-
[SI]
-
[NO]
-
- ";}
- else{
- if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "
-
- ";
- }else{
-$consulta="DELETE FROM `form_contenido_campos` WHERE `control` = '$confirmar' LIMIT 1";
-$sql_consulta_eliminar = mysql_query($consulta,$link);
-$div=func_get_arg(5);
-$id_consulta=func_get_arg(4);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_consulta')");
-
- }
- }
-
- }/// fin de eliminar
-if($tipo == 'obligatorio'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `obligatorio` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="
$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-if($tipo == 'orden'){ /// orden
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `orden` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="
$id
- ";
-
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-
-if($tipo == 'prellenado'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `consulta_tipo_campos` SET `prellenado` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysql_query($consulta,$link);
-$a ="
$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de oprellenado
-$respuesta->addAssign($div,"style.display","block");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("agregar_campos");
-
-function formulario_nuevo($formulario,$div){
- $resultado ="";
- $formulario = mysql_seguridad($formulario);
- $respuesta = new xajaxResponse('utf-8');
- //$formulario=mysql_real_escape_string($formulario);
- $id_empresa= $_SESSION['id'];
- if($div==''){
- $div = "contenido";
-
-$resultado .= "
Formulario ";
-
- return $resultado;
- }
-if($formulario ==''){
- $formulario_nombre = "nuevo_formulario";
- $formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-
-Crear un formulario
-
- Nombre para el formulario
-
-
-
- Descripción
-
-
-
- Formulario anidado con:
- $formulario_respuesta
-
-
- Grupo:
-
-
-
-
- Privado
-
- Público
-
-
-
-
-
- Grabar
-
-
- ";
-
- }else{
-$control = md5(rand(1,99999999).microtime());
-
-$nombre = $formulario['nombre']; // aa
-$descripcion = $formulario['descripcion']; // dxddc
-$publico = $formulario['publico']; // dxddc
-$grupo = $formulario['grupo'];
-$id_empresa = $_SESSION['id_empresa'];
-
-if($publico =='') {$publico ='0';}
-$propietario= $_SESSION['id'];
-$formulario_respuesta = $formulario['formulario_respuesta']; // dxddc
-$link=Conectarse();
-@$formulario=mysql_real_escape_string($formulario);
-mysql_query("SET NAMES 'utf8'");
-$consulta = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-VALUES ('$nombre', '$descripcion', '1', '1', '$publico', '$propietario','$formulario_respuesta','$id_empresa');";
-$sql=mysql_query($consulta,$link);
-$ultimo_id = mysql_insert_id();
- if($grupo !="") {
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo' ,id_empresa= '$id_empresa'";
- $sql_grupo=mysql_query($consulta_grupo,$link);
- }
-
-$respuesta->addscript("xajax_formulario_listado('','contenido'); ");
-}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_nuevo");
-
-
-function formulario_listado($filtro_grupo,$div){
- $item="";
- $grupo_formularios="";
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} if($div==''){
- $div = "contenido";
- if(isset($_SESSION['grupo_formularios'])) { $sesion_grupo_formularios = $_SESSION['grupo_formularios'];}else { $sesion_grupo_formularios = "";}
-$resultado = "
Formularios ";
-
- return $resultado;;
- }
-$control = md5(rand(1,99999999).microtime());
-$respuesta = new xajaxResponse('utf-8');
-$_SESSION['grupo_formularios'] = $filtro_grupo;
-
-$link=Conectarse();
- $id=mysql_real_escape_string('$id');
-mysql_query("SET NAMES 'utf8'");
-if($filtro_grupo =="") {
-$consulta = "SELECT * FROM form_id WHERE id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
- }
-else {
-$consulta = "
-SELECT * FROM form_id, form_grupo
-WHERE form_grupo.id = form_id.id
-AND form_grupo.grupo = '$filtro_grupo'
-AND form_id.id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
-}
-$sql=mysql_query($consulta,$link);
-if($filtro_grupo !="") {
- $leyenda_filtro_grupo ="
Grupo $filtro_grupo ";
-
- }else{ $leyenda_filtro_grupo ="
Formularios "; unset($_SESSION['grupo_formularios']);}
-$resultado_link = "
Formularios ";
-$respuesta->addAssign("link_formulario","innerHTML",$resultado_link);
-
-
-$divider = 1;
-$columnas = intval(12/$divider);
- $listado_grupos = select_empresa('form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","AGRUPADO",'','',"$id_empresa");
- $listado_grupos ="
-
- Seleccione un grupo de formularios
- $listado_grupos
-
-
- ";
-
- $nuevo_formulario = "
-
";
- $resultado = "
-
- $nuevo_formulario
-
-
- $listado_grupos
-
- $leyenda_filtro_grupo
-
- ";
-
-if (mysql_num_rows($sql)!='0' ){
- $i =0;
-
- while( $row = mysql_fetch_array( $sql ) ) {
- $id= $row['id'];
- $C = $id;
-
- $cantidad = formulario_contar($row['id']);
- if($cantidad >0) {$cantidad ="
Llenado: $cantidad veces ";}else{$cantidad = "";}
- $propietario = remplacetas('usuarios','id',$row['propietario'],'email',"") ;
- $estado = remplacetas('form_id','id',$id,'publico',"") ;
- $nombre_formulario = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion_formulario = remplacetas('form_id','id',$id,'descripcion',"") ;
- $estado = "
-
- Contenido privado
-
- Público
-
- ";
- $modificable = remplacetas('form_id','id',$id,'modificable',"") ;
- $modificable = "
-
- Formulario privado
-
- Público
-
- ";
-
-
- $primer = formulario_uso("$id",'','primer') ;
- if(@$primer[0] !='') {$primer = "
Primer registro: ".date ( "Y-m-d h:i:s" , $primer[0])." ";}else{$primer='';}
- $ultimo = formulario_uso("$id",'','ultimo') ;
- @$ultimo_control = $ultimo[1];
- if(@$ultimo[0] !='') {$ultimo = "
Último registro: ".date ( "Y-m-d h:i:s" , $ultimo[0])." ";}else{$ultimo='';}
-
- $nombre = editar_campo("form_id",$row['id'],"nombre","","","","");
- $orden = editar_campo("form_id",$row['id'],"orden","","","","");
- $descripcion = editar_campo("form_id",$row['id'],"descripcion","","","","");
- $geo = buscar_campo_tipo($id,"14");
- $email_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- $mensaje_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
- if($geo[0] !='') { $mapa= "
Mapa";}else {$mapa='';}
-
- if($i % $divider==0) {
-
-//$item .= "";
- }
- $i++;
- $grupo_actual = remplacetas('form_grupo','id',$row['id'],'grupo',"") ;
- if(is_null($grupo_actual[3])) {
- $valores_grupo['id']=$row['id'];
- $valores_grupo['grupo']="";
- $grupo = "
-
- ";
- // $grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }else
- {
- $grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
- }
-
-$item .= "
-
-
-
-
-
-
-
- Creación: $row[creacion] / $propietario[0]
- $cantidad
- $ultimo
- $primer
- $mapa
-
-
-
-
-
$row[id]
-
-
-
-
-
-
-
-
-
-
-
-
Agregar o quitar campos
-
-
-
-
-
-
-
- Nombre: $nombre
- Descripción: $descripcion
- Orden: $orden Grupo: $grupo
-
-
-
Mensaje de respuesta
-
-
$mensaje_envio[0]
-
Soporta CSS3, HTML5 y Bootstrap
-
Grabar y previsualizar
-
-
-
-
-
Previsualización
-
- $mensaje_envio[0]
-
-
-
-
-
-
-
-
-
-
- $estado
-
-
- $modificable
-
-
-
-
-
- ";
-
-
- if($i%$divider==0) {
- $item .= "
";
- }
-
- }
-
-
- //$resultado .="";
- }
-
-
-else{ $resultado .= "
Aún no se han diseñado formularios ";}
-
- $resultado_formulario ="
-
- $item
-
";
- $resultado = "$resultado $resultado_formulario ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_listado");
-
-function formulario_eliminar($id,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre_form = $nombre[0];
- if($tipo =='') {
-$resultado ="
";
-}elseif($tipo=='cancelar') {
- $resultado ="
Eliminar";
-}elseif($tipo =='eliminar'){
-$consulta = "DELETE FROM form_id WHERE form_id.id = '$id' ";
-$link=Conectarse();
- $sql=mysql_query($consulta,$link);
- if($sql) {
- $respuesta->addAlert("Se eliminó el formulario \" $nombre_form \" ");
- $respuesta->addAssign("panel_$id","innerHTML","");
- return $respuesta;
-
- }
-}
-else {}
-$respuesta->addAssign("eliminar_$id","innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_eliminar");
-
-
-function campo_multiple($id_campo,$id_form,$control,$item){
-//if ( !isset ( $_SESSION['id'] ) ) { return;}
-
- if($item==''){$item=1;}
- $id= $item;
-$render = formulario_campos_render($id_campo,$id_form,$control,$item+1);
- $ingredientes = "
-
- $render
-
-
-
-
- ";
- $boton= "
".($item+1)."
- Agregar campo
-
";
-$div = "id_campo_$id_campo"."_".$id;
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$ingredientes);
-$respuesta->addAssign("boton_".$id_campo."","innerHTML","$boton ");
-return $respuesta;
-
-}
-$xajax->registerFunction("campo_multiple");
-
-
-function formulario_campos_render($id_campo,$id_form,$control,$item,$id_dato){
-$cols ="";
-$style="";
-$campo_multiple="";
-$render="";
-
-$consulta ="
- SELECT *
- FROM form_contenido_campos,form_campos, form_tipo_campo
- WHERE form_contenido_campos.id_form = '$id_form'
- AND form_contenido_campos.id_campo = '$id_campo'
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = form_campos.campo_tipo ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
- $sql=mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0'){
- if($id_dato !='') {
- $value = remplacetas('form_datos','id',$id_dato,'contenido'," control = '$control'") ;
- $multiple='0';
- $esta_editando =1;
- }
- else {
- $value = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$control'") ;
- $multiple=mysql_result($sql,0,"multiple");
- }
- if($item=='') {$item ="0";}else {$item=$item;}
-
- if($value[0] !='') {$value= "$value[0]";}ELSE{$value='';}
- $campo_nombre=mysql_result($sql,0,"campo_nombre");
- $campo_descripcion=mysql_result($sql,0,"campo_descripcion");
- $campo_tipo_accion=mysql_result($sql,0,"tipo_campo_accion");
- $campo_obligatorio=mysql_result($sql,0,"obligatorio");
- if($campo_obligatorio =='1') {$obligatorio ="danger";}else{$obligatorio ="default";}
-
- if($campo_tipo_accion == 'text'){$render = "
";}
- elseif($campo_tipo_accion == 'date'){$render = "
";}
- elseif($campo_tipo_accion == 'rango'){
- $rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = $rango;}
- elseif($campo_tipo_accion == 'mapa'){
- $lat="";
- $lon="";
- $zoom="";
- if($value !=""){
-
- $campos = explode(" ",$value);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- if($lat =="") {
- $localizacion = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- //$render= $localizacion[0];
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
-
- }
- }
- $render .= "
-
-
-
-
-
- ";
- $cols='12';
- }
-elseif($campo_tipo_accion == 'email'){$render = "
-
-
Escriba un email válido
";}
- elseif($campo_tipo_accion == 'envio'){$render = "
-
-
Se enviará un email
";}
- elseif($campo_tipo_accion == 'textarea'){
- $render = "
$value ";
- $cols='12';
- }
- //$subir_imagen = subir_imagen('');
- elseif($campo_tipo_accion == 'imagen'){
- $style ="display:hidden";
- // $gps = leer_exif($file);
- $render= "
"; //subir_imagen('',$id_campo[$item]);
- $cols='12'; }
-
- elseif($campo_tipo_accion == 'html'){
- $render = "
-
-
$value ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'limit'){
- $limite = limite("".$id_campo."[".$item."]",'','limite');
- $rows = ceil($limite / 50 )+1;
- $render = "$limite /
-
-
-
$value
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'select'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select "; $cols='12'; }
- elseif($campo_tipo_accion == 'radio'){
- $select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_campos'){
- //radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control)
- $campos_valores = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $mensaje = remplacetas('form_campos','id',$id_campo,'campo_descripcion',"") ;
- $campos = explode(":",$campos_valores[0]);
- $titulos = explode(";",$campos[0]);
- $campos_incluidos = explode(";",$campos[1]);
- for($i=0;$i
$campos_incluidos[$i] ";
- //$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "
-
-
-
- $mensaje[0]
- $listado_titulos
- $listado_campos
-
-
-
";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_linea'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = " ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'checkbox'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = checkbox_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";}
- elseif($campo_tipo_accion == 'combo'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = combo_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'relacion'){
- $select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'buscador'){
- $select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'base'){
- $select = buscador_base($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";}
- elseif($campo_tipo_accion == 'vinculado'){
- $vinculado = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $select = formulario_areas($vinculado[0],'campos');
- $render = "
- $select
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'number'){
- $render = "
-
- (solo números)
";}
-
- elseif($campo_tipo_accion == 'password'){
- if( $control != "") {
- $render="";$label=""; $campo_tipo_accion="oculto";
- }else {
- $render = "
-
- ";
- }
- //else {}
- $cols='12'; }
- elseif($campo_tipo_accion == 'unico'){
- $render ="
-
";
- }
- else{$render = " ";}
- if($multiple =='1'){
-
-
- $campo_multiple = "
-
- ";
-}
- if($item == 0) { $label = " $campo_nombre ";}
- else {$label = "$campo_nombre $campo_obligatorio ";}
- ///// CAMPOS QUE NO SE MOSTRARAN
- if($campo_tipo_accion == 'imagen'){
- $label="";
- $campo_descripcion="";
- }
- if($cols =="") {$cols = "6";}
- $input = "
-
-
-$campo_multiple
-
- ";
-
-
-if($campo_tipo_accion != "oculto") {
- $input= $input;
- }else { $input ="";}
-
- }
- return $input;
-}
-
-
-function validar_email($email) {
-
-if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
- return 1;
-}else{
- return 0;
-}
-}
-
-function formulario_valor_campo_ORIGINAL($perfil,$id_campo,$valor,$id_control){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$valor=mysql_real_escape_string($valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-$consulta = "SELECT * FROM `form_datos` WHERE `form_id` = '$perfil' AND id_campo='$id_campo' $valor AND `control` = '$id_control' ORDER BY timestamp DESC limit 1";
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysql_result($sql,0,"control");
-$timestamp=mysql_result($sql,0,"timestamp");
-mysql_data_seek($sql, 0);
-if($cant === 1) {
- $contenido=mysql_result($sql,0,"contenido");
- }else {
-while( $row = mysql_fetch_array( $sql ) ) {
- $contenido .= "$row[contenido] ";
- }
- }
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = $contenido;
-}
-return $existe;
- }
-
-
-
-function formulario_valor_campo($perfil,$id_campo,$valor,$id_control,$orden,$timestamp){
-$contenido="";
-if ($timestamp != ""){$where_timestamp = "AND form_datos.timestamp = '$timestamp' ";}ELSE { $where_timestamp = ""; }
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-$campo_multiple = remplacetas("form_contenido_campos","id_campo",$id_campo,"multiple"," id_form ='$perfil'");
-$tipo_campo = remplacetas("form_campos","id","$id_campo","campo_tipo","");
-$campo_multiple = $campo_multiple[0];
-if($tipo_campo[0] =="24") {$campo_multiple = "1";}
-/// SI EL CAMPO ES MULTIPLE O CHECK BOX MUESTRA LAS MULTIPLES ENTRADAS
-if($campo_multiple !="1" ){ $limite =" asc limit 1 ";}else {$limite =" asc ";}
-if(@$orden !=""){ $campo_orden =" AND orden ='$orden' ";}else {$campo_orden ="";}
-
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$valor=mysql_real_escape_string($valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-/*
-$consulta = "SELECT * FROM `form_datos`
-WHERE `form_id` = '$perfil'
-AND id_campo='$id_campo' $valor
-AND `control` = '$id_control' $campo_orden
-GROUP BY orden
-ORDER BY timestamp $limite ";
-*/
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$perfil'
- AND id_campo ='$id_campo' $valor
- AND control ='$id_control' $campo_orden
- $where_timestamp
- group by orden
- ORDER BY orden $limite";
-
-$sql =mysql_query($consulta,$link);
-$cant =mysql_num_rows($sql);
-
-if (mysql_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysql_result($sql,0,"control");
-$timestamp=mysql_result($sql,0,"timestamp");
-$orden=mysql_result($sql,0,"orden");
-$id_usuario=mysql_result($sql,0,"id_usuario");
-$ip=mysql_result($sql,0,"ip");
-mysql_data_seek($sql, 0);
-$md5_contenido = "";
-if($cant === 1) {
- //$contenido=mysql_result($sql,0,"contenido");
- $identificador=mysql_result($sql,0,"identificador");
- $identificador = explode(',',$identificador);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $md5_contenido = $contenido_campo[3];
- //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
- //$md5_contenido = $md5_contenido[0];
- $contenido = "$contenido_campo[0] ";
- }else {
-while( $row = mysql_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_campo[0] ";
- }
- }
-// $contenido .="$consulta";
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = "$contenido";
-$existe[] = $md5_contenido;
-$existe[] = $orden;
-$existe[] = $id_usuario;
-$existe[] = $ip;
-}
-return $existe;
- }
-
-function formulario_grabar($formulario) {
- $debug="";
- $respuesta = new xajaxResponse('utf-8');
- $datos="";
- $envio="";
- //$formulario = mysql_seguridad($formulario);
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
- $consulta_grabada ='0';
- $control = $formulario['control']; //
- $form_id = $formulario['form_id']; //
- $tipo = $formulario['tipo']; //
- if(@$formulario['imagen'] !=''){$formulario[0][0] = $formulario['imagen'];}
-
- $consulta_form = "SELECT * FROM form_contenido_campos,form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$form_id' ";
- $link=Conectarse();
- mysql_query("SET NAMES 'utf8'");
-// $sql=mysql_query($consulta_form,$link);
-
-// if (mysql_num_rows($sql)!='0'){
-// mysql_data_seek($sql, 0);
-// while( $row = mysql_fetch_array( $sql ) ) {
-
-
-//////
- if(isset ( $_SESSION['id_empresa'])){$id_empresa = $_SESSION['id_empresa']; }else{
- $id_empresa = remplacetas('form_id','id',$formulario['form_id'],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- }
-foreach($formulario as $c=>$v){
-
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if($V != '') {
-
-
-
-$datos .= "$$c = \$formulario['$c'][$C]; // $V /$campo_tipo[0]
";
- if($campo_tipo[0] =='12' OR $campo_tipo[0] =='13') {
- $validar = validar_email($V);
- if($validar == '0') {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }else {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- }
- }
- if($campo_tipo[0] =='3' ) {
- $validar = is_numeric($V);
- if(is_numeric($V) ) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
- }else{
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] solo acepta valores numéricos");
- return $respuesta;
- }
- }
-
- if($campo_tipo[0]=='17') {
- $limite = limite("$c",'','limite');
- $size= strlen($V);
- $restante = ($limite - $size);
- if( $restante < 0) {
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] no debe tener mas de $limite caractéres, sobran $restante");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
- }
-
-
-
- }
-else{ //busca campos vacios
-
-$campo_obligatorio = remplacetas("form_contenido_campos","id_campo",$c,"obligatorio","id_form = '$formulario[form_id]'");
-if($campo_obligatorio[0] =='1'){
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] es obligatorio");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
-
-}
-
-$md5 = md5($V);
-$igual = formulario_valor_campo("$form_id","$c","$md5","$formulario[control]","$C");
-$existe = formulario_valor_campo("$form_id","$c","","$formulario[control]","$C");
-//$valor_anterior .= $existe[3]."| ";
-$debug .= "$existe";
-if(!is_null($existe) AND $tipo =='edit' AND $V =='') {
- $consulta_vacio ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysql_query($consulta_vacio,$link);
- if($sql) {
- $consulta_grabada ='1';
- }
-}
-if(is_null($igual) ){$repetido = 0;}else{
-$repetido = 1;
-}
-
-
-//return $respuesta;
-//$respuesta->addAlert("$debug");
-//return $respuesta;
-$debug .= "V = $V /$c /$repetido / $igual ";
-if(($V !='' ) && (is_numeric($c)) AND $repetido !=1 ) {
-//$debug = "Hola mundo";
- $V = mysql_real_escape_string($V);
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
-
-if(@$campo_tipo[0] =="18") {
- $V = md5("$V");
-}else{$V=$V;}
-
-
- $consulta ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '".@$_SESSION[id]."', '$V', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysql_query($consulta,$link);
- $debug .= "$consulta = $sql ,";
- if($sql) {
- $consulta_grabada ='1';
- }
- }
-
- } ///fin del array
-
- }///fin del array primario
- else {
- if($v !='') { //$datos .= "$$c = \$formulario['$c']; // $v
";
- }
- }
- }
-
-
-
-
-// }
-// }
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX" )
-{
- $exito ="
-
- $formulario[mensaje]
-
- ";
- $mail = '1';
- }
- elseif($tipo == "solocampos" ){
-
-
- $exito ="
-
- $formulario[mensaje]
-
- ";
-
- $mail='0';
- }
- else{
- $campo_envio = buscar_campo_tipo($formulario['form_id'],"13");
- if($campo_envio[0] != "") {
-$envio = email_contenido("$formulario[form_id]","$formulario[control]","$campo_envio[0]",'');
- }
-
-if($tipo = "embebido") {
-$otro_formulario ="
-
- Llenar otro formulario
-
-";
-}else {
- $otro_formulario = "
-
- Llenar otro formulario
-
-
- ";
-}
-$impresion = formulario_imprimir("","$formulario[control]","preview");
-$mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
-//$impresion = mostrar_identificador($formulario['control']);
- $exito ="
-
- $mensaje_agradecimiento[0]
-
-
- $impresion
-
-
- Gracias por llenar el formulario $formulario[form_nombre]
-
-
- $otro_formulario
-
-
- $envio
-
-
-
";
-
-// $mail ='1';
- }
-
-//if($mail =='1') {
-
- //$propietario = remplacetas('form_id','id',$formulario[form_id],'propietario',"") ;
- //$propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $email_envio = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($email_envio[0] !="") {
- $impresion = formulario_imprimir("","$formulario[control]","preview");
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$formulario[form_id],"nombre","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0]" . "\r\n";
-
-$asunto= "$nombre_formulario[0]";
-$cuerpo ="
-$mensaje_agradecimiento[0]
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]i$formulario[control]
-Saludos de MILFS
-";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $exito .=""; }else {$exito .="error enviando correo";}
- //$exito .= "$email[0] $headers ";
- }
- /// }
- $respuesta->addAssign("div_$control","innerHTML","$exito ");
- return $respuesta;
- }else{
- $mensaje ="
-
-
Todo bien pero al parecer no se modicaron registros ";
- $respuesta->addAssign("div_$control","innerHTML","$mensaje");
- }
-//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
-return $respuesta;
-}
-$xajax->registerFunction("formulario_grabar");
-
-function mysql_seguridad($inp) {
- if(is_array($inp))
- return array_map(__METHOD__, $inp);
-
- if(!empty($inp) && is_string($inp)) {
- return str_replace(array('\\', "\0", "'", '"', "\x1a"), array('\\\\', '\\0', "\\*", "\\*", '\\Z'), $inp);
- }
-
- return $inp;
-}
-
-function formulario_campos_render_multiple($id_campo,$id_form,$control,$item) {
-
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$id_form'
- AND id_campo ='$id_campo'
- AND control ='$control'
- group by orden ORDER BY orden asc";
- $link=Conectarse();
- //$resultado .= "$consulta";
- mysql_query("SET NAMES 'utf8'");
- $sql =mysql_query($consulta,$link);
- if (mysql_num_rows($sql)!='0' ){
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- //$identificador = $row[identificador];
- $resultado .= $identificador;
- $resultado .= formulario_campos_render($row[id_campo],$id_form,$control,$row[orden],$identificador);
- $item = $item + 1;
- }
- }
- $resultado .= formulario_campos_render($id_campo,$id_form,'',$item,'');
-
- return $resultado;
-}
-
-
-
-function formulario_modal($id,$form_respuesta,$control,$tipo) {
-
- $respuesta = new xajaxResponse('utf-8');
- $solo_campos ="";
- $subir_imagen ="";
-
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
- $formulario_respuesta = formulario_respuesta("$id","$control");
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"",'') ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = "$formulario_respuesta";
- $pie .= empresa_datos("$id_empresa",'pie');
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $cabecera ="".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
-
- $nuevo_formulario = "Llenar otro formulario ";
-if($control !='' AND $tipo =='' ) {
- $impresion = formulario_imprimir("$id","$control","");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $muestra_form = "$impresion
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $modificable = remplacetas('form_id','id',$id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
-
-$consulta = "
- SELECT * FROM form_id, form_contenido_campos
- WHERE form_id.id = form_contenido_campos.id_form
- AND form_id.id = '$id' ORDER BY form_contenido_campos.orden ASC
- ";
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- $descripcion=mysql_result($sql,0,"descripcion");
- $nombre=mysql_result($sql,0,"nombre");
- $id_empresa=mysql_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera = "
- $salir
-
-
-
-
-
-
-
-
-
$nombre $descripcion
-
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($id,"15");
-@$campo_imagen_nombre = $campo_imagen[1];
-@$campo_imagen = $campo_imagen[0];
-
-
-if (@$campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$id","$campo_imagen"."[0]");
- }
- $muestra_form = "
-
-
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {
-
- //if(null === @$_SESSION['id'] AND $permiso_identificador != $control) {
- if($_SESSION['id_empresa'] !== $id_empresa AND $permiso_identificador != $control) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
-
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //// si no esta logueado nose puede editar ////
- $control_edit = "$control";
-
- }else {$control_edit = "";}
-
- mysql_data_seek($sql, 0);
- while( $row = mysql_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas("form_campos","id","$row[id_campo]","campo_tipo","");
- //if($tipo_campo[0] =="24") { $row[multiple] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos = formulario_campos_render_multiple($row['id_campo'],$id,$control_edit);
- }else{
- $campos = formulario_campos_render($row['id_campo'],$id,$control_edit,'','');
- }
- $muestra_form .= "$campos ";
- $solo_campos .= "$campos ";
- }
- $muestra_form .="
-
- ";
- }
-
-$muestra_form .="
-
-
-
";
- $muestra_form = "$muestra_form
";
-if($tipo=='campos') {
- return $solo_campos;
-}
-if($tipo=='embebido') {
- return $muestra_form;
-}
-
-$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
-$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
-$respuesta->addAssign("pie_modal","innerHTML","$pie");
-$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-//$respuesta->addscript("$('textarea').markdown({autofocus:false,savable:false})");
-//$respuesta->addscript("$(document).ready(function () { $(\"#24[0]\").cleditor(); })");
-//$(document).ready(function () { $("#input").cleditor(); });
-
-
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_modal");
-
-
-
-function limpia_div($capa){
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($capa,"style.padding","0px");
-$respuesta->addClear($capa,"innerHTML");
-
-return $respuesta;
-}$xajax->registerFunction("limpia_div");
-
-
-function select_key($tabla,$key,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$key;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-$resultado="
-Seleccione
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_empresa($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor,$id_empresa){
- $w ="";
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysql_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE id_empresa = '$id_empresa' $w $group ORDER BY $campo1 ";
-$sql=mysql_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysql_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado="
-Seleccione
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row['campo_valor'] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= " $row[campo_valor] ";
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-
-
-function radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-$valor = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-$nombre_linea = mysql_result($sql,0,"campo_nombre");
-$descripcion_linea = mysql_result($sql,0,"campo_descripcion");
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor[0]"){$selected="checked";}else{$selected ="";}
-$lineas .= " $row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-
-function radio_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-$nombre_linea = mysql_result($sql,0,"campo_nombre");
-$descripcion_linea = mysql_result($sql,0,"campo_descripcion");
- mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$lineas .= "$row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-function radio_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
-
-$resultado="
-
- " ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$resultado .= " $row[campo_valor]
";
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function checkbox_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysql_num_rows($sql)!='0'){
- $name = explode("[",$name);
- $name = $name[0];
- $fila="0";
-
-while( $row = mysql_fetch_array( $sql ) ) {
- $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' and contenido ='$row[campo_valor]' ");
-
- $nombre= "$name"."[".$fila."]";
-//if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-if($value[0] ==="$row[campo_valor]"){$selected="checked";}else{$selected ="";}
-$resultado .= "
-
-
- $row[campo_valor] $selected
-
-
";
- $fila++;
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function rango($tabla,$campo,$key,$valor,$selected,$nombre,$onchange){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT min($campo) as min , max($campo) as max FROM $tabla WHERE $key ='$valor' ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- $min=mysql_result($sql,0,"min");
- $max=mysql_result($sql,0,"max");
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-$resultado="
- $min
-
- $max $selected
-
" ;
-
-
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function limite($id_campo,$contenido,$tipo){
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT campo_valor FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysql_query($consulta,$link);
-
-if (mysql_num_rows($sql)!='0'){
- $limite=mysql_result($sql,0,"campo_valor");
-
- }else{}
- if($tipo =='limite') { return $limite;}
-$respuesta = new xajaxResponse('utf-8');
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("limite");
-
-function confirma_campo($valor_1,$valor_2,$campo,$campo_confirmacion){
- $respuesta = new xajaxResponse('utf-8');
- $pos = strpos($campo,"email");
-
-if($pos == "") { //// si no es un email
- }
- else {//// si es un email se revisa
- $email = validar_email("$valor_1");
- if($email === 0 ) {
- $respuesta->addAssign("$campo","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("El email no es valido ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- return $respuesta;
- }
- else{
- }
- }
-
-
-
- if($valor_1 != $valor_2){$resultado = "Los valores NO son iguales";
- $respuesta->addAlert("$resultado");
- /// $respuesta->addAssign("$campo","style.color","red");
-
-
- $respuesta->addAssign("$campo","value","$pos");
- $respuesta->addAssign("$campo_confirmacion","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- // document.getElementById('mobileno').focus();
-
-
- }else{
- //$respuesta->addAssign("$campo_confirmacion","style.color","green");
-
- $respuesta->addAssign("$campo","className"," form-control ");
- $respuesta->addAssign("$campo_confirmacion","className"," form-control ");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-success ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-success ");
- }
- return $respuesta;
-}
-$xajax->registerFunction("confirma_campo");
-
-
-function validar_campo($valor,$campo,$tabla,$div,$id){
-$valor = mysql_seguridad($valor);
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysql_query("SET NAMES 'utf8'");
-$consulta="SELECT $campo FROM $tabla WHERE $campo = '$valor' LIMIT 1";
-$sql =mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0' ){
-$verificacion = "atencion"; $existe='';
-
-$respuesta->addAssign($campo,"value","");
-///$respuesta->addAlert("El valor $valor $existe existe");
-$resultado = "Grrr $valor $existe existe ";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else {$verificacion ="check"; $existe='NO';}
-$resultado = "Ok, buen $campo ! ";
-$respuesta->addAssign("$id","style.backgroundColor","#CBE7CB");
-//$resultado .= "$valor,$campo,$tabla,$div";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-
-return $respuesta;
-}
-$xajax->registerFunction("validar_campo");
-
-
-function comprobar_email($email,$tipo,$campo){
-$email = mysql_seguridad($email);
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='tercero') {$id_campo='tercero_email';}
-
-
-else{$id_campo = 'email';}
-
-if($campo !=''){
-$id_campo="$campo";
-}
-
-
-if ($email == "" AND $tipo==''){
- $respuesta->addAlert("El campo email es obligatorio ");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- return $respuesta;
- }
-
- $mail_correcto = 0;
- //compruebo unas cosas primeras
- if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
- if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
- //miro si tiene caracter .
- if (substr_count($email,".")>= 1){
- //obtengo la terminacion del dominio
- $term_dom = substr(strrchr ($email, '.'),1);
- //compruebo que la terminación del dominio sea correcta
- if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
- //compruebo que lo de antes del dominio sea correcto
- $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
- $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
- if ($caracter_ult != "@" && $caracter_ult != "."){
- $mail_correcto = 1;
- }
- }
- }
- }
- }
- if ($mail_correcto AND $tipo=='' )
- {
-$consulta= "SELECT email FROM usuarios WHERE email = '$email' LIMIT 1 ";
- $link=Conectarse();
-$sql=mysql_query($consulta,$link);
-$revisa=mysql_result($sql,0,"email");
-if ($revisa != ''){
-
- $respuesta->addAlert("$email: ya está registrado ");
- $respuesta->addAssign("email","style.color","red");
- $respuesta->addAssign("email","value","");
- return $respuesta;
- }
- $respuesta->addAssign("email","style.color","green");}
- elseif ($mail_correcto AND $tipo==='revisar' ) {
- $revisar = remplacetas("usuarios","email",$email,"email","");
- if($revisar[0] != '') {
-
- $respuesta->addAssign("$campo","style.color","white");
- $respuesta->addAssign("$id_campo","style.backgroundColor","green");
- }else{
- $respuesta->addAlert("$email: No existe en el sistema)");
- $respuesta->addAssign("$campo","value","");
- }
- return $respuesta;
- }
-
- elseif ($mail_correcto AND $tipo==='tercero' ) {
- $documento = remplacetas("terceros","email",$email,"documento","");
- if($documento[1] =='') { /// si el tercero NO existe
-
- }else { /// si el tercero existe en el sistema
-
- $tipo_persona = remplacetas("terceros","id",$documento[1],"tipo_persona","");
-
- if($tipo_persona[0] =='1') {
- $razon_social = remplacetas("terceros","id",$documento[1],"razon_social","");
- $resultado .= " $razon_social[0]] Nit: $documento[0]";
- } else {
- $primer_nombre = remplacetas("terceros","id",$documento[1],"p_nombre","");
- $segundo_nombre = remplacetas("terceros","id",$documento[1],"s_nombre","");
- $primer_apellido = remplacetas("terceros","id",$documento[1],"p_apellido","");
- $segundo_apellido = remplacetas("terceros","id",$documento[1],"s_apellido","");
- $resultado .=" \r $primer_nombre[0] $segundo_nombre[0] $primer_apellido[0] $segundo_apellido[0] \r Documento: $documento[0]";
- }
-
- $respuesta->addAlert("$email: $resultado");
- $respuesta->addAssign("tercero_documento","value","$documento[0]");
- $respuesta->addAssign("tercero_primer_nombre","value","$primer_nombre[0]");
- $respuesta->addAssign("tercero_segundo_nombre","value","$segundo_nombre[0]");
- $respuesta->addAssign("tercero_primer_apellido","value","$primer_apellido[0]");
- $respuesta->addAssign("tercero_segundo_apellido","value","$segundo_apellido[0]");
- $respuesta->addAssign("tercero_razon_social","value","$razon_social[0]");
- $respuesta->addAssign("tercero_id","value","$documento[1]");
-
- }
-
- }
- else
- {$respuesta->addAlert("$email: no es un correo válido");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("comprobar_email");
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-
-function milfs(){
- $crear_campos = formulario_crear_campo('','','');
- $listado = formulario_listado('','');
- //$consultas = formulario_consultar('','');
- $importador = formulario_importador('');
- $limpiar_cache = borrar_tmp('');
- $configuracion= configuracion('');
-
- $login = login_boton('');
- $menu =
-"
-
-
-
- $crear_campos
-
- $listado
-
-
- $configuracion
-
-
-
-
-
";
-
- return $menu;
-}
-function url_existe($url)
-{
- $handle = @fopen($url, "r");
- if ($handle == false)
- return NULL;
- fclose($handle);
- return $url;
-}
-function es_imagen($url)
- {
- $imageSizeArray = getimagesize($url);
- $imageTypeArray = $imageSizeArray[2];
- return (bool)(in_array($imageTypeArray , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG )));
- }
-function parametrizacion($array) {
- //return $array;
- $link=Conectarse();
- mysql_real_escape_string($array);
- $accion = $array[accion];
- $tabla = $array[tabla];
- $campo = $array[campo];
- $opcion = $array[opcion];
- $descripcion= $array[descripcion];
- $visible= $array[visible];
- $id= $array[id];
-
- if($accion =='grabar'){
- $consulta= "INSERT INTO form_parametrizacion set tabla='$tabla', campo ='$campo',opcion ='$opcion' , descripcion ='$descripcion' ,visible='$visible'";
- }
- // return $consulta;
- $sql=mysql_query($consulta,$link);
- if($sql){return "Campo grabado"; }else{return "";}
-
-}
-
-?>
diff --git a/milfs/funciones/funciones_recarga.php b/milfs/funciones/funciones_recarga.php
deleted file mode 100644
index 9a41fb3..0000000
--- a/milfs/funciones/funciones_recarga.php
+++ /dev/null
@@ -1,17245 +0,0 @@
-Restaurar";
-$parametrizaciones = mostrar_parametrizaciones("array","form_id","$form",$item,"mostrar","hidden",$timestamp);
-//$parametrizaciones = print_r($parametrizaciones,true);
-//note yellow ui-draggable ui-draggable-handle
- foreach($parametrizaciones as $clave => $v){
- $contenido = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$clave' ") ;
- $parametrizaciones_listado .= " ";
-
- }
-
- if ($accion ==""){
-$boton =" Papelera
";
- return $boton;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("papelera_$form","innerHTML","$parametrizaciones_listado");
- // $respuesta->addAlert("Hola mundo!");
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("notas_papelera");
-
-
-function aplicacion_configuracion($tipo,$div,$form) {
-
-
-$parametrizaciones_listado = notas_papelera($form,$accion);
-$contenido ="
-
-
-
Configuración
-
-
-
-
-
-
$parametrizaciones_listado
-
-
-
-
-
-
-
-
-
-
-";
-
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$contenido");
- // $respuesta->addAlert("Hola mundo!");
- return $respuesta;
-}
-
-$xajax->registerFunction("aplicacion_configuracion");
-
-
-function cadena_array($text,$tipo,$cantidad) {
- $limpios="";
- $compuestos="";
- $array_compuestos =array();
- $wordCounter =array();
- $cantidades =array();
- if($cantidad =="") {$cantidad="10";}
- $extras = array(
- 'p'=>array('de','la','que','el','en','y','a','los','del','se','las','por','un','para','con','no','una','su','al','es','lo',
- 'como','más','pero','sus','le','ya','o','fue','este','ha','sí','porque','esta','son','entre','está','cuando','muy','sin','sobre',
- 'ser','tiene','también','me','hasta','hay','donde','han','quien','están','estado','desde','todo','nos','durante','estados','todos',
- 'uno','les','ni','contra','otros','fueron','ese','eso','había','ante','ellos','e','esto','mí','antes','algunos','qué','unos','yo'
- ,'otro','otras','otra','él','tanto','esa','estos','mucho','quienes','nada','muchos','cual','sea','poco','ella','estar','haber',
- 'estas','estaba','estamos','algunas','algo','nosotros','mi','mis','tú','te','ti','tu','tus','ellas','nosotras','vosotros','vosotras',
- 'os','mío','mía','míos','mías','tuyo','tuya','tuyos','tuyas','suyo','suya','suyos','suyas','nuestro','nuestra','nuestros','nuestras',
- 'vuestro','vuestra','vuestros','vuestras','esos','esas','estoy','estás','está','estamos','estáis','están','esté','estés','estemos',
- 'estéis','estén','estaré','estarás','estará','estaremos','estaréis','estarán','estaría','estarías','estaríamos','estaríais',
- 'estarían','estaba','estabas','estábamos','estabais','estaban','estuve','estuviste','estuvo','estuvimos','estuvisteis','estuvieron',
- 'estuviera','estuvieras','estuviéramos','estuvierais','estuvieran','estuviese','estuvieses','estuviésemos','estuvieseis','estuviesen',
- 'estando','estado','estada','estados','estadas','estad','he','has','ha','hemos','habéis','han','haya','hayas','hayamos','hayáis',
- 'hayan','habré','habrás','habrá','habremos','habréis','habrán','habría','habrías','habríamos','habríais','habrían','había','habías',
- 'habíamos','habíais','habían','hube','hubiste','hubo','hubimos','hubisteis','hubieron','hubiera','hubieras','hubiéramos','hubierais',
- 'hubieran','hubiese','hubieses','hubiésemos','hubieseis','hubiesen','habiendo','habido','habida','habidos','habidas','soy','eres',
- 'es','somos','sois','son','sea','seas','seamos','seáis','sean','seré','serás','será','seremos','seréis','serán','sería','serías',
- 'seríamos','seríais','serían','era','eras','éramos','erais','eran','fui','fuiste','fue','fuimos','fuisteis','fueron','fuera','fueras',
- 'fuéramos','fuerais','fueran','fuese','fueses','fuésemos','fueseis','fuesen','siendo','sido','tengo','tienes','tiene','tenemos',
- 'tenéis','tienen','tenga','tengas','tengamos','tengáis','tengan','tendré','tendrás','tendrá','tendremos','tendréis','tendrán',
- 'tendría','tendrías','tendríamos','tendríais','tendrían','tenía','tenías','teníamos','teníais','tenían','tuve','tuviste','tuvo',
- 'tuvimos','tuvisteis','tuvieron','tuviera','tuvieras','tuviéramos','tuvierais','tuvieran','tuviese','tuvieses','tuviésemos',
- 'tuvieseis','tuviesen','teniendo','tenido','tenida','tenidos','tenidas','tened',
- 'ante', 'bajo', 'con', 'contra', 'desde', 'durante', 'entre',
- 'hacia', 'hasta', 'mediante', 'para', 'por', 'pro', 'según',
- 'sin', 'sobre', 'tras', 'vía', 'también','parecen','toca','numero','número','video','vídeo','fotos','asi','así','miles'
- ,'cientos','imágenes','imagenes','años','sentido','ultimos','últimos','mano','dicen','casi','servicio','vice','pero','Pero','trata','decir'
- ),
- 'a'=>array('el','él','los', 'las', 'una', 'unos', 'unas', 'este', 'estos', 'ese',
- 'esos', 'aquel', 'aquellos', 'esta', 'estas', 'esa', 'esas',
- 'aquella', 'aquellas', 'usted', 'nosotros', 'vosotros',
- 'ustedes', 'nos', 'les', 'nuestro', 'nuestra', 'vuestro',
- 'vuestra', 'mis', 'tus', 'sus', 'nuestros', 'nuestras',
- 'vuestros', 'vuestras', 'de', 'la', 'su', 'La', 'No', 'rcn', 'RCN', 'El', 'una', 'Una'
- ),
- 'o'=>array('esto', 'que', 'del', 'es', 'en', 'ha', 'al', 'lo', 'un','si','sí','no','se','art','luego','solo','más','como','cómo','dijo',
- 'buena','buen','algunos','algunas','el','donde','fueron','más','varios','personas','uno','dos','tres','cuatro','cinco','seis','siete','ocho','nueve','diez'
- ,'causa','cien','mil','millon','millones','pesos','quien','que','fecha','tiene','vez','hay','horas','fue','com','var','uri','mas','quot','minuto','the','event',
- 'param','pero','and','split','ciento','san','son','aacute','colombia','pais','un','Un','youtube','estaba','ayer','hoy','anoche',
- 'adelante','ahora','allá','anoche','antaño','anteanoche','antenoche','antes','aquí','aún','ayer','constantemente','cuando','despacio',
- 'después','durante','enantes','encima','endenantes','enseguida','hasta','hogaño','horita','hoy','luego','mañana','mientras','mucho',
- 'nunca','primero','pronto','recientemente','recién','siempre','tarde','temprano','todavía','ya','parte','procedieron','están','Ver'),
- );
-
-$texto = $text;
-$text = html_entity_decode($text);
-
-//$text = limpiar_cadena("$text");
-
-///$text = str_replace(array('\r\n', '\n', ' ', ' '),'', $text);
-$text = str_replace(array('?','¿','¡','!',' ','"'," ",">","El"), ' ', $text);
-//$text = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', $text);//reemplazar el carácterno es válido
-//$regex_nombres_compuestos = array('(\s[A-Z][\w-áéíóú]*(\s+[A-Z][\w-áéíóú]+)+)');
-$no_validos = array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>",">");
-//$regex_nombres_compuestos = '(.[A-Z][\w-áéíóú]*(\s+[A-Z][\w-áéíóú]+)+)';
-//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(\s+[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)';
-//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(\s((de)(( la))?)?\s?[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)';
-$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ]+[\wáéíóúñ]*(\s((de)(( la ))?)?\s?[A-ZÁÉÍÓÚ]+[\wáéíóúñ]+)+)';
-//$regex_nombres_compuestos = '(.[A-ZÁÉÍÓÚ][\w-áéíóúñ]*(.((de)(( la)?))?.?[A-ZÁÉÍÓÚ][\w-áéíóúñ]+)+)';
-///$text = preg_replace($mayuscula_inicial,"$0_compuesto_$1_$2", $text);
-
-preg_match_all("$regex_nombres_compuestos", $text, $array_nombres_compuestos);
-//$array_nombres_compuestos[0] = str_replace($no_validos, '',$array_nombres_compuestos[0]);//reemplazar el carácterno es válido
-
-$array_nombres_compuestos_unicos[0]=array_unique($array_nombres_compuestos[0]);
-
- foreach($array_nombres_compuestos[0] as $clave => $v){
- $tags = str_replace(array(' '), '_', $v);
- $compuestos .="$v ";
- //$array_compuestos[] = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', strip_tags($tags));;
- $array_compuestos[] = strip_tags($tags);
- }
-$text = strip_tags($text);
-$text = str_replace(array('?','¿','¡','!',' ','\r\n', '\n','�'), ' ', $text);
-$text = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', $text);//reemplazar el carácterno es válido
-
-$text = str_replace(array(' ','.'), ',', $text);//sustituir por comas
-$array=explode(",",$text);//Crear un array con las palabras
-$array = array_merge($array_compuestos,$array);
-//// debug
-$array = array_diff($array, $extras['p'], $extras['a'], $extras['o']);
-
-
-foreach ($array as $clave => $value) {
-$title="";
-$tag_adicional="";
- $value=trim($value);//bye spaces
-if ( strlen($value)>3) {//no smaller than X and not in banned
- //$value = stemm_es::stemm($value);
- //I can count how many time we ad and update the record in an array
- if (@array_key_exists($value,$wordCounter)){//if the key exists we ad 1 more
- $wordCounter[$value]=$wordCounter[$value]+1;
-
- }
- else $wordCounter[$value]=1;//creating the key
-
- }
-
- }
-
- unset($arrText);
- //$lema=stemm_es::stemm($wordCounter);
- uasort($wordCounter,"cmp");//short from bigger to smaller
-
-
- $keywords="";
- $cantidades="";
- $count = 0;
-foreach ($wordCounter as $key => $value){
-
- if($value >1){
- if($count < $cantidad){
- //$keywords[] =$key;
- $keywords[] ="$key";
- $cantidades[$key] ="$value";
- }else{break;} $count++;
-}
- }
-
-$tags=$keywords;
- $resultado = $title;
-if($tags !=''){
-
-
-$nube ="";
-$min = min($cantidades);
-$max = max($cantidades);
- $diferencia = $max - $min;
-foreach($tags as $c=>$valor){
-//foreach($wordCounter as $c=>$valor){
- //$valor = $tags[0];
-
- //$valor ="$valor ";
- $p = stripos($resultado, $valor);
- if($p !==false ){
- $s1 = substr($resultado, 0, $p);
- $s2 = substr($resultado, $p, strlen($valor));
- $s3 = substr($resultado, ($p + strlen($valor)));
- $resultado = $s1."#$s2".$s3;
- //$r= $s1;
- }else{
- $c = str_replace(array('_'), ' ', $valor);
- $camel[] = str_replace(array(' '), '', $c);
- $palabras[]=explode(" ",$c);//Crear un array con las palabras
- foreach($palabras as $valor){
- $listado_palabras[] = $valor;
-
- }
- $ht = str_replace(array(' '), '', $c);
- $limpios[] = $c;
-
- $cant = $cantidades[$c];
- $valor_relativo = round((($cant - $min) / $diferencia) * 10);
-
- $size = ($cant/4);
- $tag_adicional .= "$c " ;
- $array_prueba = print_r($wordCounter,true);
- $nube .= "$c " ;
- }
- }
- }
- $resultado = " $compuestos $tag_adicional ";
- if($tipo=="tags") {
- return $tag_adicional;
- }elseif($tipo=="personajes") {
- //return $compuestos;
- return $array_nombres_compuestos[0];
- }elseif($tipo=="nube") {
- //return $compuestos;
- $etiquetas="
-
-
-
-
- ";
- return "$etiquetas";
- }elseif($tipo=="limpio") {
- //return $compuestos;
- return $limpios;
- }elseif($tipo=="camel") {
- //return $compuestos;
- return $listado_palabras[0];
- }else {
- return $resultado;
-}
-///return $array;
-///debug
-
-}
-
-function array_tabla($contenido,$campo){
- //return $contenido[0];
- foreach ($contenido as $id_campo => $valor) {
- $linea .= "$id_campo $valor esto
";
-
- }
-
-
-
-
-return $linea ;
-}
-
-function formulario_corpus($id_form,$id_campo,$group,$tipo){
-
-
-$consulta = "SELECT count(control) as cantidad , id_campo ,contenido , campo_nombre FROM `form_datos`, `form_campos` WHERE `form_datos`.id_campo = `form_campos`.id AND `id_campo` = '$id_campo' AND `form_id` = '$id_form' GROUP BY $group order by cantidad";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
-
- if (mysqli_num_rows($sql)!='0'){
-$array = array();
- while( $row = mysqli_fetch_array( $sql ) ) {
- $etiquetas .="".html_entity_decode($row['contenido'])." ";
- $array[] = html_entity_decode($row['contenido']);
- $colores .= "'#".substr(md5(rand()), 0, 6)."',";
- }
-
- $etiqueta = "".substr (preg_replace("[\n|\r|\n\r|\t]",'', $etiquetas), 0, -1)."";
-
- }else { $grafica= $consulta;
- }
- $etiqueta = limpiar_cadena($etiqueta);
- $etiqueta= cadena_array("$etiqueta","nube","50");
-
- ///$etiqueta = array_tabla($etiqueta,"tags");
-
- //$etiqueta = json_encode($etiqueta);
- return $etiqueta;
-
-}
-
-
-function formulario_autores($form,$id_usuario) {
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
-//$consulta ="SELECT COUNT(control) AS cantidad,id_usuario FROM `form_datos` WHERE `form_id` = '$form' GROUP BY `id_usuario` ORDER BY cantidad DESC ";
-$consulta ="SELECT *,count(distinct control) as cantidad FROM form_datos WHERE form_id = '$form' GROUP BY id_usuario order by cantidad DESC ";
-/*
- if($autor=="") {
-
- $id_autor="$row[id_usuario]";
- $autor = remplacetas("$tabla_autenticacion","id",$id_autor,"username",'') ;
- $autor= "$autor[0]";
- }else{$autor=$autor;}
-*/
- $sql=mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0'){
- include("./milfs/includes/datos.php");
- include("./milfs/includes/parametrizacion.php");
- $cantidad=mysqli_num_rows($sql);
- while($row=mysqli_fetch_assoc($sql))
- {
- $nombre_autor = remplacetas("$tabla_autenticacion","id",$row['id_usuario'],"username",'') ;
- if($nombre_autor[0] !="") { $Autor = $nombre_autor[0];}
- else {
- $Autor = remplacetas('form_datos','form_id',"$login_formulario",'contenido'," id_campo = '$login_campo_usuario' AND control = '$row[id_usuario]'") ;
- $Autor= "$Autor[0]";
-
- //$Autor ="$row[id_usuario]";
- }
- if($Autor !="") {
- $autor .= "$Autor $row[cantidad] ";
- }else { $otros .= "Otro $row[cantidad] ";}
- }
- $resultado = "$cantidad ";
-
- }else {$resultado =0;}
-return $resultado ;
-}
-
-
-
-function formulario_contar_parametrizacion($tabla,$campo,$item,$opcion,$descripcion,$id_empresa,$timestamp) {
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
- if($id_empresa ==""){$empresa="";}else{$empresa ="AND id_empresa = '".mysqli_real_escape_string($link,$id_empresa)."'";}
-// if($tabla ==""){$tabla="";}else{$tabla ="AND tabla = '".mysqli_real_escape_string($link,$tabla)."'";}
- if($campo ==""){$campo="";}else{$campo ="AND campo = '".mysqli_real_escape_string($link,$campo)."'";}
- if($item ==""){$item="";}else{$item ="AND item = '".mysqli_real_escape_string($link,$item)."'";}
- if($opcion ==""){$opcion="";}else{$opcion ="AND opcion = '".mysqli_real_escape_string($link,$opcion)."'";}
- if($descripcion ==""){$descripcion="";}else{$descripcion ="AND descripcion = '".mysqli_real_escape_string($link,$descripcion)."'";}
-
-
-$consulta ="SELECT id FROM form_parametrizacion WHERE tabla = '".mysqli_real_escape_string($link,$tabla)."' $campo $empresa $item $opcion $descripcion ";
-
- $sql=mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0'){
- $resultado=mysqli_num_rows($sql);
- }else {$resultado =0;}
-return $resultado;
-}
-
-
-
-function mostrar_parametrizaciones($tipo,$tabla,$campo,$item,$opcion,$descripcion,$timestamp){
- $resultado ="";
- if($tipo =='categorizacion') {
- $consulta = "SELECT *,count(id) as cantidad FROM `form_parametrizacion` WHERE opcion ='$opcion' and tabla='$tabla' AND campo='$campo' group by descripcion order by cantidad DESC";
- } else {
- if($opcion !=""){ $w_opcion = " AND opcion = '$opcion'";}
- if($descripcion !=""){ $w_descripcion = " AND descripcion = '$descripcion'";}
- if($id_form !=""){ $w_form = " AND id_form = '$id_form'";}
- if($tipo !=""){ $w_tipo = " AND tipo= '$tipo'";}
- if($identificador !=""){ $w_identificador = " AND identificador= '$identificador'";}
-
- $consulta = "SELECT * FROM form_parametrizacion WHERE tabla ='$tabla' AND campo='$campo' $w_opcion $w_descripcion ";
- }
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
- mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-//$resultado = mysqli_num_rows($sql);
-//$resultado = mysqli_result($sql,0,"cantidad");
-while($row=mysqli_fetch_assoc($sql))
- {
- if($tipo == "array") {
- $resultado[$row['item']] = $row['descripcion'];
- }
- elseif($tipo == "categorizacion") {
- $resultado[$row['descripcion']] = $row['cantidad'];
- }else{
- $resultado .= " $row[descripcion] $row[cantidad] ";
- }
- }
-}
-
-
-return $resultado;
-}
-
-
-function notas_estadisticas($form,$div,$tipo) {
-$cantidad_notas= formulario_contar("$form");
-$cantidad_autores= formulario_autores("$form","");
-$total_gusta= contar_interacciones("","Gusta","","$form");
-$total_compromisos= contar_interacciones("","Comprometo","","$form");
-$total_comentarios= contar_interacciones("","Comentar","","$form");
- $id_campo = remplacetas('form_parametrizacion','campo',$form,'descripcion'," tabla='form_id' and opcion = 'descripcion'") ;
- $id_campo = $id_campo[0];
- if($id_campo =="") {
- $id_campo = campo_titulo($form) ;
- }
-$corpus = formulario_corpus("$form","$id_campo","contenido","barras");
-$clasificacion = mostrar_parametrizaciones("categorizacion","form_id","$form","","clase","","");
-
-$cantidad_clasificacion = array_sum($clasificacion);
-$diferencia = ($cantidad_notas - $cantidad_clasificacion );
-$clasificacion['yellow'] = ($clasificacion['yellow']+$diferencia);
-asort($clasificacion);
-foreach($clasificacion as $clave => $v){
-
- $tabla_clasificacion .= "$v ";
- }
- $tabla_clasificacion = "";
-$contenido ="
-
-
-
- Estadísticas
- Total notas: $cantidad_notas
- Autores: $cantidad_autores
- Me gusta: $total_gusta
- Compromisos: $total_compromisos
- Comentarios: $total_comentarios
- Clasificación $tabla_clasificacion
-
-
-
-
-
-
-Palabras mas usadas
-$corpus
-
-
-
-
-";
-
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$contenido");
- // $respuesta->addAlert("Hola mundo!");
- return $respuesta;
-}
-
-$xajax->registerFunction("notas_estadisticas");
-
-
-function formulario_mini($datos,$id,$opciones,$tipo){
-
- $respuesta = new xajaxResponse('utf-8');
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- $equipo = remplacetas('form_datos','control',$opciones,'equipo',"") ;
- if($publico[0] =="0" AND $_SESSION['id'] =="") {
- $resultado = " Ingresa Para agregar datos a esta aplicación. ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- elseif($publico[0] =="2" AND ($_SESSION['id'] =="" AND !isset($_SESSION['nombre_usuario_milfs'] ))) {
- $login = milfs_session("","","","boton","",'formulario_login');
- $resultado = "
- Ingresa con tu usuario para agregar datos a esta aplicación.
- $login
";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "$permiso_identificador Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
-
-if($equipo[0] =="" OR is_null($equipo[0]) ) {}else{
-if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0] )){
- $aviso = "
-
ATENCIÓNNo está autorizado Para modificar esta información pertenece a un grupo de trabajo diferente ";
- $resultado = "
-
- $salir $aviso
-
- ";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-}
-}
- if($tipo =='edit' AND ($_SESSION['id_empresa'] !== $id_empresa[0] AND $_SESSION['id'] != $propietario[0] )AND $permiso_identificador != $opciones) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
-
- $resultado ="
-
- $salir
- $aviso
- $seguridad
-
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //$data= print_r($datos,true);
- $x = $datos[1][1];
- $y = $datos[2][1];
- $z = $datos[3][1];
- $metadatos = json_encode($datos);
- $control = md5(rand(1,99999999).microtime());
- $id_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'descripcion'") ;
- $id_campo = $id_campo[0];
- if($id_campo =="") {
- $id_campo = campo_titulo($id) ;
- }
- $boton="";
- $nota="
- "; //$respuesta->addScript("javascript:viewport.style.transform='scale(1,1)';");
- $respuesta->addAppend("main","innerHTML","$nota");
- ///$respuesta->addScript("make_draggable($('.note'));");
- $respuesta->addScript("javascript:document.getElementById('$id_campo"."[0]').focus();");
- //$respuesta->addScript("javascript:location.href='#nuevanota'");
-
-
-
- //$respuesta->addAlert("$x $y $z - $data");
-return $respuesta;
-
- if($tipo=="respuesta") { $form_respuesta = "respuesta";}else {$form_respuesta="";}
- $impresion = formulario_areas($datos,"$id","$tipo","$form_respuesta","$opciones");
- $cantidad_areas = formulario_areas('',"$id","cantidad","$form_respuesta","$opciones");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $muestra_form = "
-
-
-
- $impresion
-
-
- ";
-
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("
-$('.next').click(function(){
-
- var nextId = $(this).parents('.tab-pane').next().attr('id');
- $('[href=#'+nextId+']').tab('show');
- return false;
-
-})
-
-$('.prev').click(function(){
-
- var prevId = $(this).parents('.tab-pane').prev().attr('id');
- $('[href=#'+prevId+']').tab('show');
- return false;
-
-})
-
-$('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {
-
- //update progress
- var step = $(e.target).data('step');
- var percent = (parseInt(step) / $cantidad_areas ) * 100;
-
- $('.progress-bar').css({width: percent + '%'});
- $('.progress-bar').text('Paso ' + step + ' de $cantidad_areas' );
-
- //e.relatedTarget // previous tab
-
-})
-
-$('.first').click(function(){
-
- $('#myWizard a:first').tab('show')
-
-})
-
- ");
-
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("formulario_mini");
-
-
-
-function notas_tablero($form) {
-
- $titulo = remplacetas('form_id','id',$form,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$form,'descripcion',"") ;
- $zoom = remplacetas('form_parametrizacion','campo',"$form",'descripcion'," opcion= 'zoom' AND item = 'tablero' ") ;
- $empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $propietario = remplacetas('form_id','id',$form,'propietario',"") ;
- if ( $propietario[0] == $_SESSION['id']){
-
- $administracion = "";
- }else{
- $administracion = "";
- }
- $notes = notes("$form",'','','');
-
- $footer="
-
-
-
-
-";
-if(isset($_REQUEST['social'])) {
-
-
-}else{}
-$login = milfs_session("","","","boton","",'div_session');
-if($_SESSION['username'] !='') { $autor = $_SESSION['username'];}
-elseif($_SESSION['usuario_milfs'] !='') { $autor = $_SESSION['nombre_usuario_milfs'];}
-else {$autor='';}
-//$estadisticas = portal_listado_campos("$form");
-$tablero="
-$footer
-
-
-
-
-
-
-
-
$titulo[0] $descripcion[0]
-
$form-titulo
-
-
- $login
-
-
-
-
- $notes
-
-
-
-
-
- ";
-
-return $tablero;
-
-}
-
-
-function ultimos_registros($id,$form) {
- //$id= ($id -100000);
- //$ultimo = time();
- $registros="";
- $respuesta = new xajaxResponse('utf-8');
- $consulta ="SELECT * , md5(binary control ) as md5_control FROM form_datos WHERE form_id = '$form' AND timestamp > '$id' GROUP BY control order by timestamp DESC LIMIT 100";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0'){
- while($row=mysqli_fetch_assoc($sql))
- {
- $registros .= notes("$form",'','',"$row[control]")." ";
-
-
- }
-
- $respuesta->addAppend("prueba","innerHTML","$registros");
- $respuesta->addScript("make_draggable($('.note'));");
- }
- $ultimo = mktime();
- $respuesta->addScript("javascript: document.getElementById('ultimo_id').value='$ultimo'");
- //$notes = notes("$form",'','','');
- ///$respuesta->addAlert("$id $ultimo $consulta");
- //$respuesta->addPrepend("prueba","innerHTML","$registros");
-
-
-
- return $respuesta;
-}
-
-$xajax->registerFunction("ultimos_registros");
-
-
-
-function campo_titulo($id){
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !=""){
- return $campo_titulo[0];
- }else{
-
-
-
-$consulta ="SELECT form_contenido_campos.id_campo , orden FROM form_contenido_campos WHERE form_contenido_campos.id_form = '$id' ORDER BY form_contenido_campos.orden desc LIMIT 1";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-return mysqli_result($sql,0,'id_campo');
-}
-
-}
-
-}
-
-function nota_nueva(){
-
- }
-
-function notes($id,$accion,$datos,$registro){
-
-if($accion =="") {
- if($registro !="") {
- //$color='blue';
- $consulta = "SELECT * FROM form_datos WHERE form_id = '$id' AND control ='$registro' Limit 1";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE form_id = '$id' GROUP BY control ORDER BY id desc limit 100 ";
- }
-// return $consulta;
-$link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
-
- if (mysqli_num_rows($sql)!='0'){
-$notes = '';
-$left='';
-$top='';
-$zindex='';
-
-//$id_campo = campo_titulo($id) ;
- $id_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'descripcion'") ;
- $id_campo = $id_campo[0];
- if($id_campo =="") {
- $id_campo = campo_titulo($id) ;
- }
-$orden =1;
-$orden_left =1;
-mysqli_data_seek($sql, 0);
-while($row=mysqli_fetch_assoc($sql))
-{
-
-
-
- $titulo = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$row[control]' ") ;
- $posicion = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'posicion' ") ;
- $metadatos = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'metadatos_iniciales' ") ;
- $color = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'clase' ") ;
- $mostrar = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'mostrar' ") ;
-
- $gusta = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'voto' ") ;
- $comprometo = remplacetas('form_parametrizacion','item',"$row[control]",'descripcion'," campo= '$id' AND opcion = 'voto' ") ;
-
- $color=$color[0];
- $mostrar =$mostrar[0];
-
-list($left,$top,$zindex) = explode('-',$posicion[0]);
-list($left_inicial,$top_inicial,$zindex_inicial,$autor) = explode('-',$metadatos[0]);
- if($autor=="") {
- include("./milfs/includes/datos.php");
- $id_autor="$row[id_usuario]";
- $autor = remplacetas("$tabla_autenticacion","id",$id_autor,"username",'') ;
- $autor= "$autor[0]";
- }else{$autor=$autor;}
-
-if($left=="") {
- $top = ($orden+100);//random_int(1,5000);
- $left = ($orden_left+100);//random_int(1,5000);
- $zindex = $orden;
-}else{
-
-$left=$left;
-$top=$top;
-$zindex=$zindex;
-
-}
-
-if($_SESSION['username'] !='') { $autor_logueado = $_SESSION['username'];}
-elseif($_SESSION['usuario_milfs'] !='') { $autor_logueado = $_SESSION['nombre_usuario_milfs'];}
-else {$autor_logueado='';}
-
-if($color =="") { $color="yellow";}else { $color=$color;}
-if($mostrar =="") { $mostrar="";}else { $mostrar=$mostrar;}
-
-if($gusta[0] !="") { $gustax="text-success";}else { $gustax="";}
-if($comprometo[0] !="") { $comprometox="text-success";}else { $comprometox="";}
-
- $caracteres = strlen("$titulo[0]");
- $texto= substr($titulo[0],0, $length = 200);
- if($caracteres > 200) { $texto .= "... [+] "; }
-
- $interaccion = interaccion_identificador("$row[control]",'','simple');
- $notes.= "
-
-
-
-
-
-
-
$texto
-
-
$id-$row[control]
-
-
-
-
-
- ";
- // parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item)
-
- $orden = ($orden+2);
- $orden_left = ($orden+1);
- $ultimo = mktime();
- $ultimo_id = $ultimo;
-}
-
-return "$notes ";
-
-}else {return "";}
-}elseif($accion =='mover') {
- $id = explode("-", $datos[0][1]);
- $form=$id[0];
- $control= $id[1];
- $respuesta = new xajaxResponse('utf-8');
- /// $resultado = print_r($datos,true);
- $x= $datos[1][1];
- $y= $datos[2][1];
- $z= $datos[3][1];
-
- $resultado = parametrizacion_linea('form_id',"$form",'posicion',"$x-$y-$z",'mensaje_$control','',"$control");
- $respuesta->addAssign("mensaje_$control","innerHTML","");
-
- return $respuesta;
-}else{
-
- $respuesta = new xajaxResponse('utf-8');
-
- $resultado = print_r($accion,true);
- $resultado = $accion[3][1];
-
- $respuesta->addAlert("Hola mundo// $resultado // !");
- return $respuesta;
-
-}
-
-
-
-
-}
-
-$xajax->registerFunction("notes");
-
-
-
-function suite_listado($id_empresa,$suite){
- if($id_empresa=="") { $id_empresa="1";}
- $suite=urldecode($suite) ;
- if($suite!="") { $campo='id as campo, grupo'; $w_grupo ="AND grupo ='$suite'";}else {$w_grupo="GROUP BY grupo "; $campo ='grupo , count(grupo) as campo '; }
-$consulta= "SELECT *, $campo FROM form_grupo WHERE id_empresa= '$id_empresa' $w_grupo ";
-$miniatura ="";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- mysqli_real_escape_string($link,$consulta);
- $sql=mysqli_query($link,$consulta);
- $linea="";
- $linea_consultar="";
- $linea_editar="";
- $razon_social = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
- $slogan = remplacetas('empresa','id',"$id_empresa",'slogan','') ;
- $web = remplacetas('empresa','id',"$id_empresa",'web','');
- $logo = remplacetas('empresa','id',"$id_empresa",'imagen','') ;
-
-if (mysqli_num_rows($sql)!='0'){
-
- $fila = 1;
- //include("includes/datos.php");
- $error_token = "";
- $contenido = "";
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- //$link = " Consultar ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- $mostrar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='mostrar_portal'") ;
- $llenar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='llenar_portal'") ;
- $ver_data = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='ver_data_portal'") ;
- $vista_favorita = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='vista_favorita'") ;
- $vista=$vista_favorita[0];
- if($vista=='libro') { $favorita="b$row[id]?registros=10";}
- elseif($vista=='aplicacion') { $favorita="a$row[id]";}
- elseif($vista=='set') { $favorita="s$row[id]";}
- elseif($vista=='mapa') { $favorita="mapero.php?id=$row[id]";}
- elseif($vista=='presentacion') { $favorita="c$row[id]";}
- elseif($vista=='timeline') { $favorita="timeline.php?id=$row[id]";}
- elseif($vista=='formulario') { $favorita="f$row[id]";}
- elseif($vista=='informe') { $favorita="l$row[id]";}
- elseif($vista=='planilla') { $favorita="p$row[id]";}
- elseif($vista=='agenda') { $favorita="?eventos=$row[id]";}
- else{ $favorita="b$row[id]?registros=10";}
-
-;
-
- $titulo = remplacetas('form_id','id',$row['id'],'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$row['id'],'descripcion',"") ;
-
- if($geo[0] !='') { $mapa= " Mapa ";}else {$mapa='';}
- $descripcion_limpia = strip_tags($row['descripcion']);
- if($imagen !="") {
- $imagen ="
-
-
-
-
-
-
-
- ";
- }
- $contenido ="
- $row[grupo] $row[cantidad]
-
-
- $descripcion_limpia
";
-
-// if ( $fila%2==0){
-
-
-
-if($llenar[0] !="0") {$boton_agregar =" Agregar
";}
- else{$boton_agregar = "";}
-if($ver_data[0] !="0") {$boton_ver_data =" OpenData ";}
- else{$boton_ver_data = "";}
-
- if($mostrar[0] !="0") {
- //// PRIVACIDAD
- $publico = remplacetas('form_id','id',"$row[id]",'publico',"") ;
-
-/// PRIVACIDAD
-if($publico[0] =='1') {
- $linea .= "$row[grupo] ";
- $linea_consulta .= "$titulo[0] ";
- $lista .= "$titulo[0] $descripcion[0] ";
- $linea_editar .= "$titulo[0] ";
-
- }else{
- if($llenar[0] !="0"){
- /// $linea .="$row[grupo] // $row[campo] ";
- }
-
- }
- }else {
-
- }
-
- $fila++;
- }
-
- if($suite!="") {
-
-
-
-$footer="
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
-$resultado ="
-
-
-
-
-
-
-
-
-
- $descripcion[0]
-
- $razon_social[0]
- $slogan[0]
-
-
-
- Tupale.co
-
-
-
-
-
-
-
-
-
-
-
-
- $footer
-
- ";
-
- }else {
- $titulo = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
-
-
-$resultado ="
-
-
-
-
-
-
-
-
- $descripcion[0]
-
- $razon_social[0]
- $slogan[0]
-
-
-
- Tupale.co
-
-
-
-
-
- ";
- }
- }else{
-$resultado ="
-
-
-
-
-
-
-
-
- $descripcion[0]
-
- $razon_social[0]
- $slogan[0]
-
- Sigue intentando :(
-
- Tupale.co
-
-
-
-
-
- ";
-
- }
-
-return $resultado;
-}
-
-
-
-
-function planilla($id,$registros){
- if($registros =="") { $registros = '15';}
- $publico = remplacetas('form_id','id',"$id",'publico',"") ;
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $empresa = remplacetas("form_id","id","$id","id_empresa","");
-
- if($publico[0] == 0 AND ( $_SESSION['id_empresa'] != $empresa[0])) {
-
- $advertencia ="
No tiene autorización para revisar este contenido ";
- return $advertencia;
- }
-
-/// PRIVACIDAD
-if($publico[0] =='1') {}
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id' GROUP BY form_datos.control ";
-
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-mysqli_real_escape_string($link,$consulta_principal);
-$sql_total=mysqli_query($link,$consulta_principal);
- $sql=mysqli_query($link,$consulta_principal);
-mysqli_data_seek($sql_total, 0);
- $titulo = formulario_imprimir_linea("$id",$row['control'],'titulos');
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
- $descripcion_formulario = remplacetas("form_id","id",$id,"descripcion","");
-
- $id_empresa= $empresa[0];
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera="
-
-
-
-
-
-
$razon_social[0] $slogan[0]
- $nombre_formulario[0] $descripcion_formulario[0]
-
-
";
-
-$fila=1;
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($fila % $registros == 0) {$separador="$pie
$cabecera $titulo";}else {$separador="";}
-$linea = formulario_imprimir_linea("$id","$row[control]","linea_planilla");
- $despliegue .= "$fila $linea $separador";
- //formulario_imprimir_linea("$row[form_id]","$row[control]")
- $fila++;
-
-
-}
-
-$tabla= "$cabecera$pie";
-return "$tabla
";
-}
-
-
-
-function equipos($clave,$proyecto,$name,$div)
-{
-$resultado="";
-
-$respuesta = new xajaxResponse('utf-8');
-if($div !="") {
- if($clave=="") {
- $respuesta->addAssign("$div","innerHTML","");
- return $respuesta;
- }
- require("includes/datos.php");
-// require ("includes/parametrizacion.php");
-$consulta = "SELECT * FROM `$tabla_autenticacion` WHERE `id_empresa` = '$proyecto' AND equipo REGEXP '^$clave' GROUP BY equipo ORDER BY equipo ";
-$resultado ="";
- $link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .="$row[equipo] ";
-}}
-$resultado .=" ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
-}
-else{
-
-$resultado ="
- ";
- return $resultado;
-}
-
-
- return $respuesta;
-
-
-
-}
-$xajax->registerFunction("equipos");
-
-
-
-function cambiar_propiedades($div,$clave,$valor)
-{
-$respuesta = new xajaxResponse('utf-8');
-if($clave !="") {
-
-$respuesta->addAssign("$div","$clave"," $valor");}
-
-
-else{$respuesta->addAssign($div,"style.top","0px");
- $respuesta->addAssign($div,"style.height","100%");}
-
-
- //$respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("cambiar_propiedades");
-
-
-function galleria($id){
- $contenido ="";
- $link=Conectarse();
- $campo_nombre ="1665";
- $campo_coleccion ="1666";
- $campo_autor ="1667";
- $campo_licencia ="175";
- $campo_imagen = buscar_campo_tipo("$id","15");
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id' GROUP BY form_datos.control limit 200";
-
-
-mysqli_set_charset($link, "utf8");
-mysqli_real_escape_string($link,$consulta_principal);
-$sql_total=mysqli_query($link,$consulta_principal);
- $sql=mysqli_query($link,$consulta_principal);
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
- ;
-$imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[control]' ") ;
-$titulo = remplacetas('form_datos','id_campo',$campo_nombre,'contenido'," control = '$row[control]' ") ;
-$proyecto = remplacetas('form_datos','id_campo',$campo_proyecto,'contenido'," control = '$row[control]' ") ;
-$autor = remplacetas('form_datos','id_campo',$campo_autor,'contenido'," control = '$row[control]' ") ;
-$licencia = remplacetas('form_datos','id_campo',$campo_licencia,'contenido'," control = '$row[control]' ") ;
- $imagen = "../milfs/images/secure/?file=150/$imagen[0]";
- $url ="$_SESSION[site]milfs/images/secure/?file=150/$imagen[0]";
- //$respuesta->addAssign("$div","$className"," input-group has-error ");}
-$contenido .= "
-
-
-
-
";
-
-}
-$resultado="
-$contenido
";
-return $resultado;
-}
-
-
-
-function json_tabla($contenido,$campo,$control){
-
-
-$datos = json_decode($contenido, true);
-
- foreach ($datos as $id_campo => $valor) {
- $campo_tipo = remplacetas('form_campos','id',"$campo",'campo_tipo',"") ;
- if($campo_tipo[0] =="31") {
- $link_url = "$_SESSION[site]milfs/archivos/?archivo=".$valor;
- $ext = explode(".", $valor);
$ext = strtolower($ext[count($ext) - 1]);
- if($ext=='jpg' or $ext=='png' or $ext=='gif') {
- $valor=" ";
-
- }else{$valor="$valor "; }
- }
- $linea .= "$valor
";
- if(is_array($valor)) {
- foreach ($valor as $c => $v) {
- $linea .= "$v
";
-}
-
-
-
-
- }
- }
-
-$resultado="
-$linea $campo_tipo[0]
-
-";
-
-
-
-return $resultado;
-}
-
-function json_render($contenido,$tipo,$control){
-
-$campos = "$tipo,$contenido";
-$datos = json_decode($contenido, true);
-if ($tipo == "html"){
- foreach ($datos as $id_campo => $valor) {
- // $linea .= "$id_campo $valor ";
- $campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
- $campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
- foreach ($valor as $c => $v) {
- // $linea .= "$c $v ";
- foreach ($v as $c1 => $v1) {
- $linea .= "$v1 ";
- }
- }
- }
-
-$resultado="
-
-$campo_nombre[0]
-$linea
-
-
-";
-}
-elseif($tipo == "csv") {
- foreach ($datos as $id_campo => $valor) {
- $campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
- $campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
- foreach ($valor as $c => $v) {
- foreach ($v as $c1 => $v1) {
- $linea .= " $v1,";
- }
-
- }
- }
-$resultado = trim($linea,",");
-}
-elseif($tipo == "array") {
- $array= array();
- foreach ($datos as $id_campo => $valor) {
- foreach ($valor as $c => $v) {
- foreach ($v as $c1 => $v1) {
- $array[]= "$v1";
- }
-
- }
- }
-$resultado = $array;
-}
-else{
-
-}
-
-return $resultado;
-}
-
-function exportar_svg($formulario) {
- $linea="";
-if($formulario !=""){
- $estructura = "$_SESSION[path]/tmp/$formulario/svg/";
- if (!file_exists($estructura)) {
-
- if(!mkdir($estructura, 0775, true)) {
-
- die("Fallo al crear las carpetas... $estructura");
-}
-//$archivo = "milfs/tmp/$nombre";
-
-
-$impresion ="Esto es";
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$formulario' GROUP BY form_datos.control ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-mysqli_real_escape_string($link,$consulta_principal);
-$sql_total=mysqli_query($link,$consulta_principal);
- $sql=mysqli_query($link,$consulta_principal);
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- $titulo = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
-
-// if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$formulario","svg",'paginado');
-$impresion = landingpage_contenido_identificador("$row[control]","$formulario","svg",'paginado');
-$impresion = str_replace("'", '"', $impresion);
-$impresion = str_replace('@"', "'", $impresion);
-$encabezado = '
-
-
-
-
-
-
-
-
-
- image/svg+xml
-
-
-
-
-
-
-';
-$pie=" ";
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= " $row[control]";
-$archivo = $estructura."$titulo[0]"."_$row[control]".".svg";
-$file=fopen($archivo,"w") or die("Problemas en la creacion $archivo");
-$impresion = $encabezado.$impresion.$pie;
-fputs($file,$impresion);
-fclose($file);
- }
-
-
-
-}
-
- echo $linea;
-
- //$file = fopen($filePath, 'w');
-}
-
-}
-
-function filtro_opciones_campo($id_campo,$formulario){
-$opciones = "";
-$consulta = "SELECT * FROM `form_campos_valores` WHERE `id_form_campo` = '$id_campo'";
-
- $link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $opciones .="
- $row[campo_valor]
- ";
-
-}
-$opciones ="
- Limpiar
- $opciones
-";
-
-}
-
-return $opciones;
-}
-
-function filtro_generico_buscar($formulario,$id){
-$div ="mostrar_resultado";
-$resultado .="";
-foreach ($formulario as $clave => $valor) {
- if($valor !=""){
- $campo = str_replace("filtro_", "", "$clave");
- $resultado = " id_campo = $campo AND contenido = '$valor' ";
- $campos[] = $resultado;
- }
-
-}
-$campos = implode(" AND ",$campos);
-
-$consulta ="SELECT * FROM form_datos WHERE form_id ='$id' AND $campos GROUP BY control";
-$resultado = "$consulta";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-
-}
-$xajax->registerFunction("filtro_generico_buscar");
-
-
-function filtro_generico($formulario,$tipo){
-
-$filtro="";
-$consulta= "
- SELECT campo_nombre,tipo_campo_nombre ,campo_tipo ,id_campo
- FROM `form_contenido_campos` , form_campos , form_tipo_campo
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo= form_campos.campo_tipo
- AND `id_form` = '$formulario'
- AND (`campo_tipo` = 8 OR `campo_tipo` = 16 OR `campo_tipo` = 24 OR `campo_tipo` = 25 OR `campo_tipo` = 10)
- group by form_contenido_campos.id
- ORDER BY form_contenido_campos.orden ";
-
- $link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado = filtro_opciones_campo($row[id_campo],$formulario);
- $filtro .="
-
-
-
- $row[campo_nombre]
-
-
-
-
-
- ";
-
-}
-$filtro = "
-
-
- $filtro
-
-
- ";
-
-}
-return $filtro;
-}
-
-
-function formulario_tabla_temporal($id){
-
-$lineas="";
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-/// LISTADO DE CAMPOS PARAMETRIZADO POR ID ///
- $consulta_campos = "SELECT id_campo FROM `form_datos` , form_campos , form_tipo_campo WHERE form_datos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo= form_campos.campo_tipo AND `form_id` = '$id' AND (`campo_tipo` = 8 OR `campo_tipo` = 16 OR `campo_tipo` = 24 OR `campo_tipo` = 25 OR `campo_tipo` = 10)
- GROUP BY id_campo ORDER BY id_campo";
- $sql=mysqli_query($link,$consulta_campos);
- ;
- if (mysqli_num_rows($sql)!='0'){
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- $campos[] = " campo_$row[id_campo] longtext ";
- $id_campos[] = "$row[id_campo]";
-
- }
- $campos[] = "control longtext";
- }
-/// ENTRADAS QUE TIENEN VALORES EN ESOS CAMPOS
-
- $consulta_contenido = "SELECT id_campo ,contenido,control FROM `form_datos` , form_campos , form_tipo_campo WHERE form_datos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo= form_campos.campo_tipo AND `form_id` = '$id' AND (`campo_tipo` = 8 OR `campo_tipo` = 16 OR `campo_tipo` = 24 OR `campo_tipo` = 25 OR `campo_tipo` = 10) GROUP BY control ";
-
- $sql_contenido=mysqli_query($link,$consulta_contenido);
- if (mysqli_num_rows($sql_contenido)!='0'){
-
- while( $row_contenido = mysqli_fetch_array( $sql_contenido ) ) {
- $los_campos="";
- $campos_insertar="";
- foreach($id_campos as $campo_nombre){
- $contenido = remplacetas('form_datos','form_id',"$id",'contenido'," id_campo ='$campo_nombre' and control ='$row_contenido[control]' ") ;
- $los_campos .= "$campo_nombre $contenido[0] ";
- $campos_insertar[] ="campo_$campo_nombre ='$contenido[0]'";
-
- }
- $campos_insertar[] ="control ='$row_contenido[control]'";
- $lineas .= "$row_contenido[control] $los_campos // ";
- $insertar_campos= implode(",",$campos_insertar);
- $insert[] = "INSERT INTO temporal_6 SET $insertar_campos ";
-
- }
- }
-$campos= implode(",",$campos);
-$insert= implode(";",$insert);
-
-
-$crear = "CREATE TABLE IF NOT EXISTS temporal_$id ($campos)";
-$consultar= "SELECT * FROM temporal_$id";
-$query = "$crear ; $insert";
-//$tabla_temporal=mysqli_query($link," $crear ; $insertar");
-$tabla_temporal=mysqli_multi_query($link, $query);
-
-//$insert_temporal=mysqli_query($link,"$insertar");
-return ;//" // $tabla_temporal ** $crear ; $insert ; $consultar ; * // ";
-}
-
-function formulario_estadistica_ocultar($id_form,$id_campo,$accion,$tipo) {
- $etiqueta_limpia = str_replace(array(' '), '', $etiqueta);
-$div="div_manejo_$etiqueta";if($accion=='') {
-
- if($_SESSION['id'] == 1){
- $resultado="
-
- ";
-}else {$resultado="";}
- return $resultado;
-}elseif($accion =="eliminar") {
-
-$borrar= parametrizacion_linea("$tipo","$id_form",'ocultar',"$id_campo",'','',"$id_campo");
-//$resultado="$id_campo $borrar ";
-$div="contenedor_grafica_$tipo_$id_campo";
-}else{}
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-
-}
-$xajax->registerFunction("formulario_estadistica_ocultar");
-
-
-
-function formulario_estadistica($id_form,$id_campo,$group,$tipo){
-$mostrar = remplacetas("form_parametrizacion",'item',"$id_campo",'descripcion',"opcion = 'ocultar' AND tabla = '$tipo'") ;
-if($mostrar[0] !="") {
-
- $contenido ="";
- return $contenido;
-}
-
-$consulta = "SELECT count(control) as cantidad , id_campo ,contenido , campo_nombre FROM `form_datos`, `form_campos` WHERE `form_datos`.id_campo = `form_campos`.id AND `id_campo` = '$id_campo' AND `form_id` = '$id_form' GROUP BY $group order by cantidad";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
-
- if (mysqli_num_rows($sql)!='0'){
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- $dato[] =$row;
- $lineas .="$row[cantidad] $row[contenido] ";
-
- $datas .="'$row[cantidad]',";
- $etiquetas .="'".html_entity_decode($row['contenido'])." $row[campo_nombre] ($row[cantidad]) ',";
- $colores .= "'#".substr(md5(rand()), 0, 6)."',";
- }
- $datos= json_encode($dato);
- $data = "[".substr ($datas, 0, -1)."]";
- $etiqueta = "[".substr (preg_replace("[\n|\r|\n\r|\t]",'', $etiquetas), 0, -1)."]";
- $color = "[".substr ($colores, 0, -1)."]";
-
-$data_grafica= "
-datasets: [{
- data: $data ,
- backgroundColor: $color,
- label: ''
- }],
- labels: $etiqueta
-
-";
- $resultado ="
-
- $row[cantidad] $row[contenido]
- $lineas
-
-
- ";
- $manejo_grafica = formulario_estadistica_ocultar("$id_form","$id_campo","","$tipo");
-$grafica ="
-
-
-
-";
-
- }else {// $grafica= $consulta;
- }
- return $grafica;
-
-}
-
-function formulario_acciones($id,$tipo) {
- // $areas = resumen_identificador("$row[control]",'','','boton');
- $geo = buscar_campo_tipo("$id","14");
-// $buscador = buscar_datos("*formato*","$id","grid","mostrar_contenido_buscador");
- if($geo[0] !='') {
- $mapa_aplicacion= " ";
- $mapa= "Mapa
- {GEOJson}
- ";}else {$mapa='';}
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- $propietario = remplacetas('form_id','id',$id,'id_empresa',"") ;
- // $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- if($publico[0] !="0" OR $_SESSION["id_empresa"] =="$propietario[0]") {
-
- $agregar = " ";
- $camara = "
-
-
-
- ";
-
- }else{
-$camara= "
-
-
-
-
- ";
- }
- $campo_imagen = buscar_campo_tipo($id,"15");
- $id_campo = $campo_imagen[0];
- if($id_campo[0] =="") {
- $galeria_aplicacion="";
-
- }else{
- $galeria_aplicacion= "
-
-
-$camara
-
- ";
- }
-
- if($tipo=="") {
-$acciones="";
-
-}
-
-elseif($tipo=="aplicacion"){
-$acciones="
-
-
-
- $mapa_aplicacion
- $galeria_aplicacion
-
-
- $agregar
-
-
-
-
- ";
-}
-
-else{
-
-}
-return $acciones;
-
-}
-
-function compartir($id,$control) {
-$respuesta = new xajaxResponse('utf-8');
-
-$titulo = remplacetas('form_id','id',$id,'nombre',"") ;
-$descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-if($control=="") {
-$url ="$_SESSION[site]a$id";
- $empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa=$empresa[0];
-
- $impresion = strip_tags($descripcion[0]);
- //$impresion= str_replace('\t', '', $impresion);
- $impresion = preg_replace("[\n|\r|\n\r|\t]",'', $impresion);
- $twitter = substr($impresion,0, $length = 110);
- $caracteres = strlen("$impresion");
- if($caracteres > 110) { $twitter .= "..."; }
-
- $razon_social = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
- $slogan = remplacetas('empresa','id',"$id_empresa",'slogan','') ;
- $web = remplacetas('empresa','id',"$id_empresa",'web','');
- $logo = remplacetas('empresa','id',"$id_empresa",'imagen','') ;
- $size="50px";
-$resultado="
-
-
-
Compartir:
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
-}
-
-$encabezado ="$titulo[0]$descripcion[0] ";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$encabezado");
- //$respuesta->addAssign("titulo_modal","innerHTML","$datos_usuario");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-
-}
-$xajax->registerFunction("compartir");
-
-
-function portal_filtro_campos_drop($formulario,$id_campo,$div,$plantilla){
-$listado="";
-$tabla="";
-if($id_campo =="") {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- if($id_campo =="") { $resultado = ""; return $resultado;}
- }
- $tipo_campo = remplacetas('form_campos','id',"$id_campo",'campo_tipo',"") ;
- if($tipo_campo[0] =="10" ) {$tipo ="relacion";}
- elseif($tipo_campo[0] =="6" ) {$tipo ="buscador";}
- else{$tipo ="";}
- /// $valor_actual = relacion_render("$id","$row[id_campo]",$contenido,'5');
-
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT *
- FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario'
- AND form_campos.id = form_datos.id_campo
- AND form_datos.id_campo = '$id_campo'
- GROUP BY contenido
- ORDER BY contenido";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($tipo =='relacion') {
- ///($form_id,$id_campo,$valor,$cantidad)
- $valor_actual = relacion_render("$formulario","$id_campo","$row[contenido]",'0','relacion_drop');
- }
- elseif($tipo =='buscador') {
- ///($form_id,$id_campo,$valor,$cantidad)
- $valor_actual = imprimir_buscador_campo("$id_campo","$row[contenido]",'buscador_drop');
- //imprimir_buscador_campo($id_campo,$valor,$plantilla)
- }
- else {
- $valor_actual="$row[contenido]";
- }
-
-$listado .= " $valor_actual ";
-}
-
-}
-/*$resultado ="
-
- Filtro
- $resultado
-
";
- */
- $resultado="
-
-
- Filtro $campo_nombre[0]
-
-
-
-
- ";
-
-return $resultado;
-}
-
-function drop($tabla,$value,$descripcion,$onchange,$where,$nombre){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$lis="";
- mysqli_set_charset($link, "utf8");
- $consulta = "SELECT *,$value, $descripcion FROM $tabla WHERE 1 $group ORDER BY $campo1 ";
- $sql=mysqli_query($link,$consulta);
-
- if (mysqli_num_rows($sql)!='0'){
- while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[$value]=="") {$resultado.="";}else{
- $mostrar_id = "[$row[$value]]";
- $lis.= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
- $resultado="
-
-
- $nombre
-
-
-
-
- ";
- }
- else{
- $resultado = " No hay resultados 0019
";
- }
-return $resultado;
-}
-
-
-
-function contenido_presentacion($id){
- $imagen ="";
- $acciones ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $campo_filtro ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $href_4="";
- $href_5="";
- $listado_nombres ="";
- if(isset($_REQUEST['orden'])) { $orden= "$_REQUEST[orden]";}
- if(isset($_REQUEST['registros'])) { $registros= "$_REQUEST[registros]";}
- if(isset($_REQUEST['pagina'])) { $pagina= "$_REQUEST[pagina]";}
- if(isset($_REQUEST['v'])) { $origen= "$_REQUEST[v]";}
- //$campo_orden = remplacetas('form_parametrizacion','campo',"$form",'descripcion'," tabla='form_id' and opcion = 'orden'") ;
- //$campo_orden = $campo_orden[0];
-
-
-
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-
- $campo_orden = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = 'orden'") ;
- $campo_orden = $campo_orden[0];
-
-
-
-if($orden == "" ) { $ordenar= "ORDER BY form_datos.id DESC ";}
-elseif($orden == "ASC" ) { $ordenar= "ORDER BY form_datos.id ASC "; }
-else{}
-
-
- if($campo_orden !="") {
- $consulta = "
- SELECT control,id,form_id,contenido FROM form_datos
- WHERE form_id = '$id' AND id_campo ='$campo_orden'
- GROUP BY form_datos.control
- ORDER BY CAST(contenido AS SIGNED ) $orden ";
- }else {
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control $ordenar";
- }
-
-
-//$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control $ordenar";
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- //$contenido = "/* HOJA DE ESTILOS CSS ACTUAL */
- $css_adicional[0]
-
-
-";
-}
-return $resultado;
-
-}
-
-function mas_visto($tipo,$limite,$divider) {
-$resultado= "";
-$contenido= "";
-
-if($divider =="" ) { $divider =6;}
-$cols = (12/$divider);
-$titulo[]="";
- if($tipo =="ultimos") {
- $titulo="LO ÚLTIMO";
- $consulta ="SELECT * FROM `form_datos`, form_id WHERE `form_datos`.form_id = form_id.id AND form_id.publico = '1' GROUP BY form_datos.control ORDER BY form_datos.timestamp DESC LIMIT $limite";
- }
- elseif($tipo =="aleatorios" ){
- $tipo = "ultimos";
- $titulo="TE INTERESA";
- $consulta ="SELECT * FROM `form_datos`, form_id WHERE `form_datos`.form_id = form_id.id AND form_id.publico = '1' GROUP BY form_datos.control ORDER BY RAND() LIMIT $limite";
- }
- else{
- $consulta ="SELECT * FROM `form_parametrizacion` WHERE `opcion` LIKE '$tipo' ORDER BY CAST(descripcion AS SIGNED ) DESC LIMIT $limite";
- }
-$link=Conectarse();
- //mysqli_set_charset($link, "utf8");
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
- if($sql){
- // if (mysqli_num_rows($sql)!='0'){
- if (mysqli_num_rows($sql)!='0'){
- if($tipo =='identificador') {
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- $formulario = remplacetas('form_datos','control',"$row[campo]",'form_id',"") ;
- $formulario_titulo = remplacetas('form_id','id',"$formulario[0]",'nombre',"") ;
- $campo_imagen = buscar_campo_tipo("$formulario[0]","15");
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario[0],'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[campo]' ") ;
- $titulo = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[campo]' ") ;
- if($titulo[0] =="") {
- $titulo = remplacetas('form_datos','control',$row['campo'],'contenido'," id_campo != '$campo_imagen[0]' ") ;
- }
- //$impresion = mostrar_identificador("$row[campo]","","landingpage","","");
- $contenido .= "
-
-
-
-
-
-
- $formulario_titulo[0]
- $row[descripcion]
-
- $titulo[0]
-
-
- ";
- }
- $resultado = "
- LO MAS VISTO
- $contenido
- ";
- }
- elseif($tipo =='formulario') {
- while( $row = mysqli_fetch_array( $sql ) ) {
- $formulario_titulo = remplacetas('form_id','id',"$row[campo]",'nombre',"") ;
- $formulario_empresa = remplacetas('form_id','id',"$row[campo]",'id_empresa',"") ;
- $empresa_logo = remplacetas('empresa','id',"$formulario_empresa[0]",'imagen',"") ;
-
- $contenido .= "
-
-
-
-
-
-
- $formulario_titulo[0]
- $row[descripcion]
-
- $titulo[0]
-
-
- ";
-
- }
- $resultado = "
- PROYECTOS MAS ACTIVOS
- $contenido
- ";
-
- }
- elseif($tipo =='ultimos') {
- //while( $row = mysqli_fetch_array( $sql ) ) {
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- //$formulario = remplacetas('form_datos','control',"$row[control]",'form_id',"") ;
- //$formulario_titulo = remplacetas('form_id','id',"$formulario[0]",'nombre',"") ;
- $campo_imagen = buscar_campo_tipo("$row[form_id]","15");
- $campo_titulo = remplacetas('form_parametrizacion','campo',$row['form_id'],'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo_post = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
- if($campo_imagen[0] =="") {
- $imagen = remplacetas('empresa','id',"$row[id_empresa]",'imagen',"") ;
- }else{
- $imagen = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$row[control]' ") ;
- if($imagen[0]=="") {
- $imagen = remplacetas('empresa','id',"$row[id_empresa]",'imagen',"") ;
- }
- //$impresion = mostrar_identificador("$row[campo]","","landingpage","","");
- }
- $contenido_campo =strip_tags($row['contenido']);
- $maximo ="50";
- $size= strlen($contenido_campo);
- if($size > $maximo) {
- $contenido_campo =substr($contenido_campo,0,$maximo)."... ";
- }
- $contenido .= "
-
-
-
-
-
-
- $titulo_post[0]
- $row[nombre]
-
- ";
- }
- $resultado = "
- $titulo
- $contenido";
- }
- else{}
-
- }
- }
-
-
-return $resultado;
-}
-
-function social_login($accion,$servicio,$uid) {
- $resultado="";
- require ("./milfs/includes/parametrizacion.php");
- $control_uid = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$uid' AND id_campo = '$social_login_uid'") ;
- $control_servicio = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$servicio' AND control = '$control_uid[0]'") ;
- $usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_usuario'") ;
- $nombre_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido"," id_campo = '$login_campo_nombres'") ;
- $avatar_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_avatar'") ;
-
- if($accion == "consultar") {
-
- if($control_servicio[0] != "") {
- $resultado ="Existe $control_servicio[0] ";
- }
- else {
- $resultado ="";
- }
- }
- elseif($accion =="login") {
- if($control_servicio[0] != "") {
- $_SESSION['usuario_milfs'] = "$usuario[0]";
-
- $_SESSION['nombre_usuario_milfs'] = "$nombre_usuario[0]";
- $_SESSION['control_usuario_milfs'] = "$control_servicio[0]";
- $_SESSION['avatar_usuario_milfs'] = "$avatar_usuario[0]";
-
- header("Location: ./");
- die();
- }
- else{
- session_destroy();
- header("Location: ./");
- die();
- }
-
-
-
- }
- else{$resultado ="";}
-
-return $resultado;
-
-}
-
-
-function campo_privacidad($opcion,$id_campo,$form,$accion) {
- //return $array;
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-$respuesta = new xajaxResponse('utf-8');
- if($accion =='grabar'){
- $limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$form' AND descripcion='$id_campo' AND opcion like 'privacidad:%' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1 ";
- $sql=mysqli_query($link,$limpiar);
-
- $consulta= "INSERT INTO form_parametrizacion set tabla='form_id', campo = '$form', opcion ='privacidad:$opcion' , descripcion ='$id_campo' ,visible='0', id_empresa = '$_SESSION[id_empresa]'";
- }
- // return $consulta;
- $sql=mysqli_query($link,$consulta);
- if($sql){
- if($opcion == '1') { $mensaje = "El campo ahora es privado y NO se mostrará su contenido";}
- else { $mensaje = "El campo ahora ES PÚBLICO y SE MOSTRARÁ su contenido";}
- //$respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- $respuesta->addAlert("ATENCION: $mensaje");
- return $respuesta;
- }else {
- //$respuesta->addAlert("$consulta");
- //$respuesta->addAssign("debug","innerHTML","$consulta");
- //return $respuesta;
- }
-
-}
-$xajax->registerFunction("campo_privacidad");
-
-
-
-function respuestas_formulario($id,$identificador,$plantilla) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $formulario_respuesta = formulario_respuesta("$id","$identificador");
- $consulta = "SELECT form_id , timestamp FROM form_datos
- WHERE control = '$identificador' AND form_id != '$id' GROUP BY form_id , timestamp
- ";
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-
- $resultado ="";
- while( $row = mysqli_fetch_array( $sql ) ) {
- $respuesta = mostrar_identificador("$identificador","$row[form_id]","respuesta","simple","$row[timestamp]");
- $fecha = date($format, $row['timestamp']);
- $resultado .= " $respuesta ";
-
-}
- $resultado .="";
-}else{$resultado ="";}
-$resultado = "$resultado $formulario_respuesta";
-return $resultado;
-}
-
-
-function formulario_respuesta($id,$identificador) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $consulta = "SELECT * FROM form_id
- WHERE formulario_respuesta = '$id'
- ";
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado ="
- ";
-}else{$resultado ="";}
-return $resultado;
-}
-
-
-function consultar_contenido_formulario($form,$registros,$pagina,$tipo,$orden,$plantilla){
- if($plantilla=="") { $plantilla="landingpage";}
- if(isset($_SESSION['proceso'])) {
- $filtro_proceso ="AND proceso='$_SESSION[proceso]' ";
- }else{ $filtro_proceso =" ";}
- $usuario_datos ="";
- $imagen ="";
- $acciones ="";
- $filtro ="";
- $filtro_generico ="";
- $origen ="";
- $busca ="";
- $agregar ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $campo_filtro ="";
- $lineas ="";
- $linea ="";
- $linea_listado ="";
- $formato ="";
- $href_4="";
- $href_5="";
- $listado_nombres ="";
- if(isset($_REQUEST['orden'])) { $orden= "$_REQUEST[orden]";}
- if(isset($_REQUEST['registros'])) { $registros= "$_REQUEST[registros]";}
- if(isset($_REQUEST['pagina'])) { $pagina= "$_REQUEST[pagina]";}
- if(isset($_REQUEST['v'])) { $origen= "$_REQUEST[v]";}
- $campo_orden = remplacetas('form_parametrizacion','campo',"$form",'descripcion'," tabla='form_id' and opcion = 'orden'") ;
- $campo_orden = $campo_orden[0];
-
-
-
-if($orden == "" ) { $ordenar= "ORDER BY form_datos.id DESC ";}
-elseif($orden == "ASC" ) { $ordenar= "ORDER BY form_datos.id ASC "; }
-else{}
-
-$respuesta = new xajaxResponse('utf-8');
-
-$id_form = $form;
- if($campo_orden !="") {
- $consulta_principal = "
- SELECT control,id,form_id,contenido FROM form_datos
- WHERE form_id = '$form' AND id_campo ='$campo_orden'
- $filtro_proceso
- GROUP BY form_datos.control
- ORDER BY CAST(contenido AS SIGNED ) $orden ";
- }else {
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' $filtro_proceso GROUP BY form_datos.control $ordenar";
- }
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-mysqli_real_escape_string($link,$consulta_principal);
-$sql_total=mysqli_query($link,$consulta_principal);
-$total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
-if($registros=="") { $registros="$total_registros"; $origen="url";}
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta_principal.$limite;
- mysqli_real_escape_string($link,$consulta_limite);
- $sql=mysqli_query($link,$consulta_limite);
-@mysqli_data_seek($sql_total, 0);
-//$sql=mysqli_query($link,$consulta_principal);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-//$fecha = time ();
-// $ahora = date ( "Y-m-d" , $fecha );
-// $campos = listar_campos_formulario($id_form,"select");
-
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
-
- if(isset($_REQUEST[registros])) {
- $href_1 = "$origen®istros=$registros&pagina=1&orden=$orden";
- $href_2 = "$origen®istros=$registros&pagina=".($pagina-1)."&orden=$orden";
- }
- else {
- $href_1= "#cabecera#";
- $href_2= "#cabecera#";
- }
-
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
-
- if(isset($_REQUEST['registros'])) {
- $href_3 = "$origen®istros=$registros&pagina=$x&orden=$orden";
- }
- else {
- $href_3= "#cabecera#";
- }
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- {
- if(isset($_REQUEST['registros'])) {
- $href_4 = "$origen®istros=$registros&pagina=".($pagina+1)."&orden=$orden";
- $href_5 = "$origen®istros=$registros&pagina=$pages&orden=$orden";
- }
- else {
- $href_4= "$href_4";
- $href_5= "$href_5";
- }
- $link .= "
- "; }
- }
- $paginacion = "";
- $encabezado = "
- ";
-
-// $total_registros = mysqli_num_rows($sql);
-/* $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- */
-// $listado_nombres = "Identificador $listado_nombres ";
-///$listado_campos = listar_campos_formulario("$id_form",'');
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion','') ;
- //$descripcion_limpia = strip_tags($descripcion[0]);
- $nombre = remplacetas('form_id','id',$id_form,'nombre','') ;
- $cabecera=" $nombre[0] $descripcion[0]";
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-// if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","$plantilla",'paginado');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= " $row[control]";
-$linea_listado .= landingpage_contenido_identificador("$row[control]","$id_form","$plantilla",'listado');
-$linea_planilla .= landingpage_contenido_identificador("$row[control]","$id_form","$plantilla",'planilla');
-$linea_li .= landingpage_contenido_identificador("$row[control]","$id_form","$plantilla",'li');
- }
-$buscador = buscar_datos("*formato*","$form","grid","mostrar_resultado");
-//$filtro = portal_filtro_campos_select($form,"$campo_filtro","mostrar_resultado","landingpage");
-$filtro_drop = portal_filtro_campos_drop($form,"$campo_filtro","mostrar_resultado","landingpage");
-////////$filtro_generico = filtro_generico($form,$tipo);
-$formulario_tabla_temporal = formulario_tabla_temporal($form);
-
-if( $tipo !== "" AND $tipo !=="embebido" ) {
- $publico = remplacetas('form_id','id',"$form",'modificable',"") ;
- $propietario = remplacetas('form_id','id',$form,'id_empresa',"") ;
- // $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- if($publico[0] !="0" OR $_SESSION["id_empresa"] =="$propietario[0]") {
-
- $agregar = " Agregar
";
- }
-$acciones="
-
-
-
-
-
-
- $agregar
-
-
- $filtro
- $filtro_drop
-
-
-
- $buscador
-
-
-
-
- $filtro_generico
- $formulario_tabla_temporal
-
-
-
-
-
-
";
-}
-
-$resultado = "
-
-
$nombre[0]
-
$descripcion[0]
-$acciones
-
-
- $linea
-
-$encabezado
-
-
-";
- }
-else {
-$resultado ="
No hay resultados 0021 ";
- if($tipo =="contenido" OR $tipo =="embebido" OR $tipo =="li" ) {
- if($tipo=="li") {$resultado="";}
- return $resultado;
- }
-$respuesta->addAlert("No hay resultados 0022");
-return $respuesta;
-}
-
- /*$datos = $resultado;
- $div ="contenido_de_modal";
- $resultado = "
$datos
";
- $div_contenido = "
$div
";
- */
- if($tipo =="") {
- // $respuesta->addAssign("contenido_interior","innerHTML","$div_contenido");
- $respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- return $respuesta;
- }
- elseif($tipo =="contenido" OR $tipo =="embebido" ) {
- return $resultado;
- }
- elseif($tipo =="simple") {
- return $linea;
- }
- elseif($tipo =="listado") {
-// unset($_SESSION['proceso']);
- return "$linea_listado";
- }
- elseif($tipo =="planilla") {
-// unset($_SESSION['proceso']);
- return "$linea_planilla";
- }
- elseif($tipo =="li") {
-// unset($_SESSION['proceso']);
- return "$linea_li";
- }
- else {}
-}
-$xajax->registerFunction("consultar_contenido_formulario");
-
-
-function multiempresa_listado($tabla,$div){
-
-
-$resultado = "";
-$encontrados = "";
-$link=Conectarse();
-
-mysqli_set_charset($link, "utf8");
-$consulta = "SELECT * ,empresa.id as id_empresa FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC ";
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
-
-
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=3;
-$cols = (12/$divider);
-$sm = 4;
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
- $encontrados .= "
";
- }
- $i++;
- if($row['imagen'] !="") {
- $logo="
";
- }
- else {
- $logo_empresa = remplacetas('empresa','id',"1",'imagen','');
- $logo="
";
- }
- // $slogan= substr($row[slogan],0, $length = 100)."";
- $slogan = $row['slogan'];
- $dominio = remplacetas('empresa','id',"$row[id_empresa]",'web','') ;
- $contenido ="
-
-
- ";
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- $resultado ="
-
-
-
-
Proyectos
-
Conoce los proyectos que usan Tupale.co para la implementación de sus herramientas, selecciona para conocer más
-
-
-
-
-
- ";
- }else{
- $resultado = "
No hay resultados 0023
";
- }
-if($div =="") { return $resultado; }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa_listado");
-
-
-
-function decodifica_parametro ($string)
-{
- $inicial = substr($string,0,1);
- $string = mb_substr($string,1);
- $cadena = $string;
- //$length = strlen($base);
-
- $size = strlen($string) - 1;
- $string = str_split($string);
-
- //$out = strpos($base, array_pop($string));
-//return $out;
- /*foreach($string as $i => $char)
- {
-
- $out += (strpos($base, $char)* pow($length, $size - $i));
-//$out .= "$i => $char";
- }*/
-$resultado[0]=$inicial;
-//$resultado[1]=$out;
-$resultado[1]=$cadena;
-
- return $resultado;
-}
-
-function grabar_imagen($imagen,$control) {
-
- $imgData = str_replace(' ','+',$imagen);
- $imgData = substr($imgData,strpos($imgData,",")+1);
- $imgData = base64_decode($imgData);
-
- $nombre= $control.".png";
- $filePath = "$_SESSION[path]/tmp/".$nombre;
-
- $file = fopen($filePath, 'w');
- fwrite($file, $imgData);
- fclose($file);
- $full= "$_SESSION[path_images_secure]/full/".$nombre;
- if (!rename($filePath,$full)){}
- else {
- echo generar_miniatura($nombre,"150");
- echo generar_miniatura($nombre,"300");
- echo generar_miniatura($nombre,"600");
- }
-
- //return "$nombre";
- return "$nombre";
-}
-
-
-function generar_miniatura($file,$width) {
//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[0] / $file_info[1];
// Calculamos las nuevas dimensiones
$newwidth = $width;
$newheight = round($newwidth / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 80);
-imagepng($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 9);
-imagegif($thumb,"$_SESSION[path_images_secure]/".$width."/$file");
-//imagejpeg($thumb,null, 80);
-}
-
-function generar_vcard($identificador){
-$impresion = mostrar_identificador("$identificador","","vcard",'simple');
-$impresion = formulario_imprimir("$id_form","$identificador","$plantilla");
-$nombre ="vcard_".$identificador.".vcf";
-$vcard ="BEGIN:VCARD
-VERSION:3.0
-N:Gump;Forrest
-FN:Forrest Gump
-ORG:Bubba Gump Shrimp Co.
-TITLE:Shrimp Man
-PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif
-TEL;TYPE=WORK,VOICE:(111) 555-1212
-TEL;TYPE=HOME,VOICE:(404) 555-1212
-ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
-LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America
-ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
-LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America
-EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com
-REV:20080424T195243Z
-END:VCARD";
-$archivo = "milfs/tmp/$nombre";
-$file=fopen($archivo,"w") or die("Problemas en la creacion");//En esta linea lo que hace PHP es crear el archivo, si ya existe lo sobreescribe
-fputs($file,$impresion);//En esta linea abre el archivo creado anteriormente e ingresa el resultado de tu script PHP
-fclose($file);//Finalmente lo cierra
-/*
-$ruta="/tmp/vcard_".$identificador.".vcf";
-header ("Content-Disposition: attachment; filename=".$ruta);
-header ("Content-Type: application/octet-stream");
-header ("Content-Length: ".filesize($ruta));
-readfile($ruta);
-*/
-return $archivo;
-
-
-}
-
-function autoriza_formulario_mostrar($password,$form,$control) {
- $respuesta = new xajaxResponse('utf-8');
- if($password =="") { unset($_SESSION['permiso_identificador']); $respuesta->addScript("javascript:location.reload(true);"); return $respuesta;}
- $campo = buscar_campo_tipo($form,"18");
- $campo_password = $campo[0];
- $comprobar_clave = remplacetas('form_datos','form_id',"$form",'contenido'," BINARY contenido = MD5('$password') AND id_campo = '$campo_password'") ;
- $password = md5($password);
- $aviso = "";
-
-if($comprobar_clave[0] !== $password ) {
- unset($_SESSION['permiso_identificador']);
- $respuesta->addAlert("La clave no es válida ");
- $aviso = "$comprobar_clave[2] !== $control";
- $respuesta->addAssign("pie_modal","innerHTML",$aviso);
- return $respuesta;
- }
- else{
- $_SESSION['permiso_identificador']="$control";
- //$respuesta->addAssign("pie_modal","innerHTML",$aviso);
- $respuesta->addScript("javascript:location.reload(true);");
- }
- return $respuesta;
-}
-$xajax->registerFunction("autoriza_formulario_mostrar");
-
-
-//($control,$form,$plantilla,$tipo)
-function landingpage_contenido_identificador($identificador,$form,$plantilla,$tipo){
- if(strlen($identificador) > 32) {
- $identificador_original= $identificador;
- $key = substr($identificador, 32, $length = 40);
- $identificador = substr($identificador, 0, $length = 31);
- }else {$identificador_original = $identificador;}
-
-
- $linea="";
- $id_empresa = remplacetas('form_datos','control',$identificador,'id_empresa',"") ;
- $datos = remplacetas('form_datos','control',$identificador,'contenido',"") ;
- $formulario_identificador = remplacetas('form_datos','control',$identificador,'form_id',"") ;
-
- $campo_orden = remplacetas('form_parametrizacion','campo',$datos[5],'descripcion'," tabla='form_id' and opcion = 'orden'") ;
-
- if($campo_orden[0] =="" ) {
- $siguiente = remplacetas_orden('form_datos','form_id',$datos[5],'control'," id > '$datos[1]' AND control !='$identificador'"," ORDER BY id ASC") ;
- $anterior = remplacetas('form_datos','form_id',$datos[5],'control'," id < '$datos[1]' AND control !='$identificador' ") ;
- }
- else{
- $siguiente = remplacetas_orden('form_datos','form_id',$datos[5],'control'," id_campo = '$campo_orden[0]' AND contenido > '$datos[0]' AND control !='$identificador'"," ORDER BY id ASC") ;
- $anterior = remplacetas('form_datos','form_id',$datos[5],'control'," id_campo = '$campo_orden[0]' AND contenido < '$datos[0]' AND control !='$identificador' ") ;
- }
- $campo_titulo = remplacetas('form_parametrizacion','campo',$datos[5],'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo_siguiente = remplacetas('form_datos','form_id',$datos[5],'contenido'," id_campo = '$campo_titulo[0]' AND control = '$siguiente[0]' ") ;
- $titulo_anterior = remplacetas('form_datos','form_id',$datos[5],'contenido'," id_campo = '$campo_titulo[0]' AND control = '$anterior[0]' ") ;
-
- if($anterior[0] !='') {
- $post_anterior ="
$campo_orden[0] Anterior
- ";
- }
- if($siguiente[0] !='') {
- $post_siguiente ="
Siguiente
- ";
- }
- if($tipo =="simple") { $manejadores="$post_anterior $post_siguiente";}else { $manejadores="";}
- $respuestas = respuestas_formulario($form,$identificador,$plantilla);
- $imagen = buscar_imagen($form[0],$identificador,"","$id_empresa[0]");
- $plantilla_original = $plantilla;
- $plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$plantilla",'id',"campo = '$formulario_identificador[0]'") ;
-
- $uri = "$_SESSION[site]I$identificador";
- $qr = "https://qwerty.co/qr/?d=$uri";
- if($imagen !="") {
-
- $mostrar_imagen ="
";
- $miniatura = "
-
-
-
-
- $uri";
-
- }else {
- $miniatura ="
-
- I$identificador
-
- ";
- $mostrar_imagen = "
-
-
- ";
-
-
-
- }
-
- //
- //$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- if($plantilla[0] !="" ) {
- $impresion = mostrar_identificador($identificador_original,"","$plantilla_original","","");
- } else{
- $contenido = @mostrar_areas("$identificador_original","","");
- //$contenido = mostrar_identificador($identificador_original,"","","","");
- $impresion = "
-
-
-
-
-
-
- ";
-
- }
- if($tipo=="head") {
- $edicion="";
- $documento=""; $respuestas="";}else{
- if(!isset($_SESSION['id_empresa'])){
- $edicion ="
Editar";
-// $edicion ="
Editar";
- }else {$edicion="";}
- $documento="
";
- }
-
-if($plantilla_original=="svg") { return $impresion;}else{
- if($tipo=="listado") {
- $documento= "";
- $edicion="";
- $manejadores="";
- if(isset($_SESSION['proceso'])) {
- $usuario = remplacetas_turno('turnos',"id_turno","$_SESSION[proceso]",'id_usuario',"") ;
- $usuario_datos = paciente_datos($usuario[0],"impresion",'');
- }else{ $usuario_datos="";}
-$pie = empresa_datos("$id_empresa[0]",'pie');
-$pie = "$pie
https://tupale.co ";
-$salto = "
";
-$encabezado_empresa = empresa_datos("$id_empresa[0]",'encabezado');
- $formulario_descripcion = remplacetas('form_id','id',$formulario_identificador[0],'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$formulario_identificador[0],'nombre','') ;
- $cabecera ="
".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
- $cabecera="
-
-
- $encabezado_empresa
- $cabecera
-
-
-
-
-
-
-
-
-
-
-
-
- $usuario_datos
-
-
-
";}
-
-
- else{
-
-$cabecera="";
-$pie="";
-$salto="";
- }
- if($tipo =="li") {
- $linea ="
- $impresion
- ";
- }
- else{
- $linea = "
-
-
-
-
- $cabecera $manejadores
- $documento
- $impresion
- $edicion
-
-
$respuestas
-
-
- $pie
-
- $salto
- ";
- }
- return $linea;
- }
- }
-
-
-function landingpage_contenido_formulario($form,$registros,$pagina,$div_original){
- $cantidad = formulario_contar($form);
- $div="contenido_interior";
- //if($registros =="") {$registros ="10";}
- $consulta= "SELECT control FROM form_datos WHERE form_id = '$form' GROUP BY control ORDER BY id DESC ";
- $id_empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- //$sql=mysqli_query($link,$consulta);
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($link,$consulta_limite);
-
- $paginacion ="";
- $paginacion .= $indice;
-/*
- /// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($link,$consulta_limite);
- $page= $pagina;
- @$pages= ceil($cantidad / $registros); //13; // Hardcoded for testing purpose
- $limit= 20 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
-
";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "
$x ";
- }else{
- $link .= "
$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
-
"; }
- }
-
- $paginacion = "";
-
- */
-
- //// PAGINACION
-if (mysqli_num_rows($sql)!='0'){
- $linea=" ( $cantidad ) $paginacion";
- $fila = 1;
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $impresion = mostrar_identificador($row['control'],"","landingpage","","");
- $imagen = buscar_imagen($form,$row['control'],"","$id_empresa[0]");
- if($imagen !="") { $clase = "col-lg-5 col-sm-6";}else {$clase = "col-lg-12 col-sm-12";}
- $uri = "
Ver mas ... ";
- $linea .= landingpage_contenido_identificador($row['control']);
- }
- $resultado_linea="
$linea
";
- }
- if($div_original=="") {
-
- return $resultado_linea;
- }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$linea");
-
- return $respuesta;
-
- }
- }
-$xajax->registerFunction("landingpage_contenido_formulario");
-/*
-$respuesta = new xajaxResponse('utf-8');
-$resultado ="
$mensaje Procesando ...";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-
-*/
-function landingpage_contenido($id_empresa){
-$consulta= "SELECT * FROM form_id WHERE id_empresa= '$id_empresa' ORDER BY orden ASC";
-$miniatura ="";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
- $linea="";
-if (mysqli_num_rows($sql)!='0'){
-
- $fila = 1;
- //include("includes/datos.php");
- $error_token = "";
- $contenido = "";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; } else {$error_token = "";}}
- while( $row = mysqli_fetch_array( $sql ) ) {
- //$link = "
Consultar ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- $mostrar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='mostrar_portal'") ;
- $llenar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='llenar_portal'") ;
- $ver_data = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='ver_data_portal'") ;
- $vista_favorita = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='vista_favorita'") ;
- $vista=$vista_favorita[0];
- if($vista=='libro') { $favorita="b$row[id]?registros=10";}
- elseif($vista=='aplicacion') { $favorita="a$row[id]";}
- elseif($vista=='set') { $favorita="s$row[id]";}
- elseif($vista=='mapa') { $favorita="mapero.php?id=$row[id]";}
- elseif($vista=='presentacion') { $favorita="c$row[id]";}
- elseif($vista=='timeline') { $favorita="timeline.php?id=$row[id]";}
- elseif($vista=='formulario') { $favorita="f$row[id]";}
- elseif($vista=='informe') { $favorita="l$row[id]";}
- elseif($vista=='planilla') { $favorita="p$row[id]";}
- elseif($vista=='agenda') { $favorita="?eventos=$row[id]";}
- else{ $favorita="b$row[id]?registros=10";}
- if($ultimo_mapa[0] !="") {
- $campos = explode(" ",$ultimo_mapa[0]);
- $lat = $campos['0'];
- @$lon = $campos['1'];
- @$zoom = $campos['2'];
-
- if($error_token != 1) {
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/pin.png");
- $miniatura = "
-
-
-
";
- /* $miniatura = "
-
-
- ";*/
-
- }else{ $miniatura ="
No se ha definido un token de mapbox
";}
- }
- //if($geo[0] !='') { $mapa= "
$miniatura Ver mapa ";}else {$mapa='';}
- if($geo[0] !='') { $mapa= "
Mapa";}else {$mapa='';}
- $descripcion_limpia = strip_tags($row['descripcion']);
- if($imagen !="") {
- $imagen ="
-
-
-
-
-
-
-
- ";
-}
- $contenido ="
-
$row[nombre]
- $imagen
-
-
$descripcion_limpia
";
-
-// if ( $fila%2==0){
-
-
-
-if($llenar[0] !="0") {$boton_agregar ="
Agregar
";}
- else{$boton_agregar = "";}
-if($ver_data[0] !="0") {$boton_ver_data ="
OpenData ";}
- else{$boton_ver_data = "";}
-
- if($mostrar[0] !="0") {
- //// PRIVACIDAD
- $publico = remplacetas('form_id','id',"$row[id]",'publico',"") ;
-
-/// PRIVACIDAD
-if($publico[0] =='1') {
- $linea .= "
-
-
-
- ";
- }else{
- if($llenar[0] !="0"){
- $linea .="
-
- ";}
-
- }
- }else {
-
- $linea .=" ";}
-
- $fila++;
- }
- }
- $linea ="
-
-
- $linea
-
- ";
-return $linea;
-}
-
-function buscar_imagen($form,$control,$tipo,$empresa) {
- $imagen="";
- if($control !="") { $w_control = "AND form_datos.control ='$control'";}else{$w_control ="";}
- if ($form ==""){
- $consulta = "SELECT form_datos.id_empresa, contenido , campo_nombre , id_campo FROM form_id, form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_id.id = form_datos.form_id
- AND form_datos.id_empresa = '$empresa'
- AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 ";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- $imagen = mysqli_result($sql,0,"contenido");
- }
-if($tipo == "consulta") { return $consulta; }
- return $imagen;
-
- }
-$publico = remplacetas('form_id','id',"$form",'publico',"") ;
-if($publico[0] !="0" ){
-$campo_imagen = buscar_campo_tipo("$form","15");
-$imagen = remplacetas('form_datos','form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ;
-//$imagen = "$imagen[0]";
-return $imagen[0];
-}
-return;
-}
-
-function wait($div,$mensaje){
-$respuesta = new xajaxResponse('utf-8');
-$resultado ="
$mensaje Procesando ...";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-function campos_buscador($nombre,$tipo) {
-if($nombre=="") {
- $filtros = "
-
-
-
- Seleccione
- Todos
- Mis campos
- Mi empresa
- No usados
- Llenos
-
-
-
- ";
-$resultado ="
-
";
-
-}
-return $resultado;
-
-
-}
-
-
-function campos_tabla($filtro,$div,$limite,$inicio,$valor) {
- if($limite =="") {$limite= 100;}
- if($inicio =="") {$inicio= 0;}
-if($valor !="") { $w= "AND campo_nombre LIKE '%$valor%'";}
- $fin=($inicio+$limite);
- $anterior=($inicio-$limite);
- $w_limite=" LIMIT $inicio ,$limite";
-
-$mio ="";
-$lineas ="";
-$w_empresa ="";
-$w_especialista ="";
-if($filtro == 'id_empresa') { $w_empresa = " AND id_empresa = '$_SESSION[id_empresa]' ";}
-if($filtro == 'id_especialista') { $w_especialista = " AND id_especialista = '$_SESSION[id]' ";}
-if($filtro == 'llenos') {
-$consulta= " SELECT * , form_campos.id as id FROM form_campos, form_datos WHERE form_campos.id = form_datos.id_campo $w_empresa $w_especialista $w GROUP BY id_campo ORDER BY campo_nombre ";
-}elseif($filtro == 'vacios') {
-//$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_datos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_contenido_campos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-}else{
-$consulta= " SELECT * FROM form_campos WHERE id = id $w_empresa $w_especialista $w ORDER BY campo_nombre ";
-}
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta.$w_limite);
- $sql_total=mysqli_query($link,$consulta);
- //$div = "div_tabla_campos";
-
- $cantidad_mostrada =mysqli_num_rows($sql);
- $cantidad_total =mysqli_num_rows($sql_total);
- if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- mysqli_data_seek($sql_total, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"",'') ;
- $campo_tipo ="
$tipo_nombre[0] ";
- if($_SESSION['id_empresa'] == $row['id_empresa']) {
- $row['campo_nombre']= editar_campo("form_campos","$row[id]","campo_nombre","","","","");
- $row['campo_descripcion']= editar_campo("form_campos","$row[id]","campo_descripcion","","","","");
- $row['campo_area']= editar_campo("form_campos","$row[id]","campo_area","","","","");
- $row['activo']= editar_campo("form_campos","$row[id]","activo","","","","","");
- $accion = "
";
- $class='success';
- }else {
- $class='';
- $accion ="";
- }
- if($_SESSION['id'] == $row['id_especialista']) {
- $row['id_especialista'] = "
$row[id_especialista]";
- }
- if($_SESSION['id'] == 1){
- $metacampo_titulo="
MC ";
- if($row['tipo_contenido'] ==1) {
- $metacampo="
";
- }
- else {
- $metacampo="
";
- }
- }
- $lineas .= "$row[id] $row[campo_nombre] $row[campo_descripcion] $campo_tipo $metacampo$row[campo_area] $row[activo] $row[id_empresa] $row[id_especialista] $mio $accion ";
- }
-
- $tabla = "
-
-
-
- <<< ANTERIORES
- Mostrando $cantidad_mostrada de $cantidad_total
- SIGUIENTES >>>
-
-
-
-
- id Nombre Descripcion Tipo $metacampo_titulo
- $lineas
-
-
- ";
- }
- if($div !=""){
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$tabla");
- return $respuesta;
- }
- else{
- $resultado = "$filtros $tabla";
- return $resultado;
-}
-}
-$xajax->registerFunction("campos_tabla");
-
-function remplacetas_noid($tabla,$campo,$valor,$por,$and,$limit){
-if($limit =="") { $limite="LIMIT 1";}else{$limite= "LIMIT $limit";}
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC $limite";
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($link,$consulta);
-
-if (@mysqli_num_rows($sql)!=0){
- if($limit =="") {
-$resultado[0] = mysqli_result($sql,0,$por);
-$resultado[1] = mysqli_result($sql,0,"$campo");
-$resultado[2] = $consulta;
-$resultado[3] = mysqli_result($sql,0,"md5_$por");}
-else {
- $row = mysqli_fetch_array( $sql );
- $resultado[0]=$row;
- $resultado[1] = mysqli_result($sql,0,"$campo");
- $resultado[2] = $consulta;
- $resultado[3] = mysqli_result($sql,0,"md5_$por");
-}
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-
-return $resultado;
-}
-
-
-
-function contar_visitas($id,$tipo) {
-$id_visitas = remplacetas('form_parametrizacion','campo',$id,'id'," tabla='form_id' AND opcion='$tipo'") ;
-$visitas = remplacetas('form_parametrizacion','id',$id_visitas[0],'descripcion',"") ;
-$cantidad = $visitas[0]+1;
-if($visitas[0] =="") {
- $consulta = "INSERT INTO form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'";
- }
-else {
- $consulta = "UPDATE form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'
- WHERE id ='$id_visitas[0]' LIMIT 1";
-}
-$link=Conectarse();
- mysqli_set_charset($link, "utf8");
- mysqli_real_escape_string($link,$consulta);
- $sql=mysqli_query($link,$consulta);
-$cantidad = "$cantidad $_SESSION[analizador]";
-return $cantidad;
-}
-
-
-function geocoder($valor,$campo){
-$respuesta = new xajaxResponse('utf-8');
-if(strlen($valor) > 3) {
-$valor = urlencode($valor);
-$json = "https://nominatim.openstreetmap.org/search.php?format=json&limit=5&addressdetails=1&q=$valor&email=info@tupale.co";
-$data = file_get_contents("$json");
-if ($data=='429 Too Many Requests'){
-return $data;
-}
-$geocoder = json_decode($data, true);
-if($data ==="[]") {$vacio="
-
-
No se encontraron resultados
-";}
-
-foreach ($geocoder as $clave => $valor) {
- $ciudad = $valor['address']['city'];
- $municipio = $valor['address']['town'];
- $pais = $valor['address']['country'];
- $departamento = $valor['address']['state'];
- $licencia= $valor['licence'];
- $link = "./milfs/mapa.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo&exif";
- ///$link = "$_SESSION[site]milfs/mapa.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo&exif";
- $linea .= "
-
-
- $valor[display_name]
-
- $ciudad $municipio $pais $departamento
-
-
-
- ";
-//foreach ($valor as $clave => $valor) { $linea .= "CLAVE : $clave > VALOR: $valor"; }
-}
-$resultado = "
-
- $vacio $licencia
-
";
-}
- //$div_contenido = "
$div
";
- //$respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("muestra_geocoder","innerHTML","$resultado");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("geocoder");
-
-
-function mostrar_psi(){
-$respuesta = new xajaxResponse('utf-8');
-include("psi.php");
- //$div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_psi");
-
-function multiempresa_crear($tabla,$formulario,$div) {
-$formulario = limpiar_caracteres($formulario);
-$link=Conectarse();
- mysqli_set_charset($link, "utf8");
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '".mysqli_real_escape_string($link,$v)."',";
- }
- $valores = "$valores id_responsable = '$_SESSION[id]'";
-
-$respuesta = new xajaxResponse('utf-8');
-
- $insertar = "INSERT INTO $tabla set $valores";
- $sql=mysqli_query($link,$insertar);
- if(mysqli_affected_rows($link) != 0){
-
- }
-if($div !='') {
-
-
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("multiempresa_crear");
-
-function nombre_dominio($url){
- $protocolos = array('http://', 'https://', 'ftp://', 'www.');
- $nombre = explode('/', str_replace($protocolos, '', $url));
- // $nombre = substr($url[0],0,-strlen(strstr($url[0],"." )));
- return $nombre[0];
-}
-
-function configurar_dominio ($id,$tipo) {
-$directorio = "/opt/tupalescripts/";
-$dominio = remplacetas('empresa','id',"$id",'web','') ;
-$nombre = nombre_dominio($dominio[0]);
-$nombre = str_replace(".", "_", $nombre);
-if($tipo =="crear" ) {
- $ar=fopen("$directorio".$id."","w"); //or die("Problemas en la creacion");
- $variables=fopen("$directorio"."variables","w"); //or die("Problemas en la creacion");
- $contenido = "dominio=$dominio[0] \nnombre=$nombre \nidem=$id \n";
-
- fputs($ar,"$contenido");
- fputs($variables,"$contenido");
-
- fclose($ar);
- fclose($variables);
-
- $resultado ="Se configuró el dominio para $nombre ";
- }else {
- $borrar=fopen("$directorio"."borrar","w");
- fputs($borrar,"nombre=$nombre");
- fclose($borrar);
- unlink("$directorio".$id."");
- $resultado ="Se ELIMINÓ el dominio $nombre ";
- }
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("dominio_$id","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("configurar_dominio");
-
-
-function multiempresa($tabla,$div){
- require ("includes/parametrizacion.php");
-
- if($_SESSION['id'] == 1 AND $soporte_multiempresa !== 0) {
- if($div =="") {
- $div="contenido";
- $resultado ="
Configuración multiempresa";
- return $resultado;
- }
-$link=Conectarse();
-
-mysqli_set_charset($link, "utf8");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$consulta = "SELECT * FROM empresa ";
-$sql=mysqli_query($link,$consulta);
-
-$resultado="
-$name
-Id Nombre Sigla Email Web Dirección Teléfono
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$razon_social= editar_campo("empresa",$row['id'],"razon_social","","","");
-$sigla= editar_campo("empresa",$row['id'],"sigla","","","");
-$email= editar_campo("empresa",$row['id'],"email","","","");
-$web= editar_campo("empresa",$row['id'],"web","","","");
-$direccion= editar_campo("empresa",$row['id'],"direccion","","","");
-$telefono= editar_campo("empresa",$row['id'],"telefono","","","");
-$estado= editar_campo("empresa",$row['id'],"estado","","","");
-
-if($row[id] !=1) {
- $dominio ="";
- $archivo= "/opt/tupalescripts/$row[id]";
- //$archivo= "tmp/$row[id]";
- if(file_exists("$archivo")) {
- $configuracion_dominio="ok";
- $configuracion_dominio=" ";
- }
- else{
- $configuracion_dominio=" ";
- }
- $acciones = " Estado: $estado
-
- $configuracion_dominio";
-
- }
-$resultado .= "$row[id] $razon_social $sigla $email $web $direccion $telefono $acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados 0024
";
- }
-
-$resultado .= "
-
-
Agregar empresa
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa");
-
-
-
-
-
-
-function contar_valores_formulario($campo,$key,$valor){
-$consulta = "SELECT distinct($campo) as cantidad FROM form_datos WHERE $key LIKE '$valor' ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = mysqli_num_rows($sql);
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-function listar_campos_formulario($id_form,$tipo){
- $tipo="$tipo";
-$consulta = "SELECT distinct(id_campo),campo_nombre FROM form_datos,form_campos WHERE form_id = '$id_form' AND form_datos.id_campo = form_campos.id ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($tipo=="nombres"){
-$resultado[] = "$row[campo_nombre]";}
- elseif($tipo=="select"){
- $option .= "
$row[campo_nombre] ";
- }
- else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){
-$resultado = "
-
- Campo
- $option
- ";
-
-}
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-//($formulario,$div,$registros,$pagina,$formato)
-function consultar_formulario($form,$registros,$pagina,$tipo){
- if ($registros == ""){$registros=10;}
- $imagen ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
- $id_empresa = "";
-
-$respuesta = new xajaxResponse('utf-8');
-//if(is_array($form)) {$id_form = $form['id_form'];}else { $id_form = $form;}
-//$id_empresa = $_SESSION['id_empresa'];
-$id_empresa = remplacetas('form_id','id',"$form[id_form]",'id_empresa',"") ;
- if($id_emprea[0] !="") {
- $id_empresa = $id_empresa[0];
- }else{$id_empresa = $_SESSION['id_empresa'];}
-$resaltado = remplacetas('form_parametrizacion','opcion','resaltado','descripcion',"id_empresa = '$id_empresa' ") ;
-//$resaltado = remplacetas('form_parametrizacion','opcion','resaltado','descripcion',"id_empresa = '$id_empresa' ") ;
-if(is_array($form)) {
- $fecha_inicio = $form["inicio"];
- if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
- $fin = $form["fin"];
- if( $fin !="") { $fechas = " AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') AND UNIX_TIMESTAMP('$fin 23:59:59')";}
- $id_form = $form['id_form'];
- @$id_campo = $form['id_campo'];
- $busqueda = $form['busqueda'];
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$form[busqueda]%%'";}else{$busca ='';}
-if($id_campo !=''){$campo ="AND id_campo = '$id_campo'";}else{$campo ='';}
-}else{
-$id_form = $form;
-}
-// AND form_datos.id_empresa = '$id_empresa'
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' $busca $campo $fechas GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql_total=mysqli_query($link,$consulta_principal);
-$total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- if($tipo == "csv" ) {$consulta_limite = "$consulta_principal";}
- else{$consulta_limite = $consulta_principal.$limite;}
- $sql=mysqli_query($link,$consulta_limite);
-
-//$sql=mysqli_query($link,$consulta_principal);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-$fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $campos = listar_campos_formulario($id_form,"select");
- $peticion = "
-
-
-
-
-
-
-
-
- ";
-/////// FILTRO
-
-$boton_borrar = "
-
-
-
- ";
-
- if($formato!='csv'){
- $boton_exportar = "
Exportar ";}
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
-
";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "
$x ";
- }else{
- $link .= "
$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
-
"; }
- }
-
- $paginacion = "";
-
-
-
-
- $encabezado = "
-
";
-
- $total_registros = mysqli_num_rows($sql);
- $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "
$nombre ";
- }
- $listado_nombres = "
Identificador $listado_nombres ";
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-//$cantidad_campos = contar_valores_formulario("id_campo","control","$row[control]");
-
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-foreach($listado_campos as $campo=>$valor){
- $id_campo=$valor;
- //$imagen = buscar_imagen($if_form,$row['control'],"","");
- $contenido = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo ='$valor' ") ;
- $id_dato = remplacetas('form_datos','control',$row['control'],'id',"id_campo ='$valor' ") ;
- $multiple = remplacetas('form_contenido_campos','id_form',$id_form,'multiple',"id_campo ='$valor' ") ;
- //$id_empresa = remplacetas('form_datos','control',$row['control'],'id_empresa',"id_campo ='$valor' ") ;
- $tipo_campo = remplacetas('form_campos','id',$valor,'campo_tipo',"") ;
-
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- if($tipo_campo[0] ==15 AND $contenido[0] != "") {
- @$listado_campos .= "
-
-
-
-
-
-
- ";
- }
- elseif(($tipo_campo[0] ==1 or $tipo_campo[0] ==2 or $tipo_campo[0] ==3 or $tipo_campo[0] ==4 or $tipo_campo[0] ==12 or $tipo_campo[0] ==13 )AND $contenido[0] != "") {
- $editar_contenido = editar_campo("form_datos","$id_dato[0]","contenido","");
- // @$listado_campos .= "
$editar_contenido ";
- if($multiple[0] =='1') { $contenido_multiple = formulario_valor_campo("$id_form","$valor","","$row[control]",'',"$row[timestamp]");
- //$contenido[0] = $contenido_multiple[8];
- $listado_campos.="
$contenido_multiple[11] ";
- }else{$listado_campos.="
$editar_contenido ";}
- }
- elseif($tipo_campo[0]=='10'){
- $valor_actual = relacion_render("$id_form","$row[id_campo]",$contenido[0],'5','relacion_drop');
- @$listado_campos .= "
$valor_actual "; }
- elseif($tipo_campo[0] =="6" ) {
- $contenido_campo =imprimir_buscador_campo($valor,$contenido[0]) ;
- @$listado_campos .= "
$contenido_campo ";
- }
- elseif($tipo_campo[0] =="29" ) {
-
- @$listado_campos .= "
";
- }
- elseif($tipo_campo[0] =="30" or $tipo_campo[0] =="24" ) {
- $json = html_entity_decode($contenido[0]);
-
- $valor_actual = json_render(html_entity_decode($contenido[0]),"html","$row[control]");
- @$listado_campos .= "
$valor_actual ";
- }
- elseif($tipo_campo[0] =="31") {
- //$json = html_entity_decode($contenido[0]);
- $link_url = "$_SESSION[site]milfs/archivos/?archivo=$contenido[0]";
- $valor_actual = "
$contenido[0] ";
- @$listado_campos .= "
$valor_actual ";
- }
- //
- // if($tipo_campo[0] =="29" ) {$contenido[0] ="
"; }//$contenido="
";
- else {
-
- if($multiple[0] =='1') { $contenido_multiple = formulario_valor_campo("$id_form","$valor","","$row[control]",'',"$row[timestamp]"); $contenido[0] = $contenido_multiple[8];}else{$contenido[0]=$contenido[0];}
-@$listado_campos .= "
$contenido[0] ";
-}
-
- }
- if (!is_array($listado_campos)){$listado_campos="
$listado_campos ";}else {$listado_campos=$listado_campos;}
-
- $areas = resumen_identificador("$row[control]",'','','boton');
- $acceso = generar_acceso($row[control],"","");
- if($resaltado[0] =="$row[control]") {$iresaltar ="
Resaltado "; $alert="info";}
- else {
- $iresaltar = "
Resaltar
-
";
- $alert="";
-
- }
-
- $menu ="
-
-
-
-
-
- ";
-$lineas .= "
$menu$row[control] $listado_campos ";
-
- }
-
-$tabla ="
-
- $listado_nombres
-
- $lineas
-
-
";
-$resultado = "
-$encabezado
-
-
-
-$tabla
-
-
-";
- }
-else {
-$resultado ="
No hay resultados 0001 ";
-$respuesta->addAlert("No hay resultados 0025 ");
-return $respuesta;
-}
-if($tipo =="csv") {
-$html = str_get_html($tabla);
- // header('Content-type: application/ms-excel');
- // header('Content-Disposition: attachment; filename=sample.csv');
- $nombre_archivo ="tmp/Prueba_Formulario_".mktime()."_".$_SESSION['id'].".csv";
- //$fp = fopen("php://output", "w");
- $fp=fopen($nombre_archivo , "w");
- foreach($html->find('tr') as $element)
- {
- $td = array();
- foreach( $element->find('th') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- if (!empty($td)) {
- fputcsv($fp, $td);
- }
-
- $td = array();
- foreach( $element->find('td') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- fputcsv($fp, $td);
- }
-
- fclose($fp);
-$boton_descarga ="
Descargar ";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "
$datos
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- if($tipo =="modal") {
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-}
- return $respuesta;
-
-}
-$xajax->registerFunction("consultar_formulario");
-
-
-function datos_array($identificador,$id_form,$timestamp) {
-if($id_form !="") { $w= "AND form_id ='$id_form' "; }else { $w= " "; }
-$array = array();
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if($timestamp != "") {
- $consulta = "SELECT * FROM form_datos
- WHERE control = '$identificador' AND form_id != '$id_form' GROUP BY form_id , timestamp
- ";
- // $array["consulta"] = "$consulta";
- // return $timestam;
- }else{
-$consulta ="SELECT * FROM form_datos WHERE control = '$identificador' $w
-GROUP BY timestamp,id_campo ORDER BY timestamp DESC ";
-
-}
-$sql = mysqli_query($link,$consulta) or die("Error al ejecutar consulta 02 ");
-
-// $id_form = remplacetas('form_datos','control',"$identificador",'form_id'," form_id= '$id_form'") ;
-$campo_titulo = remplacetas('form_parametrizacion','campo',$id_form,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-
-$array["identificador"] = "$identificador";
-$array["id_aplicacion"] = "$id_form";
-//$array["consulta_form"] = "$id_form[2]";
-//$array["consulta"] = "$consulta";
-$con_respuesta = remplacetas_noid("form_id","formulario_respuesta","$id_form","id","","");
-//$array["responde"] = json_decode("$con_respuesta[3]");
-
-$array["responde"] = $con_respuesta[0];
-while($row = mysqli_fetch_array( $sql ))
- {
- $id_campo = remplacetas('form_datos','id',$row["id"],'id_campo',"") ;
- $campo_tipo = remplacetas("form_campos","id",$row["id_campo"],"campo_tipo","");
- $multiple = remplacetas('form_contenido_campos','id_form',$row['form_id'],'multiple',"id_campo ='$id_campo[0]' ") ;
- if($multiple[0] =='1') {
- // $array['multiple'] ="$contenido[0]";
- $contenido_multiple = formulario_valor_campo("$row[form_id]","$id_campo[0]","","$identificador",'',"$row[timestamp]");
- $contenido[0] = $contenido_multiple[9];}
- else{ $contenido = remplacetas_orden('form_datos','id_campo',$row["id_campo"],'contenido'," control = '$identificador'"," ORDER BY timestamp DESC ") ;}
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- // $valor_actual = imprimir_buscador_campo("$id_campo","$row[contenido]",'buscador_drop');
- if($campo_tipo[0]=='10'){
- $valor_actual = relacion_render($row["form_id"],$row["id_campo"],$contenido[0],'5','relacion_drop');
- $contenido[0] = "$valor_actual";}
- if($campo_tipo[0]=='6'){
- // $valor_actual = relacion_render($row["form_id"],$row["id_campo"],$contenido[0],'5','relacion_drop');
- $valor_actual = imprimir_buscador_campo($row["form_id"],"$contenido[0]",'buscador_drop');
- $contenido[0] = "$valor_actual";}
- if($campo_tipo[0] =='31') {
- $link_url = "$_SESSION[site]milfs/archivos/?archivo=$contenido[0]";
- $contenido[0] = $link_url;
-
- }
- // if($campo_tipo[0] =='32') {
- if($nombre_campo[0] =='Inicio') {
- $array['start'] = "$contenido[0]";
- } else {
- if($campo_tipo[0] =='32' OR $campo_tipo[0] =='11') {
- $array['start'] = "$contenido[0]";
- }
- // $array['start'] = "$contenido[0]";
- }
- if($nombre_campo[0] =='Fin') {
- $array['end'] = "$contenido[0]";
- }
-
- /* }
- elseif($campo_tipo[0] =='11') {
- // $array['start'] = "$contenido[0]";
- if($nombre_campo[0] =='Fin') {
- $array['end'] = "$contenido[0]";
- }
- }else{}
- */
-
- //$array[id_campo] = $row[id_campo];
- if($id_campo[0] == $campo_titulo[0] or $nombre_campo[0] == 'Titulo' ) {
- $array['title'] = strip_tags(html_entity_decode("$contenido[0]"));
-}
-//// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$row[form_id]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = @$privado[1];
-/// PRIVACIDAD
-if($privado !='1') {
- $array[$nombre_campo[0]] = html_entity_decode("$contenido[0]");
- //$array['consulta'] = "$contenido[2]";
- $uri = "$_SESSION[site]I$identificador";
- $array['url'] = "$uri";
- $array['timestamp'] = "$row[timestamp]";
- $array['proceso'] = "$row[proceso]";
- $array['id'] = "$row[id]";
- $array['orden'] = "$row[orden]";
- // $array['multiple']= $multiple[0];
- //$array[] = $row;
- if($con_respuesta[0] !="") {
-//$contenido_respuestas = datos_array("$identificador","$row[form_id]","$row[timestamp]");
-$contenido_respuestas = array_respuestas("$row[form_id]",$identificador,"array");//formulario_imprimir("$row[form_id]","$identificador","array",""); ///array_respuestas("$row[form_id]","$row[control]","json");
-$array["responder"]= $contenido_respuestas;//"$contenido_respuestas $row[control] //$row[timestamp] // $row[form_id]";
-}
-
-}
- }
- return $array;
-}
-
-function array_respuestas($id,$identificador,$plantilla) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $formulario_respuesta = formulario_respuesta("$id","$identificador");
- $consulta = "SELECT form_id , timestamp FROM form_datos
- WHERE control = '$identificador' AND form_id != '$id' GROUP BY form_id , timestamp
- ";
-$array = array();
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-
- $resultado ="";
- while( $row = mysqli_fetch_array( $sql ) ) {
- $respuesta[] = mostrar_identificador("$identificador","$row[form_id]","array","array","$row[timestamp]");
- $fecha = date($format, $row['timestamp']);
-
-
-
-}$array[] = $respuesta;
-
-}else{$resultado ="";}
-//$resultado = "$resultado $formulario_respuesta";
-//return $resultado;
-
-return $array;
-}
-
-
-function parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item){
- if(isset($_SESSION['id_empresa']) ){$id_empresa= $_SESSION['id_empresa']; }else{ $id_empresa="";
- }
- $respuesta = new xajaxResponse('utf-8');
-if($tabla =="") {
-$resultado = "
-
-
-
- Hiperparametrizador Experimental
-
-
-
-
- Tabla
-
- *Campo obligatorio
-
-
-
-
-
-
- Descripción
-
-
-
-
-
-";
-return $resultado;
-}
- $link=Conectarse();
-mysqli_query($link,"SET NAMES 'utf8mb4'");
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = '".mysqli_real_escape_string($link,$tabla)."' AND campo ='".mysqli_real_escape_string($link,$campo)."' AND opcion ='".mysqli_real_escape_string($link,$opcion)."' AND id_empresa = '$id_empresa' AND item = '".mysqli_real_escape_string($link,$item)."' LIMIT 1 ";
-$sql=mysqli_query($link,$limpiar);
-$consulta="INSERT INTO form_parametrizacion set tabla = '".mysqli_real_escape_string($link,$tabla)."' , campo ='".mysqli_real_escape_string($link,$campo)."', opcion ='".mysqli_real_escape_string($link,$opcion)."', descripcion ='".mysqli_real_escape_string($link,$descripcion)."', item ='".mysqli_real_escape_string($link,$item)."', visible='1' , id_empresa = '$id_empresa'";
-
-
-$sql=mysqli_query($link,$consulta);
-if($sql) {
- if($descripcion =="") {
- $respuesta->addAlert("ATENCION: Se grabó un campo vacío, esto no es necesariamente un error pero indica que el valor de parametrización se sobreescribió como vacío. ");
- }
- $id = mysqli_insert_id($link);
- if($script != "") {
- $respuesta->addScript("$script");
- return $respuesta;
-
- }
- if($div != "") {
- $resultado = " $descripcion ";
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }else {
- return $id;
- }
- }else {
-//$respuesta->addAlert("$consulta");
-return $consulta;
-}
-///$respuesta->addAssign("$div","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("parametrizacion_linea");
-
-
-
-
-function email_contenido($id,$control,$id_campo,$email_envio){
-
-if($email_envio =="") {
- $email = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$id' AND id_campo ='$id_campo' ") ;
- $formulario =
-
- "
-
";
-return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
-
- $validar = validar_email($email_envio);
- if($validar == '0') {
- $respuesta->addAssign("input_email_envio","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('email_envio').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email = remplacetas("empresa","id","1","email","");
- $email = remplacetas("empresa","id","$id_empresa","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
-
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $razon_social[0] <$reply[0]>\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $propietario[0]" . "\r\n";
-$impresion = formulario_imprimir("$id","$control","email");
-
-$impresion ="
-$encabezado
-
$impresion
";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-
-$impresion
-
-Se ha completado el formulario
$nombre_formulario[0]
-
Puede revisar los datos en $_SESSION[site]I$control
-
Saludos de MILFS
-";
- if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="
Se envió un email a $email_envio "; }else {$exito .="error enviando correo";}
-
-$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("email_contenido");
-
-
-function mapa_ficha($id) {
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $descripcion_limpia = strip_tags($descripcion[0]);
- $nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
- $id_empresa = $id_empresa[0];
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $imagen = "
";
- $datos ="
$nombre[0] $descripcion[0] ";
- $empresa = "
$razon_social[0] |
$web[0] | $direccion[0] | $email[0]
";
-
- //$prueba = json_decode($prueba);
-
- $resultado ="
-
-
-
-
- $imagen
-
-
-
$nombre[0]
- $descripcion_limpia[0]
-
-
-
-
$razon_social[0]
-
MILFS
-
-
-
- ";
- return $resultado;
-}
-
-function formulario_parametrizacion($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($accion =='categorias') {
-
- }
- elseif($accion =='grabar'){
-
- }
- else {
- $listado ="
-
-
-
-
-
-
Parametrización
-
Parametrización del formulario $nombre[0]. Por favor seleccione una opción
-
-
-
-
- ";
- $respuesta->addAssign($div,"innerHTML",$listado);
- return $respuesta;
- }
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
Filtro
-
- Todos ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= " ";
- }
-else{$resultado = 'nada';}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_parametrizacion");
-
-
-
-function lista_categorias($perfil,$categoria,$tipo) {
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
- $categoria_campo = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- if($categoria_campo >0 ) {
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$categoria_campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
-
-";
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $icono = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$row[md5_contenido]'") ;
- if($icono[0] =='') {
- $icon = "$_SESSION[site]milfs/images/iconos/pin.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- $contenido= html_entity_decode($row[contenido]);
-
-$resultadox .= "
-
-
-
-
-
$contenido
-
";
-$resultado .=" $contenido ";
- }
-$resultado .= " ";
- }
-else{$resultado = '';}
-}
-return $resultado;
-}
-
-function parametrizacion_categoria($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-$categorias = lista_categorias($perfil,$categoria,$tipo);
-if($accion =='categorias') {
- $resultado = "
-
-
La categorización se usa para filtrar los datos de un formulario en categorias que pueden ser usadas por ejemplo para diferenciar los datos en un mapa.
- Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza
- $categorias
-
-
-
-
- Icono para la categoría
-
-
- URL
-
-
-
-
- Grabar
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- $respuesta -> addScript("xajax_formulario_campos_select('$perfil','parametrizacion','filtro')");
- return $respuesta;
- }
- elseif($accion =='grabar'){
- if($form[tipo] =='categoria') {
- $url_icon = "$form[icon]";
- $es_imagen = es_imagen("$url_icon");
- $altura = GetImageSize($url_icon);
- $altura= $altura[1];
- if($form[id_campo] =='') { $error = "Seleccione un campo";}
- elseif($form[campo_filtro] =='') { $error = "Seleccione Filtro";}
- elseif(!$es_imagen ) { $error = " [ $url_icon ] no es una imagen válida para el ícono";}
- elseif($altura > 500 ) { $error = " El ícono no debe tener mas de 300 pixeles de alto.";}
- elseif($form[icon] =='') {
- $error = "Escriba la dirección del ícono";
- }
- else {$error='';}
- if( $error !='') {
- $respuesta -> addAlert("$error $revisar_url ");
- return $respuesta;
- }else{
- $categoria_icono[tabla] = "form_id";
- $categoria_icono[campo] = "$form[perfil]";
- $categoria_icono[opcion] = "$form[tipo]:icon:$form[campo_filtro]";
- $categoria_icono[descripcion] = "$url_icon";
- $categoria_icono[visible] = "1";
- $categoria_icono[accion] = "grabar";
- $grabar_icono = parametrizacion($categoria_icono);
-
- $categoria_campo[tabla] = "form_id";
- $categoria_campo[campo] = "$form[perfil]";
- $categoria_campo[opcion] = "$form[tipo]:campo";
- $categoria_campo[descripcion] = "$form[id_campo]";
- $categoria_campo[visible] = "1";
- $categoria_campo[accion] = "grabar";
- $grabar_campo = parametrizacion($categoria_campo);
-
- $categoria_filtro[tabla] = "form_id";
- $categoria_filtro[campo] = "$form[perfil]";
- $categoria_filtro[opcion] = "$form[tipo]:filtro:$form[id_campo]";
- $categoria_filtro[descripcion] = "$form[campo_filtro]";
- $categoria_filtro[visible] = "1";
- $categoria_filtro[accion] = "grabar";
- $grabar_filtro = parametrizacion($categoria_filtro);
-
-
- $resultado ="
$form[campo_filtro] $form[id_campo] ($altura ) [$grabar_icono]";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-
- }/// fin de parametrizacion categorias
- }
-}
-$xajax->registerFunction("parametrizacion_categoria");
-
-
-function parametrizacion_plantilla_campos($formulario){
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-$identificador_logo="
";
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen ="
"; $identificador="
";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-
-$listado .= "
$imagen $row[campo_nombre] [$row[id_campo]]
-
-
-";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-
-
-
-
-
-
-
- $listado
- Fecha
- Logo
- Proyecto
- Slogan
- Web
-
-
-";
-}
-return $resultado;
-}
-
-
-function parametrizacion_plantilla_campos_inteligentes($formulario){
-$consulta ="SELECT distinct(`id_campo`) , campo_nombre FROM `form_datos`, form_campos WHERE form_datos.id_campo = form_campos.id AND `form_id` ='$formulario' ORDER BY campo_nombre ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen ="
"; $identificador="
";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "
$imagen $row[campo_nombre] [$row[id_campo]] ";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$identificador_logo="
";
-
-$resultado = "
-
-
-
-
-
-
-
-
- $listado
- Fecha
- Logo
-
-
-";
-}
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("div_campos","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla_campos_inteligentes");
-
-
-function parametrizacion_plantilla($formulario,$div,$valores) {
- $respuesta = new xajaxResponse('utf-8');
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$link=Conectarse();
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-mysqli_set_charset($link, "utf8");
-if($valores =="boton") {
-$consulta ="SELECT * FROM form_parametrizacion WHERE campo = '$formulario' AND `opcion` REGEXP '^plantilla:' ORDER BY opcion";
-
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campos_opcion = explode(":",$row[opcion]);
- $plantilla_nombre = $campos_opcion[1];
-$listado .= "
$row[opcion] ";
-$li .= "
- $plantilla_nombre
- Editar
- Editar
-
- ";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-
-
-
-";
-$lista ="
-
-Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas HTML5 , CSS3 y clases de Bootstrap
-
-
- Nombre
- Editar
- Ver
-
-$li
-
-Nueva plantilla
-";
- $respuesta->addAssign("$div","innerHTML","$lista");
- return $respuesta;
-
-}
-else {
-
-$resultado ="
-
-
-
Aún no se han definido plantillas para este formulario
- Crear una plantilla
-
-
-";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-
-elseif($valores =="formulario" OR is_numeric($valores)) {
- $campos = parametrizacion_plantilla_campos("$formulario");
- $descripcion = remplacetas('form_parametrizacion','id',$valores,'descripcion',"") ;
- $opcion = remplacetas('form_parametrizacion','id',$valores,'opcion',"") ;
- $campos_opcion = explode(":",$opcion[0]);
- $plantilla_nombre = $campos_opcion[1];
- include("includes/bootsrap_class_list.php");
-$resultado ="
-
-
-
-
-
-
-
- A
A
')); \">
-
-
A
-
A
-
div
-
H1
-
H2
-
H3
-
-
<li>
-
-
MB
-
-
-
-
-
-
Editor HTML
-
$descripcion[0]
-
-
-
-
Campos inteligentes
- $campos
-
-
-
-
-
-";
-
-}
-
-elseif(is_array($valores)) {
- $texto=str_replace('"',"'",$valores[text_contenedor]);
-$plantilla = htmlentities($texto);
-if($valores[nombre_plantilla] == "") {
- $respuesta->addAlert("No ha especificado un nombre para la plantilla");
- $respuesta->addAssign("input_nombre_plantilla","className","input-group has-error");
- return $respuesta;
- }
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='plantilla:$valores[nombre_plantilla]' LIMIT 1 ";
-$sql=mysqli_query($link,$limpiar);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='plantilla:$valores[nombre_plantilla]', descripcion =\"$plantilla\", visible='1' ";
-$sql=mysqli_query($link,$consulta);
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-$datos = contenido_mostrar("$formulario","$ultimo[1]",'',"$valores[nombre_plantilla]");
-$preview = " $valores[nombre_plantilla] $datos ";
- $div_contenido = "$preview
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- $respuesta->addAssign("titulo_modal","innerHTML","$resultado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- return $respuesta;
-
-}
-else{
-$resultado ="";
-}
-$resultado .= "";
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla");
-
-
-function parametrizacion_mapa($formulario,$div,$valores) {
-$otro_json = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'json'") ;;
-
-$respuesta = new xajaxResponse('utf-8');
-if($valores =="") {
-
- $cadena= array();
- $ids = json_decode($otro_json[0]);
- foreach ($ids as $clave => $valor) {
- if($valor !=""){
-
- $li .="$valor[0] $valor[1]\n";
-
-
- }
-
-}
-
-$resultado ="
-Defina en cada linea un geojson adicional que se mostrará en el mapa $formulario
- Ejemplo: [Nombre de la capa] url.geojson
-
- Grabar
-
";
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}else{
- //$ids=array();
- $cadena= array();
- $ids = explode(PHP_EOL, $valores);
- foreach ($ids as $clave => $valor) {
- if($valor !=""){
- $li="";
- $cadena[] = explode(" ", $valor,2);
- foreach ($cadena as $c => $v){
- $li .="$v[1]: $v[0] ";
- }
-
- }
-
-}
- $resultado_visible="";
-// $ids['formulario']="$formulario";
-$resultado =json_encode($cadena);
-//parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item)
-$insertar = parametrizacion_linea('form_id',"$formulario","json","$resultado",'','','');
-$respuesta->addAssign("$div","innerHTML","$resultado_visible");
-return $respuesta;
-}
-
-
-}
-$xajax->registerFunction("parametrizacion_mapa");
-
-
-function parametrizacion_titulo($formulario,$div,$valores) {
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_descripcion = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'descripcion'") ;
-$campo_orden = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'orden'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$campo_orden_nombre = remplacetas('form_campos','id',$campo_orden[0],'campo_nombre',"") ;
-$campo_descripcion_nombre = remplacetas('form_campos','id',$campo_descripcion[0],'campo_nombre',"") ;
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if($valores =="") {
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-
-$sql=mysqli_query($link,$consulta);
-
-
-
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "$row[campo_nombre] [$row[id_campo]] ";
-}
-
-//($tabla,$campo,$opcion,$descripcion,$div)
-
-$resultado = "
- Campos especiales
-
- Campo de Título actual $campo_titulo_nombre[0] [$campo_titulo[0]]
- Campo de Descripción actual $campo_descripcion_nombre[0] [$campo_descripcion[0]] (Este campo debe ser del tipo nota)
- Campo de Orden actual $campo_orden_nombre[0] [$campo_orden[0]] (Este campo debe ser del tipo numérico)
-
-
-
-
-
-
-
-
-";
-}
-}else {
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='titulo' LIMIT 1 ";
-$sql=mysqli_query($link,$limpiar);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='titulo', descripcion ='$valores', visible='1' ";
-$sql=mysqli_query($link,$consulta);
-if($sql){
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
- $campo_descripcion_nombre = remplacetas('form_campos','id',$campo_descripcion[0],'campo_nombre',"") ;
-$resultado ="addAssign("$div","innerHTML","$resultado");
-}else { return $resultado;}
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_titulo");
-
-
-function mostrar_modal($form,$control,$plantilla){
-$respuesta = new xajaxResponse('utf-8');
-if( $control == "") {
- $datos = formulario_areas('',$form,"");
-}else {
-$datos = contenido_mostrar("$form","$control",'',"$plantilla");
-}
-$div ="contenido_de_modal";
-
-$resultado = "
-
- $datos
-
-
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_modal");
-
-function portal_filtro_cadena($formulario,$id_campo,$control,$div,$plantilla){
-$cadena = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$formulario' AND id_campo ='$id_campo' ") ;
-$consulta ="SELECT * FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' AND contenido = '$cadena[0]'
- GROUP BY control ORDER BY contenido";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-
- $datos = contenido_mostrar("$formulario","$row[control]",'',"$plantilla");
- if($plantilla == "") {
-$listado .= "
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-
- $listado
-
-";
-}else{
-$resultado ="";
-}
-
-if ($div ==""){$div="mostrar_contenido";}
-else {$div = "$div";}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado ");
- return $respuesta;
-}
-$xajax->registerFunction("portal_filtro_cadena");
-
-
-
-function portal_filtro_campos($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-
-$resultado = "
-
- $formulario_nombre[0] / $campo_nombre[0]
- {json}
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_filtro_campos_select($formulario,$id_campo,$div,$plantilla){
-$listado="";
-if($id_campo =="") {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- if($id_campo =="") { $resultado = ""; return $resultado;}
- }
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT *
- FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario'
- AND form_campos.id = form_datos.id_campo
- AND form_datos.id_campo = '$id_campo'
- GROUP BY contenido
- ORDER BY contenido";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $campo_nombre[0]
- $listado
-
-";
-}
-$resultado ="
-
- Filtro
- $resultado
-
";
-return $resultado;
-}
-
-
-
-function portal_listado_campos($formulario){
-
-
-
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_publico = remplacetas('form_id','id',"$formulario",'publico',"") ;
- $empresa = remplacetas('form_id','id',"$formulario",'id_empresa',"") ;
-if($formulario_publico[0] !="1" AND ($id_empresa[0] == $_SESSION['id_empresa']) ) {
- $resultado ="
Acceso restringido Esta aplicación contiene datos privados
- ";
-
- return $resultado;}
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_contenido_campos.orden";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre','','');
- //href='?formulario=$formulario&campo=$row[id_campo]'
- //
{json}
- //// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$formulario",'opcion'," tabla='form_id' AND descripcion ='$row[id_campo]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
-/// PRIVACIDAD
- if($privado !='1') {
-//
$row[id_campo] x $row[campo_nombre] x $row[campo_descripcion] x $estadisticasx x
- $estadisticas = formulario_estadistica("$formulario","$row[id_campo]","contenido","barras");
-$listado .= "
-
-
-
- Id: $row[id_campo]
- Nombre: $row[campo_nombre]
- Tipo: $tipo_campo[0]
- Descripción: $row[campo_descripcion]
-
-
- $row[campo_descripcion] $estadisticas
-
-";
-}else {$listado.="";}
-}
-$resultado = "
-
-
-
-
-
-";
-}
-return $resultado;
-}
-
-
-function portal_listado_formularios($id_proyecto){
- if($id_proyecto=="") {
- return;
- }
-$listado="";
-$consulta ="SELECT * FROM form_id WHERE publico = '1' AND id_empresa='$id_proyecto'";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $nombre= strip_tags($row['nombre']);
- $descripcion= strip_tags($row['descripcion']);
-$listado .= "
$nombre ";
-}
-$resultado = "
-
-
-
-";
-}
-return $resultado;
-}
-
-
-
-function insertar_linea($tabla,$key,$campo,$valor,$control,$orden,$div,$proceso){
- $respuesta = new xajaxResponse('utf-8');
- //$key = limpiar_caracteres($key);
- //$valor = limpiar_caracteres($valor);
-if($_SESSION['id_empresa'] =="") {
- $empresa = remplacetas('form_id','id',"$key",'id_empresa','') ;
- $empresa = $empresa[0];
- }else {$empresa=$_SESSION['id_empresa'];}
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
-if($tabla =="form_datos") {
-
-$consulta = "INSERT INTO form_datos ( proceso,orden, timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( '$proceso','$orden',UNIX_TIMESTAMP(),'$_SESSION[id]','$empresa','$key',$ip ,'$control', '$campo' , '$valor')
- ";
-
-}
-$link=Conectarse();
-mysqli_real_escape_string($link,$consulta);
-
-
- mysqli_set_charset($link, "utf8");
- if($valor !="") {
- $sql=mysqli_query($link,$consulta);
-}
-if($sql) {
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
- }
-else {
-return " ";
-}
-}else {
-return "No se inserto ";;
-}
-}
-$xajax->registerFunction("insertar_linea");
-
-
-function select_combo($id,$tabla,$campo_valor,$campo_descripcion,$tipo){
-
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$Campo_descripcion = ucwords($campo_descripcion);
-$Campo_valor = ucwords($campo_valor);
-$nombre=$tabla."_".$campo_valor;
-$div=$nombre."_hijo";
-$combo = $id."_".$tabla;
-if($tipo!=''){
-$respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE $campo_valor = '$tipo' AND id_empresa = '$id_empresa'";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado .= "
$Campo_descripcion
-
";
-$resultado .= " Seleccione $Campo_descripcion ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[$campo_valor] $row[$campo_descripcion] ";
- }
-$resultado .= " ";
- }
-
-
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;}
-ELSE{ /// si no especifica $tipo
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE id_empresa = '$id_empresa' GROUP BY $campo_valor ";
-$sql=mysqli_query($link,$consulta);
-///$Documento=mysqli_result($grupo,0,"documento_numero");
-$resultado = "
$Campo_valor
-
";
- $resultado .= " Seleccione $Campo_valor ";
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "$row[$campo_valor] ";
- }
- }
-$resultado .= "
";
- }/// FIN de $tipo no especifico
-
-return $resultado;
-}
-$xajax->registerFunction("select_combo");
-
-
-
-function crear_session ($form,$control) {
-
-$consulta = " SELECT distinct(id_campo),contenido FROM form_datos WHERE control = '$control' AND form_id = '$form' order by timestamp DESC ";
-$link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql = mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!=0){
- $resultado ="
";
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $id_form = $row[form_id];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre = strtolower( str_replace(' ','_',$campo_nombre[0]));
- $_SESSION[$nombre] = $row[contenido];
- $resultado .= "$_SESSION[$nombre] ";
- }
- $resultado .= " ";
- }
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla,$tipo,$timestamp){
- //$respuesta = mostrar_identificador("$identificador","$row[form_id]","respuesta","$plantilla","$row[timestamp]");
- $datos_form="";
- $edicion="";
- $resultado="";
- $tipo="$tipo";
- $visitas="";
- $usuarios="";
- if($form != "") {$id_form = "$form";
-
- $datos_form ="
-
$nombre[0]
-
$descripcion[0]
- ";
-
- }else {$id_form ="";}
-
- $impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp);
- if($impresion !="") {
- //$visitas= contar_visitas($control,'identificador') ;
- //$visitas= "
$visitas";
- //$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- //$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
- $interaccion = interaccion_identificador("$control",'');
- if($plantilla == "svg") { return $impresion;}
- if($tipo=="") {
- $resultado = "
-
-
-
- $visitas
- $datos_form
-
-
- $impresion
-
-
-
-
- $interaccion
- $edicion
-
- "; }else {
-$resultado = $impresion;
- }
- }else{
-$resultado ="
No hay resultados 0002 ";
- }
-
-return $resultado ;
-}
-
-function buscar_campo_nombre($form_id,$nombre) {
-
-$consulta ="SELECT form_campos.id FROM `form_campos` , form_contenido_campos WHERE `campo_nombre` = '$nombre' AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='$form_id' LIMIT 1";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql = mysqli_query($link,$consulta);
- $id_campo=mysqli_result($sql,0,"id");
-return $id_campo;
-}
-
-function conversorSegundosHoras($tiempo_en_segundos) {
- $horas = floor($tiempo_en_segundos / 3600);
- $minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
- $segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
-
- return $horas . ':' . $minutos . ":" . $segundos;
-}
-
-function mensajes($tipo,$campos_form,$datos,$control) {
- $campo_remitente = $campos_form['remitente'];
- $campo_destinatario = $campos_form['destinatario'];
- $campo_asunto = $campos_form['asunto'];
- $campo_mensaje = $campos_form['mensaje'];
- $form_id = $campos_form['formulario_id'];
- $form_usuarios = $campos_form['formulario_usuarios'];
- $campo_usuarios = $campos_form['campo_usuario'];
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='formulario') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
-
-//$campos = formulario_areas('',$form_id,'campos');
-$control_original = $control;
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
- $campos = formulario_areas('',$form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
- $respuesta->addAssign("div_mensaje_$control_original","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo =='responder') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
- $remitente = buscar_campo_nombre("$form_id","Para");
- $destinatario = buscar_campo_nombre("$form_id","De");
- $mensaje = buscar_campo_nombre("$form_id","Mensaje");
- $asunto = buscar_campo_nombre("$form_id","Asunto");
-
- $asunto_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$asunto' AND control='$control'") ;
- $mensaje_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$mensaje' AND control='$control'") ;
- $remitente_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$remitente' AND control='$control'") ;
- $destinatario_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$destinatario' AND control='$control'") ;
-
-$formulario ="
-
-
-
-
-
-
-
-
- Asunto
-
-
-
- Mensaje
- $mensaje_value[0]
-
- ";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
-";
- $respuesta->addAssign("div_mensaje_$control","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo=="recuperar") {
-
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
-
- $consulta ="SELECT *, FROM_UNIXTIME(timestamp) as fecha , DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d') as dia, DATE_FORMAT(FROM_UNIXTIME(timestamp),'%H:%i') as hora FROM form_datos WHERE form_id ='$form_id' AND id_campo = '$campo_destinatario' AND contenido ='$_SESSION[usuario_milfs]' GROUP BY control, timestamp order by timestamp DESC ";
-
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
- $mensajes = mysqli_query($link,$consulta);
-// $destinatario ="$campo_destinatario"."[0]";
-// $para = buscador_campo("$campo_destinatario","$form_id","","$destinatario","","");
- $campos = formulario_areas('',$form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
-
-
-
-$lista ="
-
-
-
-";
-while( $row = mysqli_fetch_array( $mensajes ) ) {
- $asunto = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_asunto' AND control='$row[control]'") ;
- $mensaje = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_mensaje' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_remitente' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_usuarios",'contenido'," id_campo = '$campo_usuarios' AND control='$remitente[0]'") ;
- if($remitente[0] =='') {$remitente[0]="
Sistema";}
- $hoy=date('Y-m-d');
- $control = $row[control];
- if($hoy == $row[dia]){$momento = $row[hora];}else {$momento=$row[dia];}
-//function contenido_mostrar($id,$control,$div,$plantilla)
-//$contenido = contenido_mostrar("$form_id","$control","",'');
- $lista .="
-
- ";
-}
- // $respuesta->addAssign("div_mensaje","innerHTML",$lista);
- $lista .=" ";
- return $lista;
-
-}
-
-$resultado ="hola";
-
- $respuesta->addAssign("div_mensaje","innerHTML",$resultado);
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("mensajes");
-
-function revisar_campo_unico($id,$campo,$id_form,$valor) {
- $respuesta = new xajaxResponse('utf-8');
- $div= "div_$id";
- $existe = remplacetas('form_datos','form_id',"$id_form",'control'," BINARY contenido = '$valor' AND id_campo = '$campo'") ;
- if($existe[0] != "") {
- $texto ="El valor ya existe";
-$respuesta->addAssign("$div","className","text-danger");
-$respuesta->addAssign("input_$id","className","form-group has-error");
- }else{
- $texto ="";
-$respuesta->addAssign("$div","className","text-success");
-$respuesta->addAssign("input_$id","className","form-group has-success");
- }
-
- $respuesta->addAssign("$div","innerHTML",$texto);
- return $respuesta;
-}
-$xajax->registerFunction("revisar_campo_unico");
-
-
-function verificacion_email($control_usuario,$dato,$accion){
-require ("milfs/includes/parametrizacion.php");
-$div="div_aviso_validacion";
-$respuesta = new xajaxResponse('utf-8');
- $form_id =$login_formulario;
- $campo_usuario= $login_campo_usuario;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$control_usuario' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
-
- $validado = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$login_campo_validado' ") ;
- $rrn = rand(123,999);
- $rrncode = MD5("$rrn");
-
-if($accion=="enviar") {
-
- $id_empresa="1";
- $email_empresa = remplacetas("empresa","id","$id_empresa","email","");
- $administrador = remplacetas("empresa","id","1","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] < $email_empresa[0] >\r\n";
-$headers .= "Reply-To: $email_empresa[0]\r\n";
-$headers .= "Return-path: $email_empresa[0]\r\n";
-
-
-$cuerpo_email ="
-
-
-
Código de validación
-$rrn
-Por favor escribe este código en el campo correspondiente
-
-
- ";
- $asunto= "Recibiste un mensaje en [$portal_sigla] ";
- $titulo_email ="Necesitamos validar tu email $email[0]";
- $campo_imagen = buscar_campo_tipo("$id_form","15");
- $imagen_email = remplacetas('form_datos','id_campo',$campo_imagen[0],'contenido'," control = '$nuevo_identificador' ") ;
- $imagen_email = "https://$web[0]/milfs/images/secure/?file=600/$imagen_email[0]";
- $nombre_email = $razon_social[0];
-
-
-
- $plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:email_general",'descripcion',"id_empresa = '1'") ;
- $consulta_plantilla ="$plantilla[2]";
- $plantilla = html_entity_decode ( $plantilla[0] );
- eval("\$plantilla = \"$plantilla \";");
- $plantilla .="";
- $asunto= "Recibiste un mensaje en [$portal_sigla] ";
-
- if(mail("$dato","$titulo_email","$plantilla","$headers")){
- $exito .="
Tienes un email ! $headers $dato ";
-$resultado="
-
-";
- }
- else {$resultado .="
Error enviando correo";}
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
-
-}
-elseif($accion=="confirmar") {
-
- $rnncode = $dato['rrn'];
- $email = $dato['enviar_email'];
- $codigo_confirmacion= md5($dato['codigo_confirmacion']);
- $validado= md5($email);
- //$resultado ="$rnncode // $codigo_confirmacion";
- if($rnncode == $codigo_confirmacion) {
- $insertar_email = insertar_linea("form_datos","$login_formulario","$login_campo_email","$email",$usuario[0],"","","");
- $insertar_email = insertar_linea("form_datos","$login_formulario","$login_campo_validado","$validado",$usuario[0],"","","");
-
- $resultado="";
- $respuesta->addAssign("contenedor_login_validacion","innerHTML",$resultado);
- return $respuesta;
- }
- else{
- $resultado="
El codigo no es valido, inténtalo de nuevo
";
- }
-
-$respuesta->addAssign("intento_$div","innerHTML",$resultado);
-return $respuesta;
-
-}
-else {}
-
- if($validado[0] != md5("$email[0]")) {
- $verificar_email = "
-
-
-
x
-
Vamos a validar tu email
-
Enviaremos un código de verificación a para validarlo.
-
-
-
-
-
-
-
-
-
- ";
- if($accion=="verificar") {
- $verificar_email = "";
- }
- }
- else{
- if($accion=="verificar") {
- $verificar_email = "$usuario[0]";
- }
- else {
- $verificar_email="";
- }
-
- //$verificar_email= "Ok";
- }
-
-return $verificar_email;
-}
-
-$xajax->registerFunction("verificacion_email");
-
-
-function milfs_session($form_id,$campo_usuario,$campo_password,$tipo,$datos,$div){
- $accion="";
- $datos = mysql_seguridad($datos);
- $respuesta = new xajaxResponse('utf-8');
- require ("milfs/includes/parametrizacion.php");
-
-if($tipo =="") {
- if(isset($_SESSION['usuario_milfs'])) {
- //$control = remplacetas('form_datos','control',"$_SESSION[control_usuario_milfs]",'contenido'," id_campo = '$campo_password' ") ;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$_SESSION[nombre_usuario_milfs]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $validado = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$login_campo_validado' ") ;
- /*if($validado[0] != md5("$email[0]")) { $validar_email= "El email no ha sido validado $validado[0] //". md5("$email[0]")." // $email[0] ";}
- else{ $validar_email= "validado"; }
- */
- $validar_email = verificacion_email($_SESSION['nombre_usuario_milfs'],'','');
-
- //$email = "someone@somewhere.com";
- if(isset($_SESSION['avatar_usuario_milfs']) ) {
- $avatar = $_SESSION['avatar_usuario_milfs'];
- }else {
- $size="";
- $default = "https://tupale.co/milfs/images/avatar.png";
- $avatar = "https://www.gravatar.com/avatar/" . md5( strtolower( trim( $email[0] ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
- }
-
- $formulario = "
-
- Hola $_SESSION[nombre_usuario_milfs]
-
$validar_email
-
SALIR
-
- ";
- return $formulario;
- }else {
-
-/* if($_SERVER['HTTP_HOST'] !="tupale.co" ) {
- $social_login="";
- $cols="12";
- }
- else {
- */
- $cols="10";
- $social_login="
-
-
- ";
- //return $formulario;
-// }
- $formulario ="
- $accion
-
-
-
- ";
- $respuesta->addAssign("$div","innerHTML",$formulario);
-
- return $respuesta;
-
- }
-
-}
-elseif($tipo =='salir') {
- session_destroy();
- $respuesta->addScript("javascript:location.reload(true);");
-
-}
-elseif($tipo=='registrarse') {
- $modificable = remplacetas('form_id','id',$form_id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $formulario = "
Función no disponible, por favor comuníquese con el administrador código
";
- $respuesta->addAssign("$div","innerHTML",$formulario);
- return $respuesta;
-
- }
- $campos = formulario_areas('',$form_id,'campos');
-
- $boton ="
-
- Registrarse
- ";
- $control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-
- $campos
- $boton
-
-
-
- ";
-
- $respuesta->addAssign("$div","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
- if($datos =="") {
- //$campos = formulario_areas('',$form_id,'campos');
- $campos ="
-
-
Usuario
-
-
-
Código de recuperación Deja este campo vacío si aun no tienes el código de recuperación
-
-
- ";
- $boton ="
-
Solicitar clave
- ";
- $control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
- $campos
-
- $boton
-
-
-
- ";
- }else{
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- if($usuario[0] !="") {
- $password = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_password' ") ;
- if($datos[codigo] !="") {
- if( $datos[codigo] =="$password[0]" ){
- $control = remplacetas('form_datos','control',"$usuario[0]",'control'," id_campo = '$campo_password' ") ;
- $campos ="
-
-
-
-
-
-
-
- ";
-
- $formulario ="$campos";
- $respuesta->addAssign("$div","innerHTML",$formulario);
- return $respuesta;
-
-
- }else {
- $respuesta->addAlert("El código no es correcto, por favor rectifíquelo o solicítelo nuevamente dejando el campo VACIO");
- return $respuesta;
- }
- }
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $formulario="$usuario[0] $password[0] // $campo_email[0] $email[0]";
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email_empresa = remplacetas('empresa','id','1','email','') ;
- $email_empresa = remplacetas('empresa','id','1','email','') ;
- $sigla = remplacetas('empresa','id','1','sigla','') ;
- $razon_social = remplacetas('empresa','id','1','razon_social','') ;
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] <$email_empresa[0]>\r\n";
- $headers .= "Reply-To: $razon_social[0] $email_empresa[0]\r\n";
- $headers .= "Return-path: $email_empresa[0]\r\n";
- $asunto= "[ $sigla[0] ] Código para recuperar contraseña ";
- $cuerpo ="
-
Hola $datos[usuario]
- El código para recuperar tu contraseña es:
-
$password[0]
- Regresa pronto :-)
-
- ";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="
Te hemos enviado un correo a $email[0] con el código de recuperación "; }
- else {$formulario ="
Error enviando correo ";}
-
- }else{
-
- $formulario="
No encontramos tu usuario $datos[usuario] . Por favor rectifícalo y prueba nuevamente ";
-
- }
-
-
- }
- $respuesta->addAssign("$div","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='confirmar_recuperar') {
-
- if($datos['password'] != $datos['confirmar_password']) {
- $respuesta->addAlert("Los valores no son iguales");
- return $respuesta;
-
- }
- $link=Conectarse();
-
- mysqli_set_charset($link, "utf8");
-
- $consulta="UPDATE form_datos SET contenido = MD5('$datos[password]')
- WHERE control ='$datos[control]'
- AND contenido ='$datos[codigo]'
- AND form_id ='$form_id'
- AND id_campo = '$campo_password' ";
-
- if (mysqli_query($link,$consulta)){
- $resultado ="
Se cambió el password Por favor ingrese con sus nuevos datos
aquí ";
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- };
-
-
-
-}
-elseif ($tipo=='ingreso'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $password = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = MD5('$datos[password]') AND id_campo = '$campo_password'") ;
-
- if ( $usuario[0] != "" AND $password[0] !="") {
- $respuesta->addAssign("login_milfs","className"," has-success ");
- // $control_servicio = remplacetas('form_datos','form_id',"$login_formulario",'control'," BINARY contenido = '$servicio' AND control = '$control_uid[0]'") ;
- $_SESSION['usuario_milfs'] = $usuario[0];
-
- $_SESSION['nombre_usuario_milfs'] = $datos['usuario'];
- $_SESSION['control_usuario_milfs'] = $usuario[0];
- $resultado ="
Gracias por regresar $_SESSION[nombre_usuario_milfs] ";
- $respuesta->addScript("javascript:location.reload(true);");
- }else {$resultado ="
Error Los datos no son correctos :( ";
- $respuesta->addAssign("login_milfs","className"," has-error ");
- $respuesta->addAssign("div_formulario_session","innerHTML",$resultado);
- return $respuesta;
- }
-
- $respuesta->addAssign("$div","innerHTML",$resultado);
- //$respuesta->addAlert("resultado");
-
-
-}
-elseif ($tipo=='nuevo'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
-
- $campos_consulta_obligatorio="
- SELECT id_campo, obligatorio
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
- AND obligatorio='1'
- ";
-
-
- $campos_obligados= mysqli_query($link,$campos_consulta_obligatorio);
-
- while( $row = mysqli_fetch_array( $campos_obligados ) ) {
- $campo_valor=$datos[$row[id_campo]][0];
-
- if($row[obligatorio]=='1'){
- $obligatorios .= "$row[id_campo]";
- if($campo_valor == '' && $row[obligatorio]=='1'){
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $error = "Revise campos obligatorios $campo_nombre[0]";
-
- }else {$error ="";}
- if($error !=''){
- $respuesta->addAlert($error);
- $respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
- return $respuesta; }
- }
-
-
- }/// fin de registros obligatorios
-
-
-
- $campos_consulta="
- SELECT id_campo, obligatorio, id_empresa
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
-
- ";
- $campos= mysqli_query($link,$campos_consulta);
- $ip = obtener_ip();
- $control = $datos['control'];
-
- /// incluyo servicio
-
-
- while( $row = mysqli_fetch_array( $campos ) ) {
-
- $campo_valor=$datos[$row['id_campo']][0];
-
- $campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
- /// Si el campo es password (18) se guarda su equivalente en md5
- if($campo_tipo[0] =="18") {
- $campo_valor = MD5("$campo_valor");
- }
- // SI EL CAMPO ES UNICO O EMAIL SE REVISA QUE NO EXISTA
- elseif($campo_tipo[0] =="19" OR $campo_tipo[0] =="12" OR $campo_tipo[0] =="13" ) {
- $existe = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$campo_valor' AND id_campo = '$row[id_campo]'") ;
- if($existe[0] !='') {
- $respuesta->addAlert("ATENCION: El nombre de usuario o el Correo electrónico ya se encuentran registrados !");
- $respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
-
-
- return $respuesta;
- }else{
- //$respuesta->addAlert("$existe[2]"); return $respuesta;
- }
- }
- else {}
-
- if ($campo_valor !=''){
- if($control !="") {
- $graba_ip = "INET_ATON('".$ip."') ";
-
- $insertar_consulta = "
- INSERT INTO `form_datos`
- SET
- id_campo = '$row[id_campo]',
- contenido = '$campo_valor',
- control ='$control',
- timestamp = UNIX_TIMESTAMP(),
- form_id = '$form_id',
- ip = $graba_ip,
- id_empresa = '$row[id_empresa]'
- ";
- //$debug .= "$insertar_consulta / ";
-
- }else{$error="Sin código de control"; } }else{
-
-
- }
-
- if ($error ==''){
- $sql_consulta=mysqli_query($link,$insertar_consulta);
- if($sql_consulta){
- //$login = milfs_session("$form_id","$campo_usuario","$campo_password","","","$div");
- $resultado ="
Gracias por registrarse, Actualiza e ingresa con los nuevos datos. $login
";
-
-
- }else{$resultado.= "
La consulta no se grabó
";}
- }else { }
-
- }
- require ("milfs/includes/parametrizacion.php");
- $insertar_servicio = insertar_linea("form_datos","$login_formulario","$social_login_servicio","$portal_sigla",$control,"","","");
- $resultado ="
Gracias por registrarse, Actualiza e ingresa con los nuevos datos.
";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-
-}
-elseif ($tipo=='boton'){
-
- if(isset($_SESSION['usuario_milfs']) OR isset($_SESSION['id']) ) {
- //$control = remplacetas('form_datos','control',"$_SESSION[control_usuario_milfs]",'contenido'," id_campo = '$campo_password' ") ;
- $campo_email = buscar_campo_tipo("$form_id","13");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$_SESSION[nombre_usuario_milfs]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $validado = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$login_campo_validado' ") ;
- /*if($validado[0] != md5("$email[0]")) { $validar_email= "El email no ha sido validado $validado[0] //". md5("$email[0]")." // $email[0] ";}
- else{ $validar_email= "validado"; }
- */
- if(isset($_SESSION['id']) ) { $validar_email ="";}else{ $validar_email = verificacion_email($_SESSION['nombre_usuario_milfs'],'','');}
-
- //$email = "someone@somewhere.com";
- if(isset($_SESSION['avatar_usuario_milfs']) ) {
- $avatar = $_SESSION['avatar_usuario_milfs'];
- }else {
- $size="";
- $default = "https://tupale.co/milfs/images/avatar.png";
- $avatar = "https://www.gravatar.com/avatar/" . md5( strtolower( trim( $email[0] ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
- }
-
- $formulario = "
-
- $_SESSION[nombre_usuario_milfs] SALIR
- $validar_email
-
-
- ";
-
- }else{
- $formulario ="
-
- ";
- }
- return $formulario;
-}else{}
-return $respuesta;
-
-}
-$xajax->registerFunction("milfs_session");
-
-
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- $respuesta = new xajaxResponse('utf-8');
-if($valores =="") {
- $alerta = "
Por favor escriba que desea buscar ";
-$respuesta->addAssign("$div","innerHTML",$alerta);
- return $respuesta;
-}
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-
-
-
-
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form ( contenido COLLATE utf8_spanish2_ci like '%$valor%' ) group by control LIMIT 200 ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=2;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
- /* $contenido = htmlentities($row[contenido]);
- $p = stripos($contenido, $valor);
- $s1 = substr($contenido, 0, $p);
- $s2 = substr($contenido, $p, strlen($valor));
- $s3 = substr($contenido, ($p + strlen($valor)));
- $r = $s1."
$s2 ".$s3;
- */
- $datos = landingpage_contenido_identificador($row['control'],"","grid",'paginado');
- // $datos= landingpage_contenido_identificador($identificador,$form,$plantilla,$tipo);
- //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
";
-
- $encontrados .="$contenido ";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor
-
$encontrados
";
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-
-
-
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-//mysqli_real_escape_string($link,$consulta);
-$sql_total=mysqli_query($link,$consulta_total);
-$total = mysqli_num_rows($sql_total);
-$sql=mysqli_query($link,$consulta);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = $descripcion[0];
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion";
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
$buscador
-
-
-
- $contenido
-
- Mostrar mas resultados
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-
-function insertar_registro($tabla,$formulario,$div,$principal) {
- //$valores ="$formulario[0]";
- $formulario = limpiar_caracteres($formulario);
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
-
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($link,$insertar);
- $ultimo_id = mysqli_insert_id($link);
- if(mysqli_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $valores = limpiar_caracteres("$valores");
- $grupo = editar_campo("$tabla",$ultimo_id,"$principal","","","");
- $respuesta->addAssign($div,"innerHTML","
$formulario[$principal] ");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- //$respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_registro");
-
-
-
-function formulario_area_campos($perfil,$area,$control) {
- $tipo="";
- $control_edit ="$control";
- $solo_campos ="";
- $muestra_form ="";
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} $campos= "";
-
-$consulta = "
- SELECT * FROM form_campos , form_contenido_campos
- WHERE form_contenido_campos.id_form = '$perfil'
- AND form_contenido_campos.id_campo = form_campos.id
- AND campo_area='$area'
- ORDER BY form_contenido_campos.orden";
-
- $link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-
-
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- if( $row['obligatorio'] == '1'){$obligatorio="*";}else {$obligatorio='X';}
-
- //if($row['campo_tipo'] =="24") { $row['multiple'] = "1";}else {}
- //if($row['multiple'] =="1" AND $tipo =='edit'){
- if($row['multiple'] =="1" ){
- $campos .= "".formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }else{
- $campos .= "".formulario_campos_render($row['id_campo'],$perfil,$control_edit,'','');
- //$campos .= "".formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }
- $muestra_form .= "$campos $obligatorio ";
- $solo_campos .= "$campos $obligatorio ";
-
- }
-
-
-}
-
-
-$resultado = "$muestra_form ";
- return "$campos";
-
-}
-
-function formulario_areas($metadatos,$perfil,$tipo,$form_respuesta,$control_respuesta){
- $id="";
- $resultado_campos ="";
- $subir_imagen ="";
- $campo_imagen_nombre ="";
- $imagen="";
- $muestra_form="";
- if($form_respuesta =='respuesta'){$control = $control_respuesta;}
- //elseif($form_respuesta =='edicion'){$control = $control_respuesta;}
- else{
-$control = md5(rand(1,99999999).microtime());
-}
- $respuesta = new xajaxResponse('utf-8');
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- $consulta= "SELECT * , form_areas.orden FROM form_campos, `form_contenido_campos`, form_areas WHERE form_campos.campo_area = form_areas.id AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$perfil' GROUP BY form_campos.campo_area ORDER BY form_areas.orden
-
- ";
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-$cantidad= mysqli_num_rows($sql);
-if($tipo=='cantidad') { return $cantidad;}
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- //$campo_titulo = remplacetas('parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
- $descripcion = remplacetas('form_id','id',$perfil,'descripcion','') ;
- $formulario_respuesta = remplacetas('form_id','id',$perfil,'formulario_respuesta','') ;
- $empresa = remplacetas('form_id','id',$perfil,'id_empresa','') ;
- $empresa = $empresa[0];
-
- $nombre= strtoupper($nombre[0]);
- $descripcion= $descripcion[0];
- $form_respuesta= $formulario_respuesta[0];
-
-
-//// encabezado form
-
- if($tipo =='edit') {$control= $control_respuesta;}
- elseif($form_respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- //$descripcion=mysqli_result($sql,0,"descripcion");
- //$nombre=mysqli_result($sql,0,"nombre");
- //$empresa=mysqli_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$empresa",'encabezado');
- $pie = empresa_datos("$empresa",'pie');
- $logo = remplacetas('empresa','id',"$empresa",'imagen','') ;
- $cabecera = "
-
-
-
-
-
-
-
-
-
$nombre$descripcion
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($perfil,"15");
-if($campo_imagen[0] !="") {
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen_nombre = ucwords($campo_imagen_nombre);
-$campo_imagen = $campo_imagen[0];
- }
-
-
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
-if(isset($_SESSION['id_empresa']) and ($empresa == $_SESSION['id_empresa'] )) {
-$continuar_editando ="
-
-
-
- Continuar editando
-
-
-
";
-}else {$continuar_editando ="";}
-
-
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row['campo_area']=="0"){$area_nombre ="";}
- else{
- $area_nombre = remplacetas('form_areas','id',$row['campo_area'],'nombre','') ;
- $area_nombre = $area_nombre[0];
- }
- $fila = $fila +1;
-
- //$producto = remplacetas('farmacia_cum','id',$row[id_producto],'fabricante_importador') ;
- ///// para pasar el parametro de medicamentos al formulario no pos se adiciona ".func_get_arg(2)."
- $campos = formulario_area_campos($perfil,$row['campo_area'],"$control_edit");
- if($fila==1) {$activo='active'; $anterior="";}else{$activo=''; $anterior ="
Anterior";}
- if($fila == $cantidad) { $boton="
-
-
-
- $continuar_editando
-
-
-
- ";}
- else{
- $boton=" $anterior
-
Siguiente ";
- }
- if($tipo=='campos') {
- $boton ="" ;
- }else{ $boton= $boton;}
-$resultado_campos .= "
-
-
-
- $fila. $area_nombre
- $campos
-
-
-
$boton
-
-
- ";
-$controladores .= "
- $fila. $area_nombre
-
-
-
-";
- }
-
-
-//// botonera form
-
-
-$metadatos = json_encode($metadatos);
-$muestra_form = "
-
-
-
-
-
-
-
-
-
-
-
-
- .
- $resultado_campos
-
-
-
-
-
-
-
-
-
-
- ";
-
-//// fin botonera form
-
- }
-
-//// cierre form
-
-$muestra_form .="
-
-";
-if($tipo=='campos') {
-
- $resultado = "$resultado_campos $imagen ";
- return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "$muestra_form";
-return $resultado;
-
-}
-
-$resultado = "$muestra_form";
-return $resultado;
-
-/// fin cierre form
- // $resultado .= "$consulta";
-//$respuesta->addAssign($div,"style.display","block");
-//$respuesta->addAssign($div,"innerHTML",$resultado);
-//return $respuesta;
- //print $muestra_form;
-// return $muestra_form;
- }
-
- $xajax->registerFunction("formulario_areas");
-
-
-
-function tabla_areas($tabla,$value,$descripcion,$onchange,$where,$nombre,$div){
- $group ="";
- if($div =="") {
- $div="div_campos";
- $resultado = "
-
Modificar areas
- ";
- return $resultado;
- }
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$campo3 = $campos[2];
-$campo4 = $campos[3];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_set_charset($link, "utf8");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="group by $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT * FROM $tabla WHERE 1 $w AND id_empresa='$_SESSION[id_empresa]' $group ORDER BY orden ";
-$sql=mysqli_query($link,$consulta);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-
-$resultado="
-$name
-Id $campo1 $campo2 $campo3 $campo4
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$editar_campo1= editar_campo("$tabla",$row['id'],"$campo1","","","","");
-$editar_campo2= editar_campo("$tabla",$row['id'],"$campo2","","","","");
-$editar_campo3= editar_campo("$tabla",$row['id'],"$campo3","","","","");
-$editar_campo4= editar_campo("$tabla",$row['id'],"$campo4","","","","");
-$eliminar = " ";
-$resultado .= "$row[$value] $editar_campo1 $editar_campo2 $editar_campo3 $editar_campo4 $eliminar ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados 0003
";
- }
-
-$resultado .= "
-
-
-
-
-
-Agregar área
-
-
-
-
-
-
-
-
-
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("tabla_areas");
-
-
-
-
-function importar_coleccion($form){
-$div ="confirmar_importacion";
-//$archivos = listado_archivos("$form[path]");
-//$archivos = listar_archivos("$form[path]",'cantidad','',$form);
-
- $directorio = opendir("$form[path]"); //ruta actual
-$resultado = " ";
-while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
-{
- if (is_dir($archivo))//verificamos si es o no un directorio
- {
- // $resultado .= "[".$archivo . "]
"; //de ser un directorio lo envolvemos entre corchetes
- }
- else
- {$autor="";
- $ext = explode(".", $archivo);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {
- $cantidad_imagenes++ ;
-
- $exif = leer_exif("$form[path]/$archivo");
- //$name = $exif['exif']['FileName']." ".$form['38']['0']."*" ;
- $form['0']['0'] = "$archivo";
- $autor= $exif['exif']['Artist'];
- $creator = $form['40'][0];
- if($autor !="" ) { $remplazo = array('40' => array("$autor")); }else{ $remplazo; }
-
- }
- //$form = array_replace_recursive($form, $reemplazo);
- $resultado .= $archivo ." / $name ".$form['0'][0]."
";
- }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= "( $c : $V )
";
- if($V != '') {
- }
- }
-}
-}
-*/
-//$resultado="$archivos $campo";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("importar_coleccion");
-
-
-
-
-function listar_archivos( $path ,$opcion, $div,$datos){
- // Abrimos la carpeta que nos pasan como parámetro
-
- $resultado ="";
- //$link = Conectarse();
- $dir = opendir($path);
- $cantidad =0;
- $cantidad_imagenes =0;
-//$datos['61'] = array ( 0 => "otro valor");//"OTRO VALOR";
- if(is_file($path)) {$esarchivo="Escriba la ruta a un directorio en el servidor
"; }
- // Leo todos los ficheros de la carpeta
- //if($esarchivo =="") {
- // $elemento = readdir($dir);
- //}
- while ($elemento = readdir($dir) ){
-
- // Tratamos los elementos . y .. que tienen todas las carpetas
- if( $elemento != "." && $elemento != ".."){
- // Si es una carpeta
- if( is_dir($path.$elemento) ){
- // Muestro la carpeta
- // $resultado .= "
CARPETA: ". $elemento ."
";
- // Si es un fichero
- } else {
- $ext = explode(".", $elemento);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {$cantidad_imagenes++ ;
-
- $exif = leer_exif("$path/$elemento");
- $name = $exif['exif']['FileName'];
- $title= "$name ";
- $date= $exif['exif']['DateTimeOriginal'];
- $autor= $exif['exif']['Artist'];
- if(!isset($autor)) { $autor = $datos['40'][0]; }
- $licencia= $exif['exif']['Copyright'];
- if($licencia ==="") { }
- else{
-// $datos['61'][0]= " XX $licencia XXX";
- }
-
-
- //$datos['61'][0] = $licencia;
- if(isset($exif['exif']['UndefinedTag:0xC4A5'])) {
- $exif['exif']['UndefinedTag:0xC4A5']= base64_encode($exif['exif']['UndefinedTag:0xC4A5']);
- }
- if(isset($exif['exif']['MakerNote'])) {
- $exif['exif']['MakerNote']= base64_encode($exif['exif']['MakerNote']);
- }
- if ( $exif['lon'] =="" )
- {
- $geo = $datos['58'][0];
- $mundo ="";
- $datos['58'][0] = $datos['58'][0];
-
- }
- else {
- $geo = "$exif[lon] $exif[lat] 18" ;//$datos['58'][0];
- $mundo ="
";
- $datos['58'][0]= "$geo";
-
-
- }
-
- // $remplazos = array('40');
- // else { $mapa="";}
- //$json = json_encode($exif['exif'],JSON_PRETTY_PRINT);
- //if ( $exif['lon'] =="" ){$datos['58'][0] = $geo;}else {$datos['58'][0] = $datos['58'][0];}
- $resultado .= "
$geo $mundo / ".$datos['58'][0]." ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]." ";
-
- }
-
- $cantidad ++;
-
- $campo .= "";
-
-
- }
- }
-
- }
-
-
- if($div !="" ) {
- if($opcion == "cantidad") {
- $resultado = "
-
- $esarchivo $cantidad archivos, $cantidad_imagenes imágenes jpg, $mapa georeferenciadas
-
-
";
- }
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }else {
-
-
-
- return " $campo $resultado"; }
-}
-$xajax->registerFunction("listar_archivos");
-
-
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( "$file" );
- $resultado['exif'] = $exif;
- $resultado['file']= $file;
- $resultado['FileName']=$exif['FileName'];
-
-if($exif === false) {
-//return false;
-}
-
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado['lat'] = $gps_latitude;
- $resultado['lon'] = $gps_longitude;
-
- //$resultado = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
- }else{}
-
-}
-
-
- $resultado['DateTime'] = $exif['DateTimeOriginal'];
- $resultado['estado'] = "oK";
-
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-
-function relacion_render($form_id,$id_campo,$valor,$cantidad,$plantilla){
-$valor_actual = "";
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit=='0' or $limit ==''){$limit = "LIMIT $limit";}
- else {$limit = "";}
-if($valor !="") {
- if($plantilla =="") {$plantilla= "relacion";}
-$valor_actual = contenido_mostrar("$formulario",$valor,'',"$plantilla");
-if($plantilla == 'relacion_drop') { $link ="";} else{
-$link = "
Ver referencia ";
-}
-}
-
- return " $valor_actual $link";
-$div ="div_relacion_$name";
-
-$consulta = "SELECT DISTINCT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','relacion')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[control] == "$valor") {
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados 0004
";}
- return $resultado;
-}
-$xajax->registerFunction("relacion_render");
-
-function buscador_base($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_base_$name";
-$onchange = " xajax_buscador_select_base('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select_base('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_base");
-
-
-function buscador_select_base($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_base_$name";
- $resultado="";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves_original ="$claves[0]";
-$claves = $claves[0];
-
-
- $claves = explode(' ',$claves);
- $tabla = explode(':',$claves[0]) ;
- $tabla = $tabla[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion1 = explode(':',$claves[2]) ;
- $descripcion1 = $descripcion1[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $descripcion3 = explode(':',$claves[4]) ;
- $descripcion3 = $descripcion3[1];
- $crue = explode(':',$claves[5]) ;
- //$crue = $crue[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT * FROM $tabla WHERE $descripcion1 like '%%$valor%%' $where GROUP BY $key limit 50 ";
-
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-//$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-//$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if(@$row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select_base");
-
-
-
-function buscador_campo($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_$name";
-$onchange = " xajax_buscador_select('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_campo");
-
-
-function imprimir_buscador_campo($id_campo,$valor,$plantilla) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0] $campo2[0]";
-
-
- if($plantilla =="") {$plantilla= "buscador";}
- $valor_actual = contenido_mostrar("$formulario",$valor,'',"$plantilla");
- if($plantilla == 'buscador_drop') { $link ="";} else{
- $link = "
Ver referencia ";
- }
- return "$valor_actual $link";
-}
-
-function imprimir_buscador_campo_key($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0]";
- return $imprimir;
-}
-
-function imprimir_base($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $campo1 = remplacetas("$formulario","$key","$valor","$descripcion","");
- $campo2 = remplacetas("$formulario","$key","$valor","$descripcion2","");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function buscador_select($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_$name";
- $lista="";
- $resultado="";
- $aviso="";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $limite='50';
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-$consulta_paginacion = "SELECT control FROM form_datos WHERE contenido LIKE '%%$valor%%' and form_id ='$formulario' and ( id_campo ='$key' OR id_campo = '$descripcion' ) GROUP BY control ";
-//$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and (id_campo ='$key' OR id_campo ='$descripcion' )AND contenido like '%%$valor%%' GROUP BY control limit 15 ";
-$consulta = "SELECT contenido, control ,id_campo FROM form_datos WHERE contenido LIKE '%%$valor%%' and form_id ='$formulario' and ( id_campo ='$key' OR id_campo = '$descripcion' ) GROUP BY control limit $limite ";
-
-$sql=mysqli_query($link,$consulta);
-$sql_paginacion=mysqli_query($link,$consulta_paginacion);
-$cantidad = mysqli_num_rows($sql_paginacion);
-
-if (mysqli_num_rows($sql)!='0'){
-
- if($limite < $cantidad) { $alert="warning"; $aviso ="Mostrando $limite de $cantidad registros";}else { $alert="success";}
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $lista.= "
- $campo_key[0] $campo_descripcion[0] ";
-
- }
-
-$resultado .= "
-
-
-
$aviso
";
- }else{$resultado = "
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select");
-
-
-
-function relacion_select($id_campo,$form_id,$valor,$name,$control,$tipo){
-$link=Conectarse();
-$valor_actual ="";
-mysqli_set_charset($link, "utf8");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit=='0' or $limit ==''){$limit = "";}
- else {$limit = "LIMIT $limit";}
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$sql=mysqli_query($link,$consulta);
-
-
-if (mysqli_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','relacion')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados 0006
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_select");
-
-function combo_select($id_campo,$form_id,$valor,$name,$control,$control_combo){
- $selected="";
- $onchange="";
- $and="";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if($control_combo !="") {
- $div ="combo_$name";
-$and ="AND campo_valor LIKE '$control_combo:%%'";
-}else{
-$onchange ="xajax_combo_select('$id_campo','$valor','$valor','$name','$control',(this.value)) ";
-$div ="combo_$name";
-$name ="primario_$name";
-}
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' $and ";
-$sql=mysqli_query($link,$consulta);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado=" $valor
-Seleccione
- " ;
- // $resultado = array_unique($entrada);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campos = explode(':',$row['campo_valor']);
-
- IF($control_combo ==""){
- $campo_primario[]=$campos[0];
- $campo_primario = array_unique($campo_primario);
- }
- else {
- $campo_primario[] = "$campos[0] $campos[1]";
- }
- //$identificador = $identificador[0];
-//if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-//$resultado .= " $campos[0] ";
- }
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "$V ";
-}
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados 0007
";}
-if($control_combo =='') {
- return $resultado;
- }
-else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-$xajax->registerFunction("combo_select");
-
-
-function aplicacion_carrusel($id,$registros,$pagina,$tipo,$orden,$plantilla){
-
- $form=$id;
- $campo = buscar_campo_tipo($id,"15");
- $id_campo = $campo[0];
- if($id_campo[0] =="") {
- $mensaje="
La aplicación no tiene imágenes
";
- return $mensaje;
- }
-
-/* $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
- $descripcion = $descripcion[0];
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
- $campo_titulo = $campo_titulo[0];
- */
- $consulta_principal ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by id DESC ";
- $link=Conectarse();
-
-
- $sql_total=mysqli_query($link,$consulta_principal);
- $total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
- if($registros=="") { $registros="$total_registros"; $origen="url";}
- /// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio , $registros ";}
- $consulta_limite = $consulta_principal.$limite;
- mysqli_real_escape_string($link,$consulta_limite);
- $sql=mysqli_query($link,$consulta_limite);
-
- //$sql=mysqli_query($link,"$consulta $w_limite");
- // $cantidad = mysqli_num_rows($sql);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-//$fecha = time ();
-// $ahora = date ( "Y-m-d" , $fecha );
-// $campos = listar_campos_formulario($id_form,"select");
-
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
-
- if(isset($_REQUEST[registros])) {
- $href_1 = "$origen®istros=$registros&pagina=1&orden=$orden";
- $href_2 = "$origen®istros=$registros&pagina=".($pagina-1)."&orden=$orden";
- }
- else {
- $href_1= "#cabecera#";
- $href_2= "#cabecera#";
- }
- //consultar_contenido_formulario($form,$registros,$pagina,$tipo,$orden,$plantilla)
- ///aplicacion_carrusel($tipo,$id,$plantilla,$datos,$pagina,$registros)
- ///aplicacion_carrusel('','$id',$plantilla,'$orden','1','$registros')
-
- $link .= "
-
";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
-
- if(isset($_REQUEST['registros'])) {
- $href_3 = "$origen®istros=$registros&pagina=$x&orden=$orden";
- }
- else {
- $href_3= "#cabecera#";
- }
- if ($page == $x){
- $link .= "
$x ";
- }else{
- $link .= "
$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- {
- if(isset($_REQUEST['registros'])) {
- $href_4 = "$origen®istros=$registros&pagina=".($pagina+1)."&orden=$orden";
- $href_5 = "$origen®istros=$registros&pagina=$pages&orden=$orden";
- }
- else {
- $href_4= "#cabecera#";
- $href_5= "#cabecera#";
- }
- $link .= "
-
"; }
- }
- $paginacion = "";
- $encabezado = "
-
-
-
-
Los resultados se muestras en grupos de $registros registros
-
- $paginacion
-
-
-
";
-
-// $total_registros = mysqli_num_rows($sql);
-/* $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "
$nombre ";
- }
- */
-// $listado_nombres = "
Identificador $listado_nombres ";
-///$listado_campos = listar_campos_formulario("$id_form",'');
- //$descripcion = remplacetas('form_id','id',$id_form,'descripcion','') ;
- //$descripcion_limpia = strip_tags($descripcion[0]);
- ///$nombre = remplacetas('form_id','id',$id_form,'nombre','') ;
- //$cabecera="
$nombre[0] $descripcion[0]";
-mysqli_data_seek($sql_total, 0);
-$ordenado = 0;
-$con_plantilla = remplacetas('form_parametrizacion','campo',$form,'descripcion'," tabla='form_id' and opcion = 'plantilla:$plantilla'") ;
-
-$campo_titulo = remplacetas('form_parametrizacion','campo',$form,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- //$titulo = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
- if($campo_titulo[0] !="") {
- $campo_nombre= $campo_titulo[0];
- }
- else {
- $campo_nombre = formulario_campo_semantico("nombre","$form",'preciso','');
- //$titulo = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo = '$campo_nombre'") ;
- }
-
-
-//$con_plantilla = $con_plantilla[0];
-while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- if($ordenado === 0) {$activo = "active";}else{$activo="";}
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-$imagen = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo = '$id_campo'") ;
- if( $con_plantilla[0] =="" AND $id_campo !="") {
-
- $titulo = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo = '$campo_nombre'") ;
- $contenido_desplegado ="
-
-
-
-
$titulo[0]
- $campo_limpio[562]
-
-
-
-
-
- ";
-
- }
-
-
- $items .= "
- $contenido_desplegado
-
";
-
-
-
- $indicadores .= "
";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- //$contenido .= "$contenido_desplegado ";
- $ordenado = ($ordenado +1 );
-
- }
- $items .= "
";
- $indicadores .= "
-
";
-$scripts ="
-
-
-
-";
-
-$carrusel="
-
- $indicadores
-
-
- $items
-
-
-$scripts
-";
- $contenido = "
$carrusel
";
-
-
- }else {}
-
-
- if($tipo =="") {
- // $respuesta->addAssign("contenido_interior","innerHTML","$div_contenido");
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("mostrar_carrusel","innerHTML","$contenido");
- $respuesta->addScript("
-
-
- $('.slider-for1').slick({
- slidesToShow: 1,
- slidesToScroll: 1,
-
- fade: true,
- asNavFor: '.slider-nav1'
- });
- $('.slider-nav1').slick({
- slidesToShow: 3,
- slidesToScroll: 1,
- asNavFor: '.slider-for1',
- adaptiveHeight:true,
- centerMode: true,
- focusOnSelect: true,
- responsive: true,
- arrows: false,
- variableWidth:true
- });
-
-
- ");
- return $respuesta;
- }
- elseif($tipo =="contenido" OR $tipo =="embebido" ) {
- return $contenido;
- }
-}
-
-$xajax->registerFunction("aplicacion_carrusel");
-
-function formulario_embebido($id,$opciones){
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- if($publico[0] =="0" AND @$_SESSION['id_empresa'] != $empresa[0] AND $propietario[0] != @$_SESSION['control_usuario_milfs'] ) {
- $resultado = "
";
- //$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- // $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$empresa[0]",'pie');
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $resultado;
- }
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
- $impresion = formulario_areas('',$id,"embebido",'','');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- //$visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
-
-
-
$formulario_nombre[0]$formulario_descripcion[0]
- $impresion
-
-
-
-
-
-
-
";
- return $muestra_form ;
-}
-
-
-function formulario_embebido_ajax($datos,$id,$opciones,$tipo){
-
- $respuesta = new xajaxResponse('utf-8');
-
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $encabezado = empresa_datos("$id_empresa[0]",'encabezado');
- $pie = empresa_datos("$id_empresa[0]",'pie');
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $cabecera = "
-
-
-
- $encabezado
-
-
-
$formulario_nombre[0] $formulario_descripcion[0]
-
-
-
";
- $publico = remplacetas('form_id','id',"$id",'modificable',"") ;
- $equipo = remplacetas('form_datos','control',$opciones,'equipo',"") ;
- if($publico[0] =="0" AND $_SESSION[id] =="") {
- $resultado = "
Ingresa con tu usuario para agregar datos a esta aplicación. ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
-
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
-
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "$permiso_identificador
Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
-
-if($equipo[0] =="" OR is_null($equipo[0]) ) {}else{
-if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0] )){
- $aviso = "
-
ATENCIÓNNo está autorizado Para modificar esta información pertenece a un grupo de trabajo diferente";
-
- $resultado = "
-
- $salir
- $aviso
-
-
- ";
-// $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
-
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-}
-}
- if($tipo =='edit' AND ($_SESSION['id_empresa'] !== $id_empresa[0] AND $_SESSION['id'] != $propietario[0] )AND $permiso_identificador != $opciones) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
-
- $resultado ="$cabecera
-
- $salir
- $aviso
- $seguridad
-
- $pie
- ";
-
-
-
- // return $resultado;
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
-
-
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
- }
-
- // return "Hola mundo";}
-
- if($tipo=="respuesta") { $form_respuesta = "respuesta";}else {$form_respuesta="";}
- $impresion = formulario_areas($datos,"$id","$tipo","$form_respuesta","$opciones");
- $cantidad_areas = formulario_areas('',"$id","cantidad","$form_respuesta","$opciones");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- //$visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
-
-
- $impresion
-
-
-
- ";
- // return $muestra_form ;
-
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- //$div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("
-$('.next').click(function(){
-
- var nextId = $(this).parents('.tab-pane').next().attr('id');
- $('[href=#'+nextId+']').tab('show');
- return false;
-
-})
-
-$('.prev').click(function(){
-
- var prevId = $(this).parents('.tab-pane').prev().attr('id');
- $('[href=#'+prevId+']').tab('show');
- return false;
-
-})
-
-$('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {
-
- //update progress
- var step = $(e.target).data('step');
- var percent = (parseInt(step) / $cantidad_areas ) * 100;
-
- $('.progress-bar').css({width: percent + '%'});
- $('.progress-bar').text('Paso ' + step + ' de $cantidad_areas' );
-
- //e.relatedTarget // previous tab
-
-})
-
-$('.first').click(function(){
-
- $('#myWizard a:first').tab('show')
-
-})
-
- ");
-
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- ///if($tipo =="edit") {return $muestra_form;}
- return $respuesta;
-
-}
-$xajax->registerFunction("formulario_embebido_ajax");
-
-function formulario_embebido_campos($id,$opcion){
- $impresion = formulario_modal("$id",$form_respuesta,$control,"$opcion");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $muestra_form = "
-
-
$formulario_nombre[0]
-
$formulario_descripcion[0]
- $impresion
-
-
-
";
- return $muestra_form ;
-}
-
-function json($datos){
- $limite="";
- if(isset($datos['start']) AND isset($datos['end'])) {
- $campo = buscar_campo_tipo($datos['id'],"32");
- if($campo[0] =="") {
- $campo = buscar_campo_tipo($datos['id'],"11");
- }
- $w_rango ="( form_datos.id_campo = $campo[0] ) AND ( DATE(contenido) BETWEEN DATE('$datos[start]') AND DATE('$datos[end]') ) AND ";
- $limite ="limit 200";
-
- }
-
-
-
- if(!isset ($datos["tipo"] )) { $datos["tipo"]="";}
- if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND form_id.publico = '1' "; $w_publico = "WHERE form_id.publico = '1' "; }
- else {
- $publico = "AND form_id.id_empresa = '$_SESSION[id_empresa]'";
- $w_publico = "WHERE form_id.id_empresa = '$_SESSION[id_empresa]' ";
- }
- $datos = mysql_seguridad($datos);
- $link=Conectarse();
-mysqli_set_charset($link, "utf8");
- if($datos["id"] !=''){
-
- //$id_campo = remplacetas('form_datos','id',$row["id"],'id_campo',"") ;
- //$campo_tipo = remplacetas("form_campos","id",$row["id_campo"],"campo_tipo","");
-
- if($datos["tipo"] =='simple') {
- $campos ="control " ;
- $consulta = "SELECT $campos, form_id.id as form_id ,form_datos.id as id_dato
- FROM `form_datos` , `form_campos` ,form_id
- WHERE $w_rango form_datos.id_campo = `form_campos`.id
- AND form_datos.form_id = `form_id`.id
- AND (form_id = '$datos[id]' )
- $publico
- GROUP BY form_datos.control
- ORDER BY form_datos.timestamp DESC $limite ";
-
- $sql = mysqli_query($link,$consulta) or die("Error al ejecutar consulta 03 ");
- // $features['consulta'] = $consulta;
- if (mysqli_num_rows($sql)!='0'){
- $i = 1;
- $features = array();
-
- while($row = mysqli_fetch_array( $sql ))
- {
-
-
-
- if($datos["tipo"]=="simple"){
-
- $id_campo = @remplacetas('form_datos','id',$row["id_dato"],'id_campo',"") ;
-
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $nuevos_datos = $datos;
- $nuevos_datos["identificador"]="$row[control]";
- $nuevos_datos["tipo"]="array";
- $features[] = datos_array($row["control"],"$datos[id]","") ;
-//$features['consulta'] = $consulta;
- }
- else {
- // $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
- }
-
-
- if($datos["tipo"] == "array" ) {
- $resultado = $features;
- }else {
-
- $resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
- }
- return $resultado;
-
- }
- else {
- $campos ="form_datos.id as id_dato, form_datos.form_id AS
- id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
- id_campo , contenido ,timestamp, control as identificador ,
- form_datos.orden" ;
- $consulta = "SELECT $campos
- FROM `form_datos` , `form_campos` ,form_id
- WHERE form_datos.id_campo = `form_campos`.id
- AND form_datos.form_id = `form_id`.id
- AND (form_id = '$datos[id]' )
- $publico
- ORDER BY form_datos.control ,form_datos.timestamp ";
- }
- //return $consulta;
-
- }
- elseif($datos["identificador"] !=''){
- if($datos["tipo"] =='simple') {$campos ="form_campos.id as id_campo, form_datos.id as id_dato " ;}
- else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
- id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
- id_campo ,contenido ,timestamp, control as identificador ,
- form_datos.orden" ;}
-
- $consulta = "SELECT $campos
- FROM `form_datos` , `form_campos` ,form_id
- WHERE form_datos.id_campo = `form_campos`.id
- AND form_datos.form_id = `form_id`.id
- AND (control = '$datos[identificador]' )
- $publico
- ";
- }
- elseif($datos["dato"] !=''){
- if($datos["tipo"] =='simple') {$campos ="form_campos.id as id_campo,
- form_datos.id as id_dato " ;}
- else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
- id_formulario, nombre as formulario, nombre as formulario,
- campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp,
- control as identificador, form_datos.orden" ;}
- $consulta = "SELECT $campos
- FROM `form_datos` , `form_campos` ,form_id
- WHERE form_datos.id_campo = `form_campos`.id
- AND form_datos.form_id = `form_id`.id
- AND (form_datos.id = '$datos[dato]' )
- $publico
- ";
- }
- else {
- $consulta = "SELECT id as form_id, nombre as form_nombre, descripcion
- as form_descripcion , creacion , publico AS contenido_publico ,
- modificable AS formulario_publico
- FROM form_id $w_publico";
- }
-
-
-$sql = mysqli_query($link,$consulta) or die("Error al ejecutar consulta 04 ");
- if (mysqli_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-$mostrar = mostrar_areas($datos['id'],"","","api");
-//$mostrar .= " identificador $datos[identificador] ";
-//print_r($consulta);
-// $features[] = $consulta;
- while($row = mysqli_fetch_array( $sql ))
- {
- //$nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $id_campo = remplacetas('form_datos','id',$row["id_dato"],'id_campo',"") ;
- $formulario = remplacetas('form_datos','id',$row["id_dato"],'form_id',"") ;
- $campo_tipo = remplacetas("form_campos","id",$row["id_campo"],"campo_tipo","");
- //// PRIVACIDAD
- $privado = remplacetas('form_parametrizacion','campo',"$formulario[0]",'opcion'," tabla='form_id' AND descripcion ='$id_campo[0]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = @$privado[1];
- /// PRIVACIDAD
- if($privado !='1') {
- if($datos['tipo']=="simple"){
- $contenido = remplacetas('form_datos','id',$row["id_dato"],'contenido',"") ;
- $contenido_limpio = html_entity_decode("$contenido[0]");
- $id_campo = remplacetas('form_datos','id',$row["id_dato"],'id_campo',"") ;
-
- $nombre_campo =remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $features[] = "'$nombre_campo[0]' : '$contenido_limpio'";//$row[id_campo];
- }
- else {
- if($campo_tipo[0] == '31') {
- $link_url = "$_SESSION[site]milfs/archivos/?archivo=$row[contenido]";
- $row['contenido']= $link_url;
-
- }
- $row["contenido"] = html_entity_decode("$row[contenido]");
- $features[] = $row;
- }
- }
-
- $i++;
- }
-
-
-
-}
-
-if($datos["tipo"] == "array" ) {
-$resultado = $features;
-}else {
-
-//$resultado = json_encode($mostrar,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-
-return $resultado;
-}
-
-
-
-
-
-function imprime_geojson($id,$id2,$plantilla,$busqueda){
- $id_form = mysql_seguridad($id);
- $id_form2 = mysql_seguridad($id2);
- $campo = buscar_campo_tipo($id_form,"14");
- $campo2 = buscar_campo_tipo($id_form2,"14");
- $id_campo = $campo[0];
- $id_campo2 = $campo2[0];
- $busqueda = explode(':',$busqueda);
- if($busqueda[1] !="") {
- $consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data FROM `form_datos` WHERE (form_id = '$id_form' $w_id2 AND id_campo ='$busqueda[0]' AND contenido COLLATE utf8_spanish2_ci like '%$busqueda[1]%' ) group by control ORDER BY orden desc";
-
- }
-
- else{
-
-$consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data
-FROM `form_datos`
-WHERE (form_id = '$id_form' $w_id2 )
-AND ( id_campo ='$id_campo' $or_2 )
-group by control
-ORDER BY orden desc";
- }
-
- if($id_form2 !=""){$w_id2 =" OR form_id = '$id_form2'"; $or_2 ="or id_campo = '$id_campo2'";}
-
-$link=Conectarse();
-
-
-//return $consulta;
-
- mysqli_set_charset($link, "utf8");
- $sql = mysqli_query($link,$consulta) or die("Error al ejecutar consulta 05 ");
-
- $cantidad = mysqli_num_rows($sql);
- if (mysqli_num_rows($sql)!='0'){
- $id = 1;
- $features = array();
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $marcador = array();
- $propiedades = array();
- $identificador = explode(',',$row[data]);
- $localizacion = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo = '$id_campo'") ;
-
- $identificador = $identificador[0];
- //$campos = explode(" ",$identificador);
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- $formulario = formulario_imprimir($row[id],$row[control],"$plantilla");
-
- $marcador["type"] = "Point";
- $marcador["coordinates"] = array($lat,$lon);
- $propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
- //$propiedades[description] ="HOLA MUNDO";
- //$propiedades[buscar] ="$consulta ";
- $propiedades[localizacion] ="$localizacion[0] ";
- if($cantidad < 300) {
-
-
- }
- else {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id_form,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-
- $titulo = remplacetas('form_datos','id_campo',$campo_titulo[0],'contenido'," control = '$row[control]' ") ;
-
- $propiedades[description] ="$titulo[0]"; }
- //$propiedades[description] ="
$formulario
";
- $propiedades[description] ="$formulario";
- $propiedades[icon][iconSize] =[60];
- //$propiedades[icon][shadowSize] =[70,70];
- //$propiedades[icon][shadowUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
-
- //$propiedades[title] ='Hola mundo';
- if($propiedades[icon][iconUrl] =="") {
- $icono_imagen = buscar_imagen("$id_form",$row['control'],"","");
- //$propiedades[icon][iconUrl] = "$_SESSION[site]/milfs/images/iconos/negro.png";
- $propiedades[icon][iconUrl] = "$_SESSION[url]images/secure/?file=150/$icono_imagen";
- }
- //$propiedades[sounds] ="";
- //$propiedades[url] ='';
-
- $geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)."},";
- $features[] = $marcador;
-
- $id++;
- }
-
-}
-//-75.58295 6.25578 16
-
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
- \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
- \"type\": \"FeatureCollection\",
- \"features\": [$geometria ]}";
-return $geometria;
-}
-
-
-function aplicacion_presentacion($id,$div,$timeout){
- if($timeout < '1000') {$timeout =5000;};
- $respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT * FROM form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$control = mysqli_result($sql,0,control);
-$impresion = formulario_imprimir("$id","$control","");
-
- }
-$siguiente = "
SIGUIENTE ";
-if($div ==''){
- $presentacion = "
$siguiente $impresion
";
- }else{
- //$respuesta->addAlert("$consulta");
- $respuesta->addScript("setTimeout(function(){xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout')},$timeout)");
- $respuesta->addAssign("$div","innerHTML","$siguiente $impresion");
- return $respuesta;
- }
-return " $presentacion";
-
-
-}
-$xajax->registerFunction("aplicacion_presentacion");
-
-function aplicaciones_listado($id_empresa,$id_form,$tipo,$div){
- $onclick ="";
- $contenido = "";
- $accion = "";
- $resultado_li = "";
- $resultado = "";
- $resultado_banner = "";
- $resultado_inicial = "";
- $resultado_final = "";
- $resultado_grid = "";
- $contenido_listado = "";
- $resultado_nav = "";
- $w_form = "";
- $divider = "";
- $categoria = "";
- if($id_empresa !=''){
- if($id_form !="") {$w_form = " AND id = '$id_form'";}
- $w_publico =" publico ='1'";
- $w_empresa = " AND id_empresa = '$id_empresa' ";
- //$consulta = "SELECT * , form_id.id as id_formulario FROM form_id WHERE $w_publico $w_form $w_empresa ORDER BY orden asc limit 10 ";
- $consulta = "SELECT * , form_id.id as id_formulario FROM form_id WHERE $w_publico $w_form $w_empresa ORDER BY orden asc ";
- //xajax_contenido_parallax('$row[id]');
- }
- else {
- $consulta = "SELECT *, razon_social as nombre , form_id.id as id_formulario FROM empresa, form_id WHERE empresa.id = form_id.id_empresa AND form_id.activo = '1' AND form_id.publico ='1' group by empresa.id ORDER BY empresa.id DESC ";
-
- }
- //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";}
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($link,$consulta);
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado_li .= "
";
- }else {$resultado_li = "";}
-
-if($tipo =='li') { return $resultado_li.$resultado;}
-elseif($tipo =='nav') { return $resultado_nav;}
-elseif($tipo =='grid') {
-if($div !="") {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado_grid");
- return $respuesta;
- }else{
- return $resultado_grid;
- }
-}
-elseif($tipo =='banner') { return $resultado_banner;}
-elseif($tipo =='carrusel') { return $resultado_carrusel;}
-elseif($tipo =='sitemap') { return $resultado."sitemap";;}
-else {return $resultado;}
-}
-$xajax->registerFunction("aplicaciones_listado");
-
-
-function contenido_aplicacion($id,$plantilla){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
-
- $control = mysqli_result($sql,0,"control");
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysqli_data_seek($sql, 0);
-
- //$contenido = "
$nombre[0] ";
- $contenido = "
$descripcion[0] ";
-
- $orden = 0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- //return "$row[form_id] $row[control] $plantilla";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado
";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- if($id[0] =="") {$aviso = "
No se ha definido una aplicación con el nombre $nombre ";
- return $aviso;}
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
-
- mysqli_data_seek($sql, 0);
- $contenido = " ";
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado ";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-
-
-function contenido_parallax($id){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- $contenido = "";
- mysqli_data_seek($sql, 0);
-
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- //$orden = $orden+500;
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'','contenido');
-
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $nav_li .="
-
- ";
- $style .=" a[id= '$row[control]']:target ~ #main_$id article.article
- {
- -webkit-transform: translateY(-$orden"."px);
- transform: translateY( -$orden"."px );
- } ";
- $links .= "
";
- $contenido .= "
-
- $contenido_desplegado
-
- ";
- $orden = $orden +800;
- }
- $contenido = "
-
-
- $links
-
-
-
-
- ";
- }
-
-//return " $contenido";
- $respuesta->addAssign("$div","innerHTML","$contenido");
- return $respuesta;
-
-}
-$xajax->registerFunction("contenido_parallax");
-
-function contenido_timeline($id){
-$div = "contenedor";
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- //$contenido = "
";
-//}else {$resultado ="
No se encontraron resultados "; return $resultado;}
-//if($id=="6" OR $id=="10") {
- $plantilla="";
- $class="";
- if($tipo =="array") {
- return $array;
-}
- if($tipo !="" AND (!is_numeric($tipo)) AND $tipo !="metadatos" ) {
-////Usa una plantilla apra cada id
-
-$plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
-$plantilla = $plantilla[0];
-if($plantilla =="") {
-///Usa una plantilla generica por nombre
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = ''") ;
-$plantilla = $plantilla[0];
-//$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = '$id' ") ;
-}
-if($plantilla !='') { $plantilla = html_entity_decode ( $plantilla );}
-/*else {
-$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"") ;
-$plantilla= $plantilla[0];
- }
- */
- }
-if($plantilla != ""){
-@eval("\$plantilla = \"$plantilla \";");
- $full ="$plantilla";
- /// $full = preg_replace("/<[^\/][^<>]*> *<\/[^<>]*>/", "", $full );
-
- }else {
- $full= "
$resultado
";
- }
-
- $resultado ="$full";
-
- return $resultado;
-
-// }else {$resultado ="
No se encontraron resultados "; return $resultado;}
- }else {$resultado =""; return $resultado;}
-}
-
-
-function subir_imagen($respuesta,$id){
-$resultado ="";
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//this.form.taget= 'ventana'; this.form.action = 'destinoEspecial.html'; this.form.submit()"
-
-if($id =="") {
- $empresa = $_SESSION['id_empresa'];
- $javascript = "../milfs/includes/upload.php";
- $path = "milfs/";
-}
-else {
-// require("includes/datos.php");
-$id_empresa = remplacetas('form_id','id',"$respuesta",'id_empresa','');
-$empresa= $id_empresa[0];
-$web = remplacetas('empresa','id',"$empresa",'web','');
-//000 $javascript = "$_SESSION[site]/milfs/includes/upload.php";
-
- $path = "milfs/";
- $javascript = "milfs/includes/upload.php";
-// $path = "https://$web[0]/milfs/";
-
-}
-/*
- $empresa = $_SESSION['id_empresa'];
- $javascript = "../milfs/includes/upload.php";
- $path = "$_SESSION[site]milfs/";
-*/
-/*
-if(file_exists(milfs/includes/upload.php)) {$javascript="milfs/includes/upload.php"; $path ="milfs/";}
-else{$javascript="includes/upload.php"; $path ="";}
-*/
-
-//$javascript="milfs/includes/upload.php";
-//$javascript="milfs/includes/upload.php";
-//$path ="milfs/";
-$campo_mapa = buscar_campo_tipo($respuesta,"14");
-$campo_mapa = $campo_mapa[0];
-if ($id ==''){$id='imagen';}
-$size = ($_SESSION['upload_size']*1024*1024)." bytes";
-$resultado ="
-
-
-
-
-
-
-
-La imagen debe estar en formato .jpg y de tamaño máximo $_SESSION[upload_size] MB ( $size)
-
-";
-return $resultado;
-
-}
-
-
-function formulario_importador($accion) {
-
- if($accion =='') {
- $resultado="
Importador";
-
- return $resultado;
- }
- $respuesta = new xajaxResponse('utf-8');
- $formulariox =formulario_importar('','menu','');
- $resultado="$formulariox
";
- $respuesta->addAssign("contenido","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("formulario_importador");
-
-
-function subir_archivo($perfil){
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//$empresa = remplacetas('form_id','id',"$perfil",'id_empresa','');
-//$web = remplacetas('empresa','id',"$empresa[0]",'web','');
-
-
-$id_empresa = remplacetas('form_id','id',"$respuesta",'id_empresa','');
-$empresa= $id_empresa[0];
-$web = remplacetas('empresa','id',"$empresa",'web','');
- $javascript = "includes/upload_archivo.php";
- $path = "//$web[0]/milfs/";
-
-///$javascript="https://tupale.co/milfs/includes/upload_archivo.php";
-$resultado ="
-
-
-
-
-
-Máximo 1MB
-
- ";
-
-
-return $resultado;
-
-}
-
- /*
-function formularios_muestra_listado($formulario){
-
- if($formulario==''){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ";
-$sql=mysqli_query($link,$consulta);
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado .="
";
- $resultado .= "Seleccionar formulario a importar ";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= " $row[nombre] ";
- }
-
- $resultado .=" ";
- }else {$resultado = "";}
-
- return $resultado;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $subir = subir_archivo($formulario) ;
- $div="importador_select";
- $resultado .= "$subir";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-$respuesta->addAssign("importador_archivo","innerHTML","");
-
-
-
-return $respuesta;
-}
-}
-$xajax->registerFunction("formularios_muestra_listado");
- */
-
-function formulario_importar_subir($formulario){
- $pie="";
- $respuesta = new xajaxResponse('utf-8');
- $formulario_nombre = remplacetas('form_id','id',$formulario,'nombre','') ;
- //$formulario_descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
- $encabezado = "
Importar $formulario_nombre[0] ";
- $subir = subir_archivo($formulario) ;
- $div="contenido";
-
- $muestra_form = "
-
- $subir
-
-
- ";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$encabezado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-return $respuesta;
-
-}
-$xajax->registerFunction("formulario_importar_subir");
-
-
-function formulario_importar($filename,$accion,$perfil){
-$formulario = "";
-$consulta = "";
-$div = "importador_archivo";
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$resultado = "
-
-
-
-
- Importando formulario ";
-$nombre = "/tmp/$filename";
-if($accion == "grabar") {
-}
-if (($handle = fopen($nombre, 'r')) !== FALSE)
- {
- $fila= 0;
- set_time_limit(0);
-while (($datos = fgetcsv($handle,0,"|")) !== FALSE) {
-$numero = count($datos);
-if($fila >=1) {
-$resultado .= "";
-$numero_columna = 0;
-if($campo[0] =="control") {
-$controlcito= "$datos[0]";
- }else{$controlcito="";}
-if($campo[1] =="equipo") {
-$equipo= "$datos[1]";
- }else{
-if( isset($_SESSION['equipo'])) { $equipo = $_SESSION['equipo']; }else{$equipo=NULL;}
-}
-
-if($campo[2] =="timestamp") {
-$timestamp= "$datos[2]";
-$w_timestamp = "timestamp = '$timestamp',";
- }else{
-$w_timestamp ="timestamp= '".time()."',";
-}
-
-for ($c=0; $c < $numero; $c++) {
-$columna = $datos[$c];
-
-if($columna !=""){
- if($controlcito !="") { $control="$controlcito";}else{
- $control=md5($perfil.$fila.time());
-}
-if($accion === "grabar"){
-//$control=md5($perfil.$fila.time());
-$ip = obtener_ip();
-$graba_ip = " ip = INET_ATON('".$ip."') ";
-$consulta_campos = "INSERT INTO form_datos SET $w_timestamp id_usuario='$_SESSION[id]',id_empresa='$_SESSION[id_empresa]',form_id ='$perfil',
-$graba_ip ,
-control = '$control', $consulta id_campo = '$campo[$numero_columna]' , contenido = '$columna', equipo = '$equipo'";
- // $verificar_campo = formulario_verificar_campo($perfil,$campo[$numero_columna]);
- $elregistro= $campo[$numero_columna];
- //if($verificar_campo == NULL){}else{
- if(is_numeric($elregistro)) { $elregistro =$elregistro;}else {$elregistro = -9;}
- //$verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$elregistro,'campo_nombre','');
- if($campo_existe[0] == ""){}else{
- $sql = mysqli_query($link,$consulta_campos);
- if($sql) {
- $class='success';
- $sql_resultado = " ";
- $resultado = "GRABADO $fila".time();
- //$sql_resultado = "oK";
- }
- else {
- $class='danger';
- }
- }
- }
-}
-//$resultado .= "$columna ( $control ) //- $controlcito - // $sql_resultado ";
-$numero_columna ++;
- }
- $resultado .= " ";
- }
- else {
- $resultado .= "";
-
- $posicion = 0;
- for ($c=0; $c < $numero; $c++) {
- $titulo = $datos[$c] ;
- $campo[$posicion] = $datos[$c];
-
- if(($titulo != "equipo") and ($titulo != "control" ) and ($titulo != "timestamp" ) ) {
- if(is_numeric($titulo)) { $titulo =$titulo;}else {$titulo = -9;}
- $verificar_campo = formulario_verificar_campo($perfil,$titulo);
-
- $campo_existe = remplacetas('form_campos','id',$titulo,'campo_nombre','');
- if($verificar_campo == NULL){$verificar_campo_aviso =" No existe "; $class='danger';
- if($campo_existe[0] !='') { $verificar_campo_aviso =" No está en el formulario ";$class='warning';}
- }
-
- else{$verificar_campo_aviso =""; $class='success';}
-}else{$verificar_campo_aviso =""; $class='success';}
- $resultado .= "$titulo $campo_existe[0]$verificar_campo_aviso ";
- $posicion ++;
- }
-
-
- $resultado .= " ";
- }
- $fila++;
- }
-
-
- $resultado .= "
-
$fila ".time()." " ;
- }
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}
-
-$xajax->registerFunction("formulario_importar");
-
-
-
-function formulario_verificar_campo($perfil,$id_campo){
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "SELECT * FROM `form_contenido_campos` WHERE `id_form` = '$perfil' AND id_campo='$id_campo'";
-$sql =mysqli_query($link,$consulta);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
-$existe = NULL;
-
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$obligatorio=mysqli_result($sql,0,"obligatorio");
-$existe[]= $control;
-$existe[]= $obligatorio;
-$existe[]= $consulta;
-
-}
-
-return $existe;
- }
-
-function borrar_tmp($div) {
-if($div =='') {
- $div="borra_tmp";
-$resultado ="
Limpiar ";
-
-return $resultado ;
-}
-$dir = "tmp/";
-
-$ficheroseliminados= 0;
-$handle = opendir($dir);
-while ($file = readdir($handle)) {
- if (is_file($dir.$file)) {
- if ( unlink($dir.$file) ){
- $ficheroseliminados++;
- }
- }
-}
-$fecha = time ();
-$ahora = date ( "Y-m-d h:i:s" , $fecha );
-$resultado ="
$ahora
";
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("borrar_tmp");
-
-
-function formulario_imprimir_linea($id,$control,$tipo) {
- $id = mysql_seguridad($id);
- $csv ="";
-
- //if($id !='') {$w_id = "AND form_id = '$id'";}
- $control = mysql_seguridad($control);
-/* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC
- ";
- */
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
-
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
-
-
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if($id !='') {$id = $id;}else {$id=mysqli_result($sql,0,"form_id");}
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
-
- $titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo = $titulo[0];
-
-$timestamp=mysqli_result($sql,0,"timestamp");
-$fecha = date ( "Y-m-d h:i:s" , $timestamp);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-// $resultado ="
";
- $imagen = formulario_valor_campo("$id","0","","$control");
- $imagen = $imagen[3];
- if($imagen[3] != null AND $tipo !='titulos') {
- $array[image]=$imagen;
- $imagen_icon="secure/?file=150/$imagen";
- $imagen= " ";
-$td .= "$imagen ";
- }else {$imagen='';}
-
-if(!isset($_REQUEST['print'])) { $src ="data-src";}else{ $src =" print src"; }
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- $campo_tipo = remplacetas('form_campos','id',$row[id_campo],'campo_tipo');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $contenido_completo= $contenido[3];
- $md5_contenido = $contenido[4];
- //md5(binary contenido) as md5_contenido,
- $contenido_original = $contenido;
- //$control = $contenido[0];
- $contenido = $contenido[3];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $campo_nombre[0] =" $campo_nombre[0]";
-
-
- if($tipo=="titulos") {
- $contenido = "$campo_nombre[0]";
- }
- elseif($tipo=="titulos_csv"){
- $csv .= '"'.$campo_nombre[0].'";';
- }
- elseif($tipo=="linea_csv"){
- $csv .= '"'.$contenido.'";';
- }
- elseif($tipo=="linea_planilla"){
-
- if($contenido !="") {
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
-
- if($size > $limite) {
-
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' ){
- if( $tipo=="") {
- $size="300";
- }else {
- $size="150" ;
- }
- if($contenido !=""){$contenido = " "; }
- else{$contenido="";}
- }
- elseif($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- //@require("includes/datos.php");
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/pin.png");
- //http://staticmap.openstreetmap.de/staticmap.php?center=40.714728,-73.998672&zoom=14&size=865x512&maptype=mapnik
-
- $contenido = "
-
- ";
- } else { $contenido ='';}
-
- //return "vacio";
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
- elseif($campo_tipo =="6" ) {$contenido =imprimir_buscador_campo($row[id_campo],$contenido) ;}
- elseif($campo_tipo=='29'){ $contenido=" ";}
- elseif($campo_tipo=='30'){ $contenido= json_render("$contenido_completo","html","$control");}
- elseif($campo_tipo=='10'){ // $valor_actual = relacion_render("$formulario","$id_campo","$row[contenido]",'0','relacion_drop');
- $contenido = relacion_render("$id","$row[id_campo]",$contenido,'5','relacion_print');
- //$contenido= json_render("$contenido_completo","html","$control");}
- //json_render("$valor","csv","$control");
- }
- else {$contenido = $contenido;//Markdown(strip_tags ($contenido));
- }
-
- $csv .= "$contenido ";
- }else{ $csv.=" ";}
- }
- elseif($tipo=="array"){
-
- if($row[id_campo] == $titulo){$array[title]=$contenido;}
- if($row[id_campo] == $categoria_campo){
- $array[category]=$contenido;
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- //$icono[0] = $imagen_icon;
- if($icono[0] =='') {
- //$icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $array[icon][iconUrl] = "$icon";
- //$array[icon][iconSize] ="[50,50]";
- //$array[icon][shadowSize] =[70,70];
- //$array[icon][shadowUrl] = "http://$_SERVER[HTTP_HOST]/milfs/images/iconos/sha.png";
-
- }else{}
- $array[$row[id_campo]] = $contenido;
- }
- else{
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
- if($size > $limite) {
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' AND $tipo==""){if($contenido !=""){$contenido = " "; }else{$contenido="";}}
- if($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- @require("includes/datos.php");
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/pin.png");
- $contenido = "
-
- ";
- } else { $contenido ='';}
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
- elseif($campo_tipo =="6" ) {$contenido =imprimir_buscador_campo($row[id_campo],$contenido) ;}
- else {$contenido = Markdown("$contenido");}
-
- }
-
-
- if($tipo=="titulos") {
-$td .= "$contenido ";
-
- }else{
-
- $td .= "$contenido ";
- }
- }
-
-if($tipo=="titulos") { $identificador ="Identificador "; }else {$identificador =" $control ";}
- $resultado .="$td $identificador ";
-}else{
-
-
-}
- if($tipo =='titulos_csv' or $tipo=='linea_csv') {
-
-return $csv;
- }
- if( $tipo=='linea_planilla') {
-$tabla="$csv $identificador";
-return $tabla;
- }
- if($tipo =="array") {
- //$array["title"]="hola mundos";
- return $array;
- }
- return $resultado;
-}
-
-
-// $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-function mostrar_coincidencias_plantilla($id_form,$filtro,$valor,$plantilla) {
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-//mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($link,$consulta);
-$control=mysqli_result($sql,0,"control");
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) )
- {
-$resultado .= contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- }
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias_plantilla");
-
-
-function mostrar_coincidencias($id_form,$filtro,$valor) {
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-//mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) )
- {
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $campos .= " $depliegue ";
-
- }
- $resultado = "
";
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias");
-
-
-function matriz_formulario($formulario,$div,$registros,$pagina,$formato){
- $respuesta = new xajaxResponse('utf-8');
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$md5_filtro = $formulario["campo_filtro"];
-//$formulario = mysql_seguridad($formulario);
-mysqli_real_escape_string($link,$formulario);
-$perfil = $formulario["form_id_id"];
-$filtro = $formulario["campo_filtro"];
-$control = md5(rand(1,99999999).microtime());
-
-$cantidad = formulario_contar($perfil);
-$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_filtro'";}
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{
- $resultado ="
Por favor seleccione un formulario ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-if($cantidad < 1) {
- $resultado ="
-
- El formulario \"$formulario_nombre[0]\" no tiene registros
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
-}
-
-$fecha_inicio = $formulario["inicio"];
-if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
-$fin = $formulario["fin"];
-$id_campo = $formulario["id_campo"];
-$busqueda = $formulario["busqueda"];
-
-if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";}
-if($id_campo ==''){
- $campo ='';
-
- }else{
- if($busqueda =='') {
- $resultado ="
Por favor escriba una palabra para buscar ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
- $campo ="AND id_campo = '$id_campo'";
-
- }
-
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';}
-
-
-
-$consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
- FROM form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_datos.id_empresa = '$_SESSION[id_empresa]'
- $busca
- $perfil
- $campo
- $w_filtro
- AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio')
- AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden";
-
-
-
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)==0){
- $resultado ="
No hay resultados 0008 ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
-if (mysqli_num_rows($sql)!=0){
- $total_registros = mysqli_num_rows($sql);
- if($formato=='csv'){
- $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv";
- $boton_descarga ="Descargar ";
- $archivo_reporte=fopen($nombre_archivo , "w");
- $encabezado =";;Periodo\n;;$inicio\n;;$fin \n ";
- fputs ($archivo_reporte,$encabezado);
- $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n";
- fputs ($archivo_reporte,$titulo);
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) )
- {
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv');
- $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv');
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $linea = $linea."\n";
- $lineas .= $linea;
- }
- $contenido ="$titulo \n $lineas";
- //rewind($archivo_reporte);
- fputs ($archivo_reporte,$contenido);
- $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga);
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
- }
- else{
- $respuesta =" No hay resultados 0009
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
-
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($link,$consulta_limite);
- if (mysqli_num_rows($sql)!='0'){
- $botones .= "Limpiar ";
- if($formato!='csv'){
- $botones .= "
- Exportar
- ";
- }
- $paginacion ="";
- $paginacion .= $indice;
- $encabezado = "
-
-
-
$botones $paginacion $total_registros registros
-
-
";
-$fila=0;
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $menu ="
-
-
-
- ";
- $campos .= "$menu $depliegue ";
- }
- $resultado .="";
- }else{
- $resultado .="
No hay resultados 0010 ";
- }
- //$resultado .="$consulta";
-$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado);
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-} $xajax->registerFunction("matriz_formulario");
-
-
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-/// depende de la funcion mysqli_result por compatibilidad hacia atras
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($link,$consulta);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
-$resultado[] = @mysqli_result($sql,0,"timestamp");
-$resultado[] = @mysqli_result($sql,0,"form_id");
-$resultado[] = @mysqli_result($sql,0,"id_usuario"); //6
-$resultado[] = @mysqli_result($sql,0,"id_empresa"); //7
-$resultado[] = @mysqli_result($sql,0,"equipo"); //8
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- $resultado[4] = NULL;
- $resultado[5] = NULL;
- $resultado[6] = NULL;
- $resultado[7] = NULL;
- $resultado[8] = NULL;
- }
-return $resultado;
-}
-
-function mysqli_result($res,$row=0,$col=0){
- $numrows = @mysqli_num_rows($res);
- if ($numrows && $row <= ($numrows-1) && $row >=0){
- mysqli_data_seek($res,$row);
- $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res);
- if (isset($resrow[$col])){
- return $resrow[$col];
- }
- }
- return false;
-}
-function remplacetas_orden($tabla,$campo,$valor,$por,$and,$orden){
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND $orden limit 1";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!= FALSE){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
-$resultado[] = mysqli_result($sql,0,"timestamp");
-$resultado[] = mysqli_result($sql,0,"form_id");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- $resultado[4] = NULL;
- $resultado[4] = NULL;
- }
-return $resultado;
-}
-
-
-function input_campos($perfil,$name){
- $listado ="";
- $respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-
-
-$resultado = "
-
- ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-
-
- $listado .="$row[campo_nombre] ";
-
- }
-$resultado .= " $listado ";
- }
-else{$resultado = '';}
-
-
-
-return $resultado;
-
- }
-
-function formulario_campos_select($perfil,$div,$onchange){
- $listado ="";
- $respuesta = new xajaxResponse('utf-8');
- if($onchange =="filtro") { $onchange = "onchange=\"xajax_formulario_campos_filtro('$perfil',(this.value),'filtro_$perfil'); \" ";}
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-
- $categoria = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," opcion = 'categoria'") ;
- $categoria = $categoria[0];
-$resultado = "Campo
-
- Todos los campos ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-if($div =='') {
- if ($row['id_campo'] == "$categoria"){
- $class="active";
- $filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
- }else { $class=""; $filtro ='';}
- $listado .="$row[id_campo] $row[campo_nombre] $filtro ";
- }
- }
-$resultado .= "
-
";
- }
-else{$resultado = '';}
-
-if($div =='') {return $listado;}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("formulario_campos_select");
-
-
-function formulario_campos_filtro($perfil,$campo,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
- Filtro
-
- Seleccione ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
";
- }
-else{$resultado = " No se encontraron resultados
";}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_campos_filtro");
-
-
-//$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo","$id_campo");
-function formulario_consultar($div){
- if($div==''){
- $div = "contenido";
- $resultado = " Consultas ";
- return $resultado;
- }
- $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'",'');
- $fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $peticion = "
-
-
-
-
-
-
-
-
- Formulario
- $formulario
-
-
-
-
-
-
-
-Consultar
-
-
-";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$peticion);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_consultar");
-
-
-function formulario_campos_procesar($form,$tipo_accion){
- //$form = mysql_seguridad($form);
- $campos_formulario ="";
-$grabar_campos_valores ="";
-$respuesta = new xajaxResponse('utf-8');
-$campo_nombre = $form["campo_nombre"];
-if($campo_nombre =='') {
-$respuesta->addAlert("El Nombre del campo no puede estar vacío");
-$respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
-return $respuesta;
-}
-
-//$campo_nombre = ucfirst(strtolower($campo_nombre));
-@$campo_descripcion = $form["campo_descripcion"];
-@$campo_tipo = $form["campo_tipo"];
-@$campo_area = $form["campo_area"];
-if($campo_area =="") { $campo_area="1";}
-@$misma_area = $form["misma_area"];
-@$campo_orden = $form["campo_orden"];
-@$campo_identificador = $form["campo_identificador"];
-@$activo = $form["activo"];
-@$tipo = $form["tipo"];
-@$editar = $form["editar"];
-@$id_campo_editar = $form["id_campo_editar"];
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-if ($editar == 'editar' AND $tipo_accion =='editar'){
-mysqli_query($link,"
- UPDATE `form_campos`
- SET `campo_nombre` = '$campo_nombre',
- `campo_descripcion` = '$campo_descripcion',
- `orden` = '$campo_orden' ,
- `campo_area` = '$campo_area',
- `campo_tipo` = '$campo_tipo',
- `id_empresa` = '$_SESSION[id_empresa]',
- `activo` = '$activo'
- WHERE `form_campos`.`id` ='$id_campo_editar'
- LIMIT 1");
-$w_campo = "id = '$id_campo_editar'";
-
- }else {
-$id_empresa = $_SESSION['id_empresa'];
-$id_especialista = $_SESSION['id'];
- $buscar_campo_nombre = remplacetas('form_campos','campo_nombre',$campo_nombre,'campo_nombre'," id_empresa = '$id_empresa' AND campo_area = '$campo_area' ") ;
- if($buscar_campo_nombre[0] == $campo_nombre) {
- $respuesta->addAlert("El Nombre del campo ( $campo_nombre ) ya existe en la misma área ");
- $respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
- return $respuesta;
- }
-if($campo_identificador == "") { $campo_identificador = md5($_SESSION['id_usuario']."-".microtime()); }
-$consulta = "
- INSERT INTO `form_campos`
- (`id_especialista`, `campo_nombre`,`campo_descripcion`,`campo_tipo`, `campo_area`, `orden`, `activo`, `identificador`, `id_empresa`)
- VALUES ('$id_especialista','$campo_nombre','$campo_descripcion','$campo_tipo','$campo_area','$campo_orden','1','$campo_identificador','$id_empresa')";
- $sql =mysqli_query($link,$consulta);
- $ultimo_id = mysqli_insert_id($link);
-$w_campo= "identificador = '$campo_identificador'";
-if($sql) {
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'div_campos')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
- $campos_formulario ="
-
-
- El campo se creó con éxito
- Crear un nuevo campo
- Modificar campo $listado_campos
- ";
- if(@$form['agregar_id_form'] !="") {
- $respuesta->AddScript("xajax_agregar_campos('grabar_campos','contenido','$ultimo_id','$form[agregar_id_form]') ");
- ///$respuesta->addAssign("$div","innerHTML",$resultado);
- //return $respuesta;
- }
- }else {$campos_formulario = "Problemas al grabar el campo $consulta";}
- }
-
-if($id_campo_editar !='' AND $tipo_accion =='editar'){$id_form_campo = $id_campo_editar;}else {
-//$id_form_campo = mysqli_insert_id($link);
-$id_form_campo = $ultimo_id;
-}
-//$respuesta->addAlert("( $campo_tipo / $id_form_campo / $ultimo_id / $form[opciones] ) $consulta");
-//$respuesta->addAssign("contenido","innerHTML","$consulta_campos_valores");
-//return $respuesta;
-if($campo_tipo == '23' ){
-$grabar_campos_valores = "(".$id_form_campo.",'".$form[opciones]."')";
-}
-/// separacion por comas
-else {
-$opciones=str_replace(', ',',',"$form[opciones]");
-$opciones = explode(",",$opciones);
-
-foreach($opciones as $c=>$v){
-
- //if($v !='') {$v = ucfirst(strtolower($v));
- if($v !='') {$v = $v;
-
-$grabar_campos_valores .= "( $id_form_campo ,'$v'),";
- }
-
- }
-$grabar_campos_valores =substr ("$grabar_campos_valores",0,-1);
-} /// fin de separacion por comas
-
-$borrar_campos_valores = "DELETE FROM `form_campos_valores` WHERE `id_form_campo` = '$id_form_campo'";
-$consulta_campos_valores = "INSERT INTO form_campos_valores (id_form_campo,campo_valor) VALUES ".$grabar_campos_valores."";
-
- $sql_borrar_campos_valores =mysqli_query($link,$borrar_campos_valores);
- $sql_campos_valores =mysqli_query($link,$consulta_campos_valores);
-
- $campos=mysqli_query($link,"
- SELECT id_form_campo, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, orden
- FROM `consulta_campos` , `tipo_campo`
- WHERE $w_campo
-
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- LIMIT 1");
-
-$edicion = " $campo_nombre ";
-$campos_formulario .= " $edicion
";
-while( @$row = mysqli_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "
".$row['orden']." ";}
-else{
-$campos_formulario .= "
".$row['orden']." ";
- } }
-if($id_campo_editar !='') {
-$respuesta->addAssign("contenido_$misma_area"."$id_form_campo"."","innerHTML",$campos_formulario);
-}else {
-$respuesta->addAssign("contenido_$misma_area","innerHTML",$campos_formulario);
-}
-return $respuesta;
-}$xajax->registerFunction("formulario_campos_procesar");
-
-
-
-function formulario_opciones_select($tipo,$id_campo){
- $valores="";
- $respuesta = new xajaxResponse('utf-8');
- $div = 'opciones_select';
-if($id_campo !=''){
-$consulta= "SELECT * FROM form_campos_valores WHERE id_form_campo = '$id_campo'";
-$link = Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-while( $row = mysqli_fetch_array( $sql ) ) {
- $valores .= "$row[campo_valor],";
- }
- $valores = substr($valores,0,-1);
- }
- }
-if($tipo =='8'){
-$resultado = " $valores ";
- }
-elseif($tipo =='9'){
-$resultado = " $valores ";
- }
-elseif($tipo =='16'){
- if($valores =='') {$valores = "1,10";}
-$resultado = " $valores ";
- }
-elseif($tipo =='17'){
- $resultado =" ";
-}elseif($tipo =='10'){
- $resultado ="$valores ";
-}elseif($tipo =='6'){
- $resultado ="$valores ";
-}
-else{
-$resultado = " $valores ";
-}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_opciones_select");
-
-
-
-function crear_campos_formulario($form,$id_form){
- $id_form=$id_form;
- $area="";
- $Campo_tipo_definido="";
- $Tipo_campo="";
- $campo_nombre ="";
- $campo_descripcion ="";
- $editar ="";
-
-$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-if($form['div'] !="") { $div = $form['div'];}else{$div="div_campos";}
-
-@$especialista = $form["id_especialista"];
-@$id_campo_editar = $form["id_campo_editar"];
-$resultado = "
-
-$id_campo_editar";
-$link = Conectarse();
-mysqli_set_charset($link, "utf8");
-$capa = "crear_campos_consulta_$area";
-$formulario ="manejo_campos_$area";
-
-if ($id_campo_editar > 0){
-$sql=mysqli_query($link,"SELECT * FROM form_campos WHERE id = '$id_campo_editar' AND activo ='1'");
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .="";
-$campo_descripcion =$row['campo_descripcion'];
-$campo_nombre =$row['campo_nombre'];
-$orden =$row['orden'];
-$especialista =$row['id_especialista'];
-
-$formulario ="manejo_campos_$id_campo_editar";
-$editar="
-
-
- ";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
- }
-
-$Tipo_campo ="Tipo:
- ";
-$tipos=mysqli_query($link,"
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1' ORDER BY tipo_campo_nombre
- ");
-while( $row = mysqli_fetch_array( $tipos ) ) {
-
-if($row['id_tipo_campo'] == $Campo_tipo_definido){
-$Tipo_campo .= " > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row['tipo_campo_nombre']." [".$row['id_tipo_campo']."] ";
-}
-$Tipo_campo .="
";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-
-
-
- Incluir este campo en el formulario actual
-
-
- ";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-
-
-
-
-
-
-
- Nombre del campo
-
-
-
-
-
-
- Estado
-
- Activo: el campo puede ser usado en formularios
- Inactivo: El campo NO se usará
-
-
-
-
-
-
-
- Área o grupo del campo
- $areas
-
-
-
-
- Descripción o ayuda para el campo
- $campo_descripcion
-
-
-
-
-
-
-
- $agregar_a_formulario
-
- Grabar
-
-
- $editar
-
-
-
-
-
- ";
-$resultado = "
-
-
- Crear un nuevo campo
- $resultado
-
-";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("crear_campos_formulario");
-
-function formulario_crear_campo($area,$campo,$div){
- $campos_formulario="";
- $misma_area="";
-$respuesta = new xajaxResponse('utf-8');
- if($div==''){
- $div = "contenido$campo";
- $cerrar = " [X] ";
-$resultado = " Campos ";
-
- return $resultado;
- }
- //$div="div_campos";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta_campos ="SELECT id, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, form_campos.activo, form_campos.campo_tipo
- FROM `form_campos` , `form_tipo_campo`
- WHERE id_empresa = '$_SESSION[id_empresa]' AND id = $campo
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- ORDER BY orden ASC";
- $campos=mysqli_query($link,$consulta_campos);
-if($campo ==''){
-
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'$div')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
-$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-$tabla_campos = campos_tabla('id_especialista','','20','0','');
- $buscador = campos_buscador("","");
-$campos_formulario = "
-
-
-
-
-
-
-
-
-
-
-
- $buscador
- $tabla_campos
-";
-}else{
-$campos_formulario .= "
";
-while( $row = mysqli_fetch_array( $campos ) ) {
-// if($row[campo_tipo] =='8'){
- $respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-// }
- $Tipo_campo ="Tipo:
- ";
-$tipos=mysqli_query($link,"
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ");
-while( $row_tipo = mysqli_fetch_array( $tipos ) ) {
-
-if($row_tipo['id_tipo_campo'] == $row['campo_tipo'] ){
-$Tipo_campo .= " > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-if($row['activo'] =='1'){$activo = "Activo: el campo puede ser usado en formularios ";}
-else{$activo = "Inactivo: El campo NO se usará ";}
-$formulario = "editar_campos_$row[id]";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-$edicion = "$row[campo_nombre]";
-$campos_formulario .= "
-
-
-
-
-
-
-
-
-
-
-
- Nombre del campo
- $row[campo_nombre]
-
-
-
- $Tipo_campo
-
-
-
- Estado
-
- $activo
- Activo: el campo puede ser usado en formularios
- Inactivo: El campo NO se usará
-
-
-
-
-
-
-
-
- Área o grupo del campo
- $areas
-
-
-
-
-
- Descripción del campo
- $row[campo_descripcion]
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
-
- }
- }///fin de edicion
-
-
-
-$respuesta->addAssign($div,"innerHTML",$campos_formulario);
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_crear_campo");
-
-function agregar_campos($tipo,$div,$id,$formulario){
-$respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-if($tipo==''){
- $div="contenido";
-$resultado = " Editar ";
-print $resultado;
-return;
- }
- if($tipo=='consultar_listado'){
- $consulta="SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ASC";
- $sql =mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado .="Formulario: ";
-$resultado .= "Selecciona ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "$row[nombre] ";
- }
-$resultado .=" $cerrar";
- }else {
-$resultado = " No hay formularios para editar
";
- }
- }
-
-if ($tipo=='consultar_campos'){
- /// restringe campo a propios form_campos.id_empresa = '$_SESSION[id_empresa]' AND
- $consulta="
- SELECT form_contenido_campos.id_campo, form_contenido_campos.id,
- campo_nombre, obligatorio,control,multiple,form_contenido_campos.orden, form_campos.campo_tipo
- FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_form = $id
- AND form_contenido_campos.id_campo = form_campos.id
- ORDER BY form_contenido_campos.orden";
- $sql =mysqli_query($link,$consulta);
- $consulta_nombre="SELECT * FROM form_id WHERE id ='$id'";
- $sql_nombre =mysqli_query($link,$consulta_nombre);
- $nombre =mysqli_result($sql_nombre,0,"nombre");
- $id_formulario = $id;
- //if (mysqli_num_rows($sql)!='0'){
-$resultado ="$cerrar$nombre
- ";
-
- $parametrizacion = parametrizacion_titulo("$id",'','') ;
-$resultado .= "Configuración del formulario
-
- ";
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- /* $multiple = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = '$row[id]' AND descripcion REGEXP '^multiple:' ") ;
- $multiple = explode(":",$multiple[0]);
- $multiple = $multiple[1];*/
-
- //$multiple = $multiple[0];
-
- $privado = remplacetas('form_parametrizacion','campo',"$id_formulario",'opcion'," tabla='form_id' AND descripcion ='$row[id_campo]' AND opcion REGEXP '^privacidad:' ") ;
- $privado = explode(":",$privado[0]);
- $privado = $privado[1];
- if($privado == "") { $privado="0";}
- if($row['obligatorio'] =='0') { $valor_obligatorio ='1'; $obligatorio_check='';}else{$valor_obligatorio='0'; $obligatorio_check='checked'; }
- if($row['multiple'] =='0') { $valor_multiple ='1'; $multiple_check='';}else{$valor_multiple='0'; $multiple_check='checked'; }
- if($privado =='0') { $valor_privado ='1'; $privado_check='';}else{$valor_privado='0'; $privado_check='checked'; }
-
-
-$edicion = " Editar ";
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"",'') ;
- //$multiple = $multiple[0];
-
-
-$resultado .= "
-
-
- Campo: $row[campo_nombre] Id: $row[id_campo] Tipo: $tipo_nombre[0]
-
-
-
-
";
- }
-
-$consulta_campos_todos ="SELECT form_campos.id, form_campos.campo_nombre, form_campos.campo_descripcion FROM form_campos WHERE form_campos.id_empresa = '$_SESSION[id_empresa]' OR form_campos.tipo_contenido ='1'
- ORDER BY campo_nombre ";
-$sql_consulta_campo =mysqli_query($link,$consulta_campos_todos);
-
-$crear_nuevo ="
-
-
-
-
-
-
-
-
-";
- while( $row = mysqli_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "$row[campo_nombre] [$row[id]] ";
- }
-$resultado .="
-
-
-
-$crear_nuevo ";
-
- }/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
- if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado=" Seleccione un campo";}
-else {
-$id_form=func_get_arg(3);
-$consulta = "SELECT id_campo FROM form_contenido_campos WHERE id_empresa = '$_SESSION[id_empresa]' AND id_campo= '$id' AND id_form= $id_form";
-$sql_consulta =mysqli_query($link,$consulta);
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if(mysqli_num_rows($sql_consulta) =='0') {
-$microtime = microtime();
-$orden = remplacetas('form_contenido_campos','id_form',$id_form,'orden',"") ;
-$nuevo_orden = $orden[0]+1;
-$consulta_grabar=" INSERT INTO form_contenido_campos (
-`id_campo` ,
-`id_empresa` ,
-`orden` ,
-`id_form` ,
-`obligatorio`,
-`control`
-)
-VALUES (
-'$id', '$id_empresa','$nuevo_orden', '$id_form', '0', md5('$microtime' + rand())
-)";
-$sql_consulta_grabar =mysqli_query($link,$consulta_grabar);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_form')");
-return $respuesta;
- }else{
-$div='atencion';$resultado=" El campo ya pertenece a este formulario ";
- }
- }
-
- }///fin de grabar_campos
-
-if($tipo=='eliminar'){
-$confirmar=func_get_arg(3);
-
-
-if($id==''){
-$id_c=func_get_arg(4);
-$capa_original=func_get_arg(5);
-$resultado = "
- Seguro que desea eliminar el campo de esta consulta?
- [SI]
- [NO]
-
- ";}
- else{
- if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "
- Quitar del formulario
- ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{
-$consulta="DELETE FROM `form_contenido_campos` WHERE `control` = '$confirmar' LIMIT 1";
-$sql_consulta_eliminar = mysqli_query($link,$consulta);
-$div=func_get_arg(5);
-$id_consulta=func_get_arg(4);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_consulta')");
-
- }
- }
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }/// fin de eliminar
-if($tipo == 'obligatorio'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `obligatorio` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($link,$consulta);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-if($tipo == 'orden'){ /// orden
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `orden` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($link,$consulta);
-$a =" $id
- ";
-
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-
-if($tipo == 'prellenado'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `consulta_tipo_campos` SET `prellenado` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($link,$consulta);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de oprellenado
-$respuesta->addAssign($div,"style.display","block");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("agregar_campos");
-
-function formulario_nuevo($formulario,$div){
- $resultado ="";
- $formulario = mysql_seguridad($formulario);
- $respuesta = new xajaxResponse('utf-8');
- //$formulario=mysqli_real_escape_string($formulario);
- $id_empresa= $_SESSION['id'];
- if($div==''){
- $div = "contenido";
-
-$resultado .= " Formulario ";
-
- return $resultado;
- }
-if($formulario ==''){
- $formulario_nombre = "nuevo_formulario";
- $formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-
-Crear un formulario
-
- Nombre para el formulario
-
-
-
- Descripción
-
-
-
- Formulario anidado con:
- $formulario_respuesta
-
-
- Grupo:
-
-
-
-
- Privado
-
- Público
-
-
-
-
-
- Grabar
-
-
- ";
-
- }else{
-$control = md5(rand(1,99999999).microtime());
-
-$nombre = $formulario['nombre']; // aa
-$descripcion = $formulario['descripcion']; // dxddc
-$publico = $formulario['publico']; // dxddc
-$grupo = $formulario['grupo'];
-$id_empresa = $_SESSION['id_empresa'];
-
-if($publico =='') {$publico ='0';}
-$propietario= $_SESSION['id'];
-$formulario_respuesta = $formulario['formulario_respuesta']; // dxddc
-$link=Conectarse();
-@$formulario=mysqli_real_escape_string($link,$formulario);
-mysqli_set_charset($link, "utf8");
-$consulta = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-VALUES ('$nombre', '$descripcion', '1', '1', '$publico', '$propietario','$formulario_respuesta','$id_empresa');";
-$sql=mysqli_query($link,$consulta);
-$ultimo_id = mysqli_insert_id($link);
- if($grupo !="") {
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo' ,id_empresa= '$id_empresa'";
- $sql_grupo=mysqli_query($link,$consulta_grupo);
- }
-
-$respuesta->addscript("xajax_formulario_listado('','contenido'); ");
-}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_nuevo");
-
-
-function formulario_listado($filtro_grupo,$div,$id_form){
- $item="";
- $grupo_formularios="";
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} if($div==''){
- $div = "contenido";
- if(isset($_SESSION['grupo_formularios'])) { $sesion_grupo_formularios = $_SESSION['grupo_formularios'];}else { $sesion_grupo_formularios = "";}
-$resultado = " Formularios ";
-
- return $resultado;;
- }
-$control = md5(rand(1,99999999).microtime());
-$respuesta = new xajaxResponse('utf-8');
-$_SESSION['grupo_formularios'] = $filtro_grupo;
-
-$link=Conectarse();
- $id=mysqli_real_escape_string($link,'$id');
-mysqli_set_charset($link, "utf8");
-if($id_form !="") {
- if(is_numeric($id_form)) { $w_id ="AND form_id.id = '$id_form' ";}else{ $w_id ="AND form_id.nombre LIKE '%%$id_form%%' ";} $mostrar_panel ="in";}else{ $w_id="";}
-if($filtro_grupo =="") {
-$consulta = "SELECT * FROM form_id WHERE id_empresa ='$_SESSION[id_empresa]' $w_id ORDER BY orden ASC";
- }
-else {
- $mostrar_panel ="in";
-$consulta = "
-SELECT * FROM form_id, form_grupo
-WHERE form_grupo.id = form_id.id
-AND form_grupo.grupo = '$filtro_grupo' $w_id
-AND form_id.id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
-}
-$sql=mysqli_query($link,$consulta);
-if($filtro_grupo !="") {
- $leyenda_filtro_grupo ="Grupo $filtro_grupo ";
-
- }else{ $leyenda_filtro_grupo ="Administración de Formularios ";
- unset($_SESSION['grupo_formularios']);
- }
-$resultado_link = " Formularios ";
-$respuesta->addAssign("link_formulario","innerHTML",$resultado_link);
-
-
-$divider = 1;
-$columnas = intval(12/$divider);
-// $listado_grupos = select_empresa('form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","AGRUPADO",'','',"$id_empresa");
- $listado_grupos = select_empresa('form_id, form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido','')","form_grupo.id = form_id.id",'','',"$id_empresa");
- $buscador = " ";
- $listado_grupos ="
-
-
-
- Grupos
- $listado_grupos
-
-
-
-
-
- Buscador
- $buscador
-
-
-
-
- ";
- $clonar = clonar_formulario($formulario,$id_empresa,"","","formato");
- $mover = mover_formulario($formulario,$id_empresa,"formato");
- $nuevo_formulario = "
- ";
- $resultado = "
-
- $nuevo_formulario
-
-
- $listado_grupos
-
- $leyenda_filtro_grupo
-
-
-
- ";
-
-if (mysqli_num_rows($sql)!='0' ){
- $i =0;
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- $id= $row['id'];
- $C = $id;
-
- $cantidad = formulario_contar($row['id']);
- if($cantidad >0) {$cantidad ="Llenado: $cantidad veces ";}else{$cantidad = "";}
- $propietario = remplacetas('usuarios','id',$row['propietario'],'email',"") ;
- $estado = remplacetas('form_id','id',$id,'publico',"") ;
- $nombre_formulario = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion_formulario = remplacetas('form_id','id',$id,'descripcion',"") ;
- $estado = "
-
- Contenido privado
-
- Público
-
- ";
- $modificable = remplacetas('form_id','id',$id,'modificable',"") ;
- if($modificable[0] !="") {
- if($modificable[0] =='0') { $Modificable= "Privado";}
- elseif($modificable[0] =='1') { $Modificable= "Público";}
- else { $Modificable= "Semi-público";}
- $select_modificable ="$Modificable ";
- }
- $modificable = "
- ";
-
-
- $primer = formulario_uso("$id",'','primer') ;
- if(@$primer[0] !='') {$primer = "Primer registro: ".date ( "Y-m-d h:i:s" , $primer[0])." ";}else{$primer='';}
- $ultimo = formulario_uso("$id",'','ultimo') ;
- @$ultimo_control = $ultimo[1];
- if(@$ultimo[0] !='') {$ultimo = "Último registro: ".date ( "Y-m-d h:i:s" , $ultimo[0])." ";}else{$ultimo='';}
-
- $nombre = editar_campo("form_id",$row['id'],"nombre","","","","");
- $orden = editar_campo("form_id",$row['id'],"orden","","","","");
- $descripcion = editar_campo("form_id",$row['id'],"descripcion","","","","");
- $geo = buscar_campo_tipo($id,"14");
- $email_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- $mensaje_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
- $mostrar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='mostrar_portal'") ;
- $llenar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='llenar_portal'") ;
- $ver_data = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='ver_data_portal'") ;
- $vista_favorita = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='vista_favorita'") ;
-
- if($geo[0] !='') { $mapa= " Mapa ";}else {$mapa='';}
-
- if($i % $divider==0) {
-
-//$item .= "";
- }
- $i++;
- $grupo_actual = remplacetas('form_grupo','id',$row['id'],'grupo',"") ;
- if(is_null($grupo_actual[3])) {
- $valores_grupo['id']=$row['id'];
- $valores_grupo['grupo']="";
- $grupo = "
-
- ";
- // $grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }else
- {
- $grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
- }
-
-$item .= "
-
-
-
-
-
-
$nombre_formulario[0]
-
-
-
-
-
-
-
-
-
- Creación: $row[creacion] / $propietario[0]
- $cantidad
- $ultimo
- $primer
- $mapa
-
-
-
-
-
$row[id]
-
-
-
-
-
-
-
-
-
-
-
-
Agregar o quitar campos
-
-
-
-
-
-
-
-
-
-
- $estado
-
-
- $modificable
-
-
-
-
-
-
";
-
-
- if($i%$divider==0) {
- $item .= " ";
- }
-
- }
-
-
- //$resultado .="";
- }
-
-
-else{ $resultado .= "
No hay formularios para mostrar ";}
-
- $resultado_formulario ="
-
-
- ";
-/*
-
- */
- $resultado = "$resultado $resultado_formulario ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_listado");
-
-function formulario_eliminar($id,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre_form = $nombre[0];
- if($tipo =='') {
-$resultado =" ";
-}elseif($tipo=='cancelar') {
- $resultado =" Eliminar ";
-}elseif($tipo =='eliminar'){
-$consulta = "DELETE FROM form_id WHERE form_id.id = '$id' ";
-$link=Conectarse();
- $sql=mysqli_query($link,$consulta);
- if($sql) {
- $respuesta->addAlert("Se eliminó el formulario \" $nombre_form \" ");
- $respuesta->addAssign("panel_$id","innerHTML","");
- return $respuesta;
-
- }
-}
-else {}
-$respuesta->addAssign("eliminar_$id","innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_eliminar");
-
-
-function campo_multiple($id_campo,$id_form,$control,$item){
-//if ( !isset ( $_SESSION['id'] ) ) { return;}
-
- if($item==''){$item=1;}
- $id= $item;
-$render = formulario_campos_render($id_campo,$id_form,$control,$item+1);
- $ingredientes = "
-
- $render
-
-
-
-
-
- ";
- $boton= "
- Agregar campo
-
";
-$div = "id_campo_$id_campo"."_".$id;
-$respuesta = new xajaxResponse('utf-8');
-#$respuesta->addAssign($div,"innerHTML",$ingredientes);
-$respuesta->addAssign("multiple_$div","innerHTML",$ingredientes);
-$respuesta->addAssign("boton_".$id_campo."","innerHTML","$boton ");
-return $respuesta;
-
-}
-$xajax->registerFunction("campo_multiple");
-
-function subidor_generico($campo,$item,$form){
-$campo_mapa = buscar_campo_tipo($form,"14");
-$campo_mapa = $campo_mapa[0];
-
-$name= $campo."[".$item."]";
-$tipo_campo = remplacetas("form_campos","id","$campo","campo_tipo","");
- if($tipo_campo[0] =='15'){
- $onchange= "comprueba_imagen('$campo','$item', (this.value),'$campo_mapa' ) ;";
- }else {
- $onchange= "comprueba_archivos('$campo','$item', (this.value),'$campo_mapa' ) ;";
- }
-
-$resultado = "
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
-
-return $resultado;
-}
-
-function formulario_campos_render($id_campo,$id_form,$control,$item,$id_dato){
-$cols ="";
-$style="";
-$campo_multiple="";
-$render="";
-//if($control ==="") {$control="vacio";}else {$control=$control;}
- if($id_form !="") {
- $w_form = " AND form_contenido_campos.id_form = '$id_form' ";
- }
- else{
- $w_form ="";
- }
-
-$consulta ="
- SELECT *
- FROM form_contenido_campos,form_campos, form_tipo_campo
- WHERE form_contenido_campos.id_campo = '$id_campo'
- $w_form
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = form_campos.campo_tipo ";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $sql=mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0'){
- if($id_dato !='') {
-if($control !="") {
- $value = remplacetas('form_datos','id',$id_dato,'contenido'," control = '$control'") ;
- }
- $multiple='0';
- $esta_editando =1;
- }
- else {
- if($control !="") {
- $value = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$control'") ;
-
- }
-$multiple=mysqli_result($sql,0,"multiple");
- }
- if($item=='') {$item ="0";}else {$item=$item;}
- $clase_item="clase_$id_campo";
- $value_original = $value;
- if($value[0] !='') {$value= "$value[0]";}ELSE{$value='';}
- $campo_nombre=mysqli_result($sql,0,"campo_nombre");
- $campo_descripcion=mysqli_result($sql,0,"campo_descripcion");
- $campo_tipo_accion=mysqli_result($sql,0,"tipo_campo_accion");
- $campo_obligatorio=mysqli_result($sql,0,"obligatorio");
- if($campo_obligatorio =='1') {$obligatorio ="danger";}else{$obligatorio ="default";}
-
- if($campo_tipo_accion == 'text'){$render = " ";}
- elseif($campo_tipo_accion == 'date'){
-
- $rango = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $campos = explode(":",$rango[0]);
- $valores_rango = explode(";",$campos[1]);
- $min= $valores_rango[0];
- $max= $valores_rango[1];
-
-
- $render = " $campo_descripcion $rango[0]";
- }
- elseif($campo_tipo_accion == 'datetime'){
-
- $rango = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $campos = explode(":",$rango[0]);
- $valores_rango = explode(";",$campos[1]);
- $min= $valores_rango[0];
- $max= $valores_rango[1];
-
-
- $render = " $campo_descripcion $rango[0]";
- }
- elseif($campo_tipo_accion == 'rango'){
- $rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = "$rango $campo_descripcion ";}
- elseif($campo_tipo_accion == 'mapa'){
- $lat="";
- $lon="";
- $zoom="";
- if($value !=""){
-
- $campos = explode(" ",$value);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- if($lat =="") {
- $localizacion = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- //$render= $localizacion[0];
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
-
- }
- $exif="&exif";
- }
-if($zoom =="") { $zoom="12";}
- $render .= "
-
-
-
-
-
- ";
- //
- $cols='12';
- }
-elseif($campo_tipo_accion == 'email'){$render = "
-
- Escriba un email válido
";}
- elseif($campo_tipo_accion == 'envio'){$render = "
-
- Se enviará un email
";}
- elseif($campo_tipo_accion == 'textarea'){
- $render = "
-
-
- $value ";
- $cols='12';
- }
- //$subir_imagen = subir_imagen('');
- elseif($campo_tipo_accion == 'imagen'){
- // $style ="display:hidden";
- // $gps = leer_exif($file);
- //$render= " "; //subir_imagen('',$id_campo[$item]);
- $render=subidor_generico($id_campo,$item,$id_form);
- $cols='12'; }
- elseif($campo_tipo_accion == 'adjunto'){
-
- $render=subidor_generico($id_campo,$item,$id_form);
-
- $cols='12'; }
-
- elseif($campo_tipo_accion == 'html'){
- $render = "
-
- Editor HTML
-
- $value
-
-
-
- ";
- $cols='12';
- /*$respuesta = new xajaxResponse('utf-8');
- $respuesta->addscript("$(document).ready(function() {
- $('.$clase_item').summernote();
- });");
- */
- }
- elseif($campo_tipo_accion == 'limit'){
- $limite = limite("".$id_campo."[".$item."]",'','limite');
- $rows = ceil($limite / 50 )+1;
- $render = "$limite /
-
-
- $value ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'select'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_edit($id_campo,$id_form,"$value",$id_campo."[".$item."]",$control);
- $render = "$select $campo_descripcion "; $cols='12'; }
- elseif($campo_tipo_accion == 'radio'){
- $select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select $campo_descripcion ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_campos'){
- //radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control)
- $campos_valores = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $mensaje = remplacetas('form_campos','id',$id_campo,'campo_descripcion',"") ;
- $campos = explode(":",$campos_valores[0]);
- $titulos = explode(";",$campos[0]);
- $campos_incluidos = explode(";",$campos[1]);
- for($i=0;$i$campos_incluidos[$i] ";
- //$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "
-
-
-
- $mensaje[0]
- $listado_titulos
- $listado_campos
-
-
-
";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_linea'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = " ";
- $cols='12';
- }
-
- elseif($campo_tipo_accion == 'combo'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = combo_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'select_multiple'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_multiple($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
-// $cols='12';
- }
- elseif($campo_tipo_accion == 'checkbox'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = checkbox_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select $campo_descripcion ";}
- elseif($campo_tipo_accion == 'relacion'){
- $select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'buscador'){
- $select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select $campo_descripcion ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'base'){
- $select = buscador_base($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";}
- elseif($campo_tipo_accion == 'vinculado'){
- $vinculado = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $select = formulario_areas('',$vinculado[0],'campos');
- $render = "
- $select
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'firma'){
-
-$render = "
-
-
-";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'number'){
- $rango = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $campos = explode(":",$rango[0]);
- $valores_rango = explode(";",$campos[1]);
- $min= $valores_rango[0];
- $max= $valores_rango[1];
-
-
- $render = "
-
- (solo números)
$rango[0] / $valores_rango[0] - $valores_rango[1]";
- $cols='12';
- }
-
- elseif($campo_tipo_accion == 'password'){
- if( $control != "" or $control ==="vacio") {
- $render="";$label=""; $campo_tipo_accion="oculto";
- }else {
- $render = "
-
- ";
- }
- //else {}
- $cols='12'; }
- elseif($campo_tipo_accion == 'unico'){
- $render ="
-
";
- }
- else{$render = " ";}
- if($multiple =='1'){
- if ($item=='0'){
-$boton= "
- Agregar campo
-
";}else{ $boton=""; }
-/* $campo_multiple = "
-
-
-
-
-
- ";*/
-}
- if($item == 0) { $label = " $campo_nombre ";}
- else {$label = "$campo_nombre $campo_obligatorio ";}
- ///// CAMPOS QUE NO SE MOSTRARAN
- // if($campo_tipo_accion == 'imagen'){ $label=""; $campo_descripcion=""; }
- if($cols =="") {$cols = "6";}
- $input = "
-
-
- $campo_multiple
-
-
-
- ";
-
-
-if($campo_tipo_accion != "oculto") {
- $input= $input;
- }else { $input ="";}
-
- }
- return $input;
-}
-
-function validar_email($email) {
-
-if (preg_match('/^[^0-9][a-zA-Z0-9_-]+([.][a-zA-Z0-9_-]+)*[@][a-zA-Z0-9_-]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
- return 1;
-}else{
- return 0;
-}
-}
-
-function formulario_valor_campo_ORIGINAL($perfil,$id_campo,$valor,$id_control){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$valor=mysqli_real_escape_string($link,$valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-$consulta = "SELECT * FROM `form_datos` WHERE `form_id` = '$perfil' AND id_campo='$id_campo' $valor AND `control` = '$id_control' ORDER BY timestamp DESC limit 1";
-$sql =mysqli_query($link,$consulta);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$timestamp=mysqli_result($sql,0,"timestamp");
-mysqli_data_seek($sql, 0);
-if($cant === 1) {
- $contenido=mysqli_result($sql,0,"contenido");
- }else {
-while( $row = mysqli_fetch_array( $sql ) ) {
- $contenido .= "$row[contenido]\n ";
- }
- }
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = $contenido;
-}
-return $existe;
- }
-
-
-
-function formulario_valor_campo($perfil,$id_campo,$valor,$id_control,$orden,$timestamp){
-$contenido="";
-$editable="";
-$contenido_li="";
-$contenido_array=array();
-if ($timestamp != ""){$where_timestamp = "AND form_datos.timestamp = '$timestamp' ";}ELSE { $where_timestamp = ""; }
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-$campo_multiple = remplacetas("form_contenido_campos","id_campo",$id_campo,"multiple"," id_form ='$perfil'");
-$tipo_campo = remplacetas("form_campos","id","$id_campo","campo_tipo","");
-$campo_multiple = $campo_multiple[0];
-//if($tipo_campo[0] =="24") {$campo_multiple = "1";}
-/// SI EL CAMPO ES MULTIPLE O CHECK BOX MUESTRA LAS MULTIPLES ENTRADAS
-if($campo_multiple !="1" ){ $limite =" asc limit 1 ";}else {$limite =" asc ";}
-if(@$orden !=""){ $campo_orden =" AND orden ='$orden' ";}else {$campo_orden ="";}
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$valor=mysqli_real_escape_string($link,$valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-/*
-$consulta = "SELECT * FROM `form_datos`
-WHERE `form_id` = '$perfil'
-AND id_campo='$id_campo' $valor
-AND `control` = '$id_control' $campo_orden
-GROUP BY orden
-ORDER BY timestamp $limite ";
-*/
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$perfil'
- AND id_campo ='$id_campo' $valor
- AND control ='$id_control' $campo_orden
- $where_timestamp
- group by orden
- ORDER BY orden $limite";
-
-$sql =mysqli_query($link,$consulta);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$timestamp=mysqli_result($sql,0,"timestamp");
-$orden=mysqli_result($sql,0,"orden");
-$id_usuario=mysqli_result($sql,0,"id_usuario");
-$ip=mysqli_result($sql,0,"ip");
-mysqli_data_seek($sql, 0);
-$md5_contenido = "";
-if($cant === 1) {
- //$contenido=mysqli_result($sql,0,"contenido");
- $identificador=mysqli_result($sql,0,"identificador");
- $identificador = explode(',',$identificador);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $md5_contenido = $contenido_campo[3];
- //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
- //$md5_contenido = $md5_contenido[0];
- $contenido = "$contenido_campo[0]";
- //$contenido_array[]=$contenido_campo[0];
- }else {
-while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_campo[0]\n";
- $contenido_li .= "$contenido_campo[0] ";
- $contenido_array[]=$contenido_campo[0];
- $editable .= "".editar_campo("form_datos","$identificador","contenido","")." ";
-
- }
- }
-// $contenido .="$consulta";
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = "$contenido";
-$existe[] = $md5_contenido;
-$existe[] = $orden;
-$existe[] = $id_usuario;
-$existe[] = $ip;
-$existe[] = $contenido_li;
-if($cant === 1) { $existe[] = $contenido;}else{
-$existe[] = json_encode($contenido_array);
-}
-$existe[] = $contenido_array;
-$existe[] = $editable;
-}
-return $existe;
- }
-
-function formulario_grabar($formulario) {
- $debug="";
- $respuesta = new xajaxResponse('utf-8');
- $datos="";
- $envio="";
- //$formulario = mysql_seguridad($formulario);
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
- $consulta_grabada ='0';
- $control = $formulario['control']; //
- $form_id = $formulario['form_id']; //
- $tipo = $formulario['tipo']; //
- $metadatos = json_decode($formulario['metadatos']);
- if(@$formulario['imagen'] !=''){$formulario[0][0] = $formulario['imagen'];}
-
- $consulta_form = "SELECT * FROM form_contenido_campos,form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$form_id' ";
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
- if(isset ( $_SESSION['id_empresa'])){$id_empresa = $_SESSION['id_empresa']; }else{
- $id_empresa = remplacetas('form_id','id',$formulario['form_id'],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- }
-
- if(isset ( $_SESSION['equipo'])){$equipo = $_SESSION['equipo']; }else { $equipo = NULL;}
-foreach($formulario as $c=>$v){
-
-
-if (is_array($v) ){
- foreach($v as $C=>$V){
-
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if(@$campo_tipo[0] =="30" OR @$campo_tipo[0] =="24") {
- $V=array();
- $V[$c]=$v;
-
- $V = json_encode($V);
-}
- if($V != '') {
-
-
-
-$datos .= "$$c = \$formulario['$c'][$C]; // $V /$campo_tipo[0]
";
- if($campo_tipo[0] =='12' OR $campo_tipo[0] =='13') {
- $validar = validar_email($V);
- if($validar == '0') {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }else {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- }
- }
- if($campo_tipo[0] =='3' ) {
- $validar = is_numeric($V);
- if(is_numeric($V) ) {
- $rango = remplacetas('form_campos_valores','id_form_campo',$c,'campo_valor',"") ;
- $campos = explode(":",$rango[0]);
- if($campos[0] =='rango') {
- $valores_rango = explode(";",$campos[1]);
-
- $min= $valores_rango[0];
- $max= $valores_rango[1];
- if($V < $min OR $V > $max) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] debe estar entre $min y $max");
- return $respuesta;
- }
-
- }
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
- }else{
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] solo acepta valores numéricos");
- return $respuesta;
- }
- }
- if($campo_tipo[0] =='11' ) {
-
- $rango = remplacetas('form_campos_valores','id_form_campo',$c,'campo_valor',"") ;
- $campos = explode(":",$rango[0]);
- if($campos[0] =='rango') {
- $valores_rango = explode(";",$campos[1]);
- $min= strtotime("$valores_rango[0]");
-
- $ano = date("Y", strtotime($valores_rango[0]));
- $mes = date("m", strtotime($valores_rango[0]));
- $dia = date("d", strtotime($valores_rango[0]));
-
-
- if($valores_rango[1] =='0') { $max = time(); $valores_rango[1]= $max; $max_fecha = date("Y-m-d");}else{$max= strtotime("$valores_rango[1]"); $max_fecha= $valores_rango[1];}
-
-
- $fecha = strtotime("$V");
-
- if($fecha < $min OR $fecha > $max) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] debe estar entre $valores_rango[0] y $max_fecha");
- return $respuesta;
- }
-
- }
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
-
- }
-
- if($campo_tipo[0]=='17') {
- $limite = limite("$c",'','limite');
- $size= strlen($V);
- $restante = ($limite - $size);
- if( $restante < 0) {
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] no debe tener mas de $limite caractéres, sobran $restante");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
- }
-
-
-
- }
-else{ //busca campos vacios
-
-$campo_obligatorio = remplacetas("form_contenido_campos","id_campo",$c,"obligatorio","id_form = '$formulario[form_id]'");
-if($campo_obligatorio[0] =='1'){
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] es obligatorio");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
-
-}
-
-$md5 = md5($V);
-$igual = formulario_valor_campo("$form_id","$c","$md5","$formulario[control]","$C","");
-$existe = formulario_valor_campo("$form_id","$c","","$formulario[control]","$C","");
-//$valor_anterior .= $existe[3]."| ";
-//$debug .= "$existe";
-$valor_original =$V;
-/*if(@$campo_tipo[0] =="30") {
- $V=array();
- $V[$c]=$v;
-
- $V = json_encode($V);
-}*/
-if(!is_null($existe) AND $tipo =='edit' AND $V =='') {
- $consulta_vacio ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa, equipo)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa','$equipo');";
-
- $sql=mysqli_query($link,$consulta_vacio);
- if($sql) {
- $consulta_grabada ='1';
- }
-}
-if(is_null($igual) ){$repetido = 0;}else{
-$repetido = 1;
-}
-
-
-//return $respuesta;
-//$respuesta->addAlert("$debug");
-//return $respuesta;
-/*$v_json=array();
-$v_json[$c]=$V;
-$v_json = json_encode($v_json);
-*/
-//$debug .= "V = $V /c = $c /repetido = $repetido /igual= $igual $v_json ";
-///convertir json y comparar en el campo 30
-//$V = str_replace("
", "", $V );
-if(($V !='' ) && (is_numeric($c)) AND $repetido !=1 ) {
-//$debug = "Hola mundo";
- $V = mysqli_real_escape_string($link,$V);
- ///
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if(@$campo_tipo[0] =="30" OR @$campo_tipo[0] =="24") { $V=$V;}else{$V = htmlentities($V);}
-
-
-
-if(@$campo_tipo[0] =="18") {
- $V = md5("$V");
-}
-
-else{$V=$V;}
-
-
- $consulta ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa, equipo)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '".@$_SESSION[id]."', '$V', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa','$equipo');";
-$json_datos[] = array($c, array("nombre_campo",$campo_nombre[0]), array("contenido",$V),array("orden",$C));
- $sql=mysqli_query($link,$consulta);
- $debug .= "$consulta = $sql ,";
- if($sql) {
- $consulta_grabada ='1';
- }
- }
-
- } ///fin del array
-
- }///fin del array primario
- else {
- if($v !='') { }
- }
- }
-
-
-
-
-// }
-// }
-
-//$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-
-
- $x= $metadatos[1][1];
- $y= $metadatos[2][1];
- $z= $metadatos[3][1];
- $autor= $metadatos[4][1];
-
- if($formulario['clase'] !=""){
- parametrizacion_linea('form_id',"$formulario[form_id]",'clase',"$formulario[clase]",'mensaje_$control','',"$formulario[control]");
- //parametrizacion_linea('form_id','$id','clase','green','mensaje_$row[control]','','$row[control]');
-
- }
-
- $posicion = parametrizacion_linea('form_id',"$formulario[form_id]",'posicion',"$x-$y-$z",'mensaje_$control','',"$formulario[control]");
- $metadatos_iniciales = parametrizacion_linea('form_id',"$formulario[form_id]",'metadatos_iniciales',"$x-$y-$z-$autor",'mensaje_$control','',"$formulario[control]");
- $autor = parametrizacion_linea('form_id',"$formulario[form_id]",'autor',"$autor",'mensaje_$control','',"$formulario[control]");
-
- if(@$formulario['continuar']=='1') {
-// xajax_formulario_embebido_ajax($form[0],'$identificador','edit')
- //$respuesta->addscript("$('#muestraInfo').modal('hide')");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("xajax_formulario_embebido_ajax('','$formulario[form_id]','$formulario[control]','edit') ");
- return $respuesta;
- }
-
-if($tipo == "embebidoX" )
-{
- $exito ="
-
- $formulario[mensaje]
-
- ";
- $mail = '1';
- }
- elseif($tipo == "solocampos" ){
-
-
- $exito ="
-
- $formulario[mensaje]
-
- ";
-
- $mail='0';
- }
- else{
- $campo_envio = buscar_campo_tipo($formulario['form_id'],"13");
- if($campo_envio[0] != "") {
-$envio = email_contenido("$formulario[form_id]","$formulario[control]","$campo_envio[0]",'');
- }
-
-if($tipo = "embebido") {
-$otro_formulario ="
-
- Llenar otro formulario
-
-";
-}else {
- $otro_formulario = "
-
- Llenar otro formulario
-
-
- ";
-}
-$json_encabezado = array( array("form_id",$formulario['form_id']),array("usuario","$_SESSION[id]"),array("timestamp",time()),array("empresa","$id_empresa"),array("ip","$ip"),array("equipo","$equipo"));
-$json_datos= array($formulario["control"],array($json_encabezado,array("datos",$json_datos) ));
-$mostrar_json = json_encode($json_datos,JSON_PRETTY_PRINT);
-
-$impresion = formulario_imprimir("","$formulario[control]","preview",'');
-$mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
-//$impresion = mostrar_identificador($formulario['control']);
- $exito ="
-
- $mensaje_agradecimiento[0]
-
-
- $impresion
-
-
- Gracias por aportar $formulario[form_nombre]
-
-
- $otro_formulario
-
-
- $envio
-
-
-
";
-
-// $mail ='1';
- }
-
-//if($mail =='1') {
-
- //$propietario = remplacetas('form_id','id',$formulario[form_id],'propietario',"") ;
- //$propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $email_envio = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($email_envio[0] !="") {
- $impresion = formulario_imprimir("","$formulario[control]","preview");
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- //// siempre se enviara el email desde el mail parametrizado en la empresa 1
- //$email = remplacetas("empresa","id","1","email","");
- $email = remplacetas("empresa","id","$id_empresa","email","");
- $reply = remplacetas("empresa","id","$id_empresa","email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$formulario[form_id],"nombre","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $razon_social[0] <$reply[0]>\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0]" . "\r\n";
-
-$asunto= "$nombre_formulario[0]";
-$cuerpo ="
-$mensaje_agradecimiento[0]
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]I$formulario[control]
-
-Descargo de responsabilidades
-Esta herramienta es creada y proporcionada por Tupale.co, como portal para el activismo de datos no nos hacemos responsables por el uso de la herramienta y cuando utilizas esta herramienta para enviar una carta firmas la petición con tu nombre personal, de esta forma es responsabilidad de cada persona que diligencie el formulario así como los comentarios escritos y los datos personales, por motivos de seguridad almacenamos temporalmente algunos metadatos como tu dirección IP y la hora de diligenciamiento de la carta, los demás datos personales son aquellos pedidos en el formulario que se encuentran protegidos por las politicas que puedes leer a continuación: Políticas de privacidad y protección de datos.
-
";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $exito .=""; }else {$exito .="error enviando correo";}
- //$exito .= "$email[0] $headers ";
- }
- /// }
- if($formulario['tipo_form'] =='mini'){
- $respuesta -> addScript("xajax_limpia_div('nueva_nota_$formulario[control]')");
- $respuesta->addScript("make_draggable($('.note'));");
-
- return $respuesta;
-
-
- }
- $respuesta->addAssign("div_$control","innerHTML","$exito ");
- return $respuesta;
- }else{
-
- $datos = print_r($formulario,true);
- $mensaje ="
-
-
Todo bien pero al parecer no se modificaron registros ";
- $respuesta->addAssign("div_$control","innerHTML","$mensaje");
-
- }
-//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
-return $respuesta;
-}
-$xajax->registerFunction("formulario_grabar");
-
-function mysql_seguridad($inp) {
- if(is_array($inp))
- return array_map(__METHOD__, $inp);
-
- if(!empty($inp) && is_string($inp)) {
- return str_replace(array('\\', "\0", "'", '"', "\x1a"), array('\\\\', '\\0', "\\*", "\\*", '\\Z'), $inp);
- }
-
- return $inp;
-}
-
-function formulario_campos_render_multiple($id_campo,$id_form,$control,$item) {
-
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$id_form'
- AND id_campo ='$id_campo'
- AND control ='$control'
- group by orden ORDER BY orden asc";
- $link=Conectarse();
- //$resultado .= "$consulta";
- mysqli_set_charset($link, "utf8");
- $sql =mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0' ){
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- //$identificador = $row[identificador];
-
- /// banear para que el campo 24 no se comporte como multiple en la edicion
-# $resultado .= $identificador;
- $resultado .= formulario_campos_render($row['id_campo'],$id_form,$control,$row['orden'],$identificador);
- $item = $item + 1;
- }
- $boton= "
- Agregar campo
-
";
- $resultado .= "
-
- $boton
-
";
- return $resultado;
- }
-
- $resultado .= formulario_campos_render($id_campo,$id_form,'',$item,'')."";
-
- return $resultado;
-}
-
-
-
-function formulario_modal($id,$form_respuesta,$control,$tipo) {
-
- $respuesta = new xajaxResponse('utf-8');
- $solo_campos ="";
- $subir_imagen ="";
-
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
- $formulario_respuesta = formulario_respuesta("$id","$control");
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"",'') ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = "$formulario_respuesta";
- $pie .= empresa_datos("$id_empresa",'pie');
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $cabecera ="".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
-
- $nuevo_formulario = "Llenar otro formulario ";
-if($control !='' AND $tipo =='' ) {
- $impresion = formulario_imprimir("$id","$control","");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $muestra_form = "$impresion
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $modificable = remplacetas('form_id','id',$id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
-
-$consulta = "
- SELECT * FROM form_id, form_contenido_campos
- WHERE form_id.id = form_contenido_campos.id_form
- AND form_id.id = '$id' ORDER BY form_contenido_campos.orden ASC
- ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- $descripcion=mysqli_result($sql,0,"descripcion");
- $nombre=mysqli_result($sql,0,"nombre");
- $id_empresa=mysqli_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera = "
- $salir
-
-
-
-
-
-
-
-
-
$nombre $descripcion
-
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($id,"15");
-@$campo_imagen_nombre = $campo_imagen[1];
-@$campo_imagen = $campo_imagen[0];
-
-
-/*if (@$campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$id","$campo_imagen"."[0]");
-
-
- }*/
- $muestra_form = "
-
-
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {
-
- //if(null === @$_SESSION['id'] AND $permiso_identificador != $control) {
- if($_SESSION['id_empresa'] !== $id_empresa AND $permiso_identificador != $control) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
-
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //// si no esta logueado nose puede editar ////
- $control_edit = "$control";
-
- }else {$control_edit = "";}
-
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas("form_campos","id","$row[id_campo]","campo_tipo","");
- //if($tipo_campo[0] =="24") { $row[multiple] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos = formulario_campos_render_multiple($row['id_campo'],$id,$control_edit);
- }else{
- $campos = formulario_campos_render($row['id_campo'],$id,$control_edit,'','');
- }
- $muestra_form .= "$campos ";
- $solo_campos .= "$campos ";
- }
- $muestra_form .="
-
- ";
- }
-
-$muestra_form .="
-
-
-
";
- $muestra_form = "$muestra_form
";
-if($tipo=='campos') {
- return $solo_campos;
-}
-if($tipo=='embebido') {
- return $muestra_form;
-}
-
-$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
-$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
-$respuesta->addAssign("pie_modal","innerHTML","$pie");
-$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-//$respuesta->addscript("$('textarea').markdown({autofocus:false,savable:false})");
-//$respuesta->addscript("$(document).ready(function () { $(\"#24[0]\").cleditor(); })");
-//$(document).ready(function () { $("#input").cleditor(); });
-
-
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_modal");
-
-
-
-function limpia_div($capa){
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($capa,"style.padding","0px");
-$respuesta->addClear($capa,"innerHTML");
-
-return $respuesta;
-}$xajax->registerFunction("limpia_div");
-
-function contenido_ocultar($capa){
-$respuesta = new xajaxResponse('utf-8');
-//$respuesta->addAssign($capa,"innerHTML","$contenido");
-$respuesta->addAssign("$capa","className","hidden");
-
-return $respuesta;
-}$xajax->registerFunction("contenido_ocultar");
-
-function contenido_show($capa){
-$respuesta = new xajaxResponse('utf-8');
-//$respuesta->addAssign($capa,"innerHTML","$contenido");
-$respuesta->addAssign("$capa","className","show");
-
-return $respuesta;
-}$xajax->registerFunction("contenido_show");
-
-function contenido_cambiar($div,$contenido){
-$respuesta = new xajaxResponse('utf-8');
-//$respuesta->addAssign($capa,"innerHTML","$contenido");
-$respuesta->addAssign("$div","innerHTML","$contenido");
-
-return $respuesta;
-}$xajax->registerFunction("contenido_cambiar");
-
-
-function select_key($tabla,$key,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_set_charset($link, "utf8");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($link,$consulta);
-if($nombre==''){$name=$tabla."_".$key;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-$resultado="
-Seleccione
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados 0011
";}
-
-return $resultado;
-}
-
-function select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_set_charset($link, "utf8");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
-if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($link,$consulta);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados 0011
";}
-
-return $resultado;
-}
-
-function select_empresa($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor,$id_empresa){
- $w ="";
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$tablas= explode(",",$tabla);
-$tabla1= $tablas[0];
-@$tabla2= $tablas[1];
-
-$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_set_charset($link, "utf8");
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- if($where =='AGRUPADO'){$group="GROUP BY $value ";}
- elseif($where != ''){$w = "AND ".$where; $group="GROUP BY $value "; }
- else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE $tabla1.id_empresa = '$id_empresa' $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($link,$consulta);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados 0012
";}
-
-return $resultado;
-}
-function sin_acentos($cadena) {
-$no_permitidas= array ("á","é","í","ó","ú","Á","É","Í","Ó","Ú","ñ","À","Ã","Ì","Ò","Ù","Ù","à ","è","ì","ò","ù","ç","Ç","â","ê","î","ô","û","Â","Ê","ÃŽ","Ô","Û","ü","ö","Ö","ï","ä","«","Ò","Ã","Ä","Ë");
-$permitidas= array ("a","e","i","o","u","A","E","I","O","U","n","N","A","E","I","O","U","a","e","i","o","u","c","C","a","e","i","o","u","A","E","I","O","U","u","o","O","i","a","e","U","I","A","E");
-$texto = str_replace($no_permitidas, $permitidas ,$cadena);
-return $texto;
-}
-
-function select_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado="
-Seleccione
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
- //$coll = collator_create( 'en_US' );
- //$res = collator_compare( $coll, $row['campo_valor'], $valor );
-if( $row['campo_valor'] == "$valor"){$selected="selected";}else{$selected ="";}
-//if($res === 0){$selected="selected";}else{$selected ="";}
-//if(strcmp($row['campo_valor'], $valor) === 0 ){$selected="selected";}else{$selected ="";}
-$resultado .= " $row[campo_valor] ";
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados 013
";}
-
-return $resultado;
-}
-
-
-
-
-function radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-$valor = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-$nombre_linea = mysqli_result($sql,0,"campo_nombre");
-$descripcion_linea = mysqli_result($sql,0,"campo_descripcion");
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor[0]"){$selected="checked";}else{$selected ="";}
-$lineas .= " $row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados 0014
";}
-
-return $resultado;
-}
-
-function radio_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-$nombre_linea = mysqli_result($sql,0,"campo_nombre");
-$descripcion_linea = mysqli_result($sql,0,"campo_descripcion");
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$lineas .= "$row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados 0014
";}
-
-return $resultado;
-}
-
-
-function radio_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado="" ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$resultado .= "
-
-
- $row[campo_valor]
-
-
";
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados 0015
";}
-
-return $resultado;
-}
-
-
-function checkbox_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-$valor_actual = json_render("$valor","csv","$control");
- if (mysqli_num_rows($sql)!='0'){
- // $resultado=" " ;
- //$name= array();
- while( $row = mysqli_fetch_array( $sql ) ) {
- $existe = strpos($valor_actual, $row[campo_valor]);
- if( $existe != ""){$selected="checked";}
- else{$selected ="";}
- $resultado .= "
-
-
-
- $row[campo_valor]
-
-
";
- }
- //$resultado .= " $valor_actual";
- }
- else{$resultado = " No hay resultados 0027
";}
-return $resultado;
-
-////
-
-
-return $resultado;
-}
-
-function select_multiple($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-$valor_actual = json_render("$valor","csv","$control");
- if (mysqli_num_rows($sql)!='0'){
- $resultado=" " ;
- while( $row = mysqli_fetch_array( $sql ) ) {
- $existe = strpos($valor_actual, $row[campo_valor]);
- if( $existe != ""){$selected="selected";}
- else{$selected ="";}
- $resultado .= "$row[campo_valor] ";
- }
- $resultado .= " $valor_actual";
- }
- else{$resultado = " No hay resultados 0026
";}
-return $resultado;
-}
-
-
-function rango($tabla,$campo,$key,$valor,$selected,$nombre,$onchange){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT min($campo) as min , max($campo) as max FROM $tabla WHERE $key ='$valor' ";
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- $min=mysqli_result($sql,0,"min");
- $max=mysqli_result($sql,0,"max");
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-$resultado="
- $min
-
- $max $selected
-
" ;
-
-
- }else{$resultado = " No hay resultados 0017
";}
-
-return $resultado;
-}
-
-function limite($id_campo,$contenido,$tipo){
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT campo_valor FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($link,$consulta);
-
-if (mysqli_num_rows($sql)!='0'){
- $limite=mysqli_result($sql,0,"campo_valor");
-
- }else{}
- if($tipo =='limite') { return $limite;}
-$respuesta = new xajaxResponse('utf-8');
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("limite");
-
-function confirma_campo($valor_1,$valor_2,$campo,$campo_confirmacion){
- $respuesta = new xajaxResponse('utf-8');
- $pos = strpos($campo,"email");
-
-if($pos == "") { //// si no es un email
- }
- else {//// si es un email se revisa
- $email = validar_email("$valor_1");
- if($email === 0 ) {
- $respuesta->addAssign("$campo","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("El email no es valido ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- return $respuesta;
- }
- else{
- }
- }
-
-
-
- if($valor_1 != $valor_2){$resultado = "Los valores NO son iguales";
- $respuesta->addAlert("$resultado");
- /// $respuesta->addAssign("$campo","style.color","red");
-
-
- $respuesta->addAssign("$campo","value","$pos");
- $respuesta->addAssign("$campo_confirmacion","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- // document.getElementById('mobileno').focus();
-
-
- }else{
- //$respuesta->addAssign("$campo_confirmacion","style.color","green");
-
- $respuesta->addAssign("$campo","className"," form-control ");
- $respuesta->addAssign("$campo_confirmacion","className"," form-control ");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-success ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-success ");
- }
- return $respuesta;
-}
-$xajax->registerFunction("confirma_campo");
-
-
-function validar_campo($valor,$campo,$tabla,$div,$id){
-$valor = mysql_seguridad($valor);
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta="SELECT $campo FROM $tabla WHERE $campo = '$valor' LIMIT 1";
-$sql =mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0' ){
-$verificacion = "atencion"; $existe='';
-
-$respuesta->addAssign($campo,"value","");
-///$respuesta->addAlert("El valor $valor $existe existe");
-$resultado = "Grrr $valor $existe existe ";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else {$verificacion ="check"; $existe='NO';}
-$resultado = "Ok, buen $campo ! ";
-$respuesta->addAssign("$id","style.backgroundColor","#CBE7CB");
-//$resultado .= "$valor,$campo,$tabla,$div";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-
-return $respuesta;
-}
-$xajax->registerFunction("validar_campo");
-
-
-function comprobar_email($email,$tipo,$campo){
-$email = mysql_seguridad($email);
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='tercero') {$id_campo='tercero_email';}
-
-
-else{$id_campo = 'email';}
-
-if($campo !=''){
-$id_campo="$campo";
-}
-
-
-if ($email == "" AND $tipo==''){
- $respuesta->addAlert("El campo email es obligatorio ");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- return $respuesta;
- }
-
- $mail_correcto = 0;
- //compruebo unas cosas primeras
- if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
- if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
- //miro si tiene caracter .
- if (substr_count($email,".")>= 1){
- //obtengo la terminacion del dominio
- $term_dom = substr(strrchr ($email, '.'),1);
- //compruebo que la terminación del dominio sea correcta
- if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
- //compruebo que lo de antes del dominio sea correcto
- $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
- $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
- if ($caracter_ult != "@" && $caracter_ult != "."){
- $mail_correcto = 1;
- }
- }
- }
- }
- }
- if ($mail_correcto AND $tipo=='' )
- {
-$consulta= "SELECT email FROM usuarios WHERE email = '$email' LIMIT 1 ";
- $link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-$revisa=mysqli_result($sql,0,"email");
-if ($revisa != ''){
-
- $respuesta->addAlert("$email: ya está registrado ");
- $respuesta->addAssign("email","style.color","red");
- $respuesta->addAssign("email","value","");
- return $respuesta;
- }
- $respuesta->addAssign("email","style.color","green");}
- elseif ($mail_correcto AND $tipo==='revisar' ) {
- $revisar = remplacetas("usuarios","email",$email,"email","");
- if($revisar[0] != '') {
-
- $respuesta->addAssign("$campo","style.color","white");
- $respuesta->addAssign("$id_campo","style.backgroundColor","green");
- }else{
- $respuesta->addAlert("$email: No existe en el sistema)");
- $respuesta->addAssign("$campo","value","");
- }
- return $respuesta;
- }
-
- elseif ($mail_correcto AND $tipo==='tercero' ) {
- $documento = remplacetas("terceros","email",$email,"documento","");
- if($documento[1] =='') { /// si el tercero NO existe
-
- }else { /// si el tercero existe en el sistema
-
- $tipo_persona = remplacetas("terceros","id",$documento[1],"tipo_persona","");
-
- if($tipo_persona[0] =='1') {
- $razon_social = remplacetas("terceros","id",$documento[1],"razon_social","");
- $resultado .= " $razon_social[0]] Nit: $documento[0]";
- } else {
- $primer_nombre = remplacetas("terceros","id",$documento[1],"p_nombre","");
- $segundo_nombre = remplacetas("terceros","id",$documento[1],"s_nombre","");
- $primer_apellido = remplacetas("terceros","id",$documento[1],"p_apellido","");
- $segundo_apellido = remplacetas("terceros","id",$documento[1],"s_apellido","");
- $resultado .=" \r $primer_nombre[0] $segundo_nombre[0] $primer_apellido[0] $segundo_apellido[0] \r Documento: $documento[0]";
- }
-
- $respuesta->addAlert("$email: $resultado");
- $respuesta->addAssign("tercero_documento","value","$documento[0]");
- $respuesta->addAssign("tercero_primer_nombre","value","$primer_nombre[0]");
- $respuesta->addAssign("tercero_segundo_nombre","value","$segundo_nombre[0]");
- $respuesta->addAssign("tercero_primer_apellido","value","$primer_apellido[0]");
- $respuesta->addAssign("tercero_segundo_apellido","value","$segundo_apellido[0]");
- $respuesta->addAssign("tercero_razon_social","value","$razon_social[0]");
- $respuesta->addAssign("tercero_id","value","$documento[1]");
-
- }
-
- }
- else
- {$respuesta->addAlert("$email: no es un correo válido");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("comprobar_email");
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-
-function milfs(){
-
- if($_SESSION['grupo'] != "1") {
- $menu = "Continuar... ";// header("Location: ../");
- }else{
-
- $crear_campos = formulario_crear_campo('','','');
- $listado = formulario_listado('','','');
-
- //$consultas = formulario_consultar('','');
- //$importador = formulario_importador('');
- //$limpiar_cache = borrar_tmp('');
- $configuracion= configuracion('');
-
- $login = login_boton('');
- $usuarios = "
-
-
- Gestión de usuarios
- ";
- $menu =
-"
-
-
-
- $crear_campos
-
- $listado
- $usuarios
- $configuracion
-
-
-
-
-
";
- }
- return $menu;
-}
-
-function url_existe($url)
-{
- $handle = @fopen($url, "r");
- if ($handle == false)
- return NULL;
- fclose($handle);
- return $url;
-}
-function es_imagen($url)
- {
- $imageSizeArray = getimagesize($url);
- $imageTypeArray = $imageSizeArray[2];
- return (bool)(in_array($imageTypeArray , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG )));
- }
-function parametrizacion($array) {
- //return $array;
- $link=Conectarse();
- mysqli_real_escape_string($link,$array);
- $accion = $array[accion];
- $tabla = $array[tabla];
- $campo = $array[campo];
- $opcion = $array[opcion];
- $descripcion= $array[descripcion];
- $visible= $array[visible];
- $id= $array[id];
-
- if($accion =='grabar'){
- $consulta= "INSERT INTO form_parametrizacion set tabla='$tabla', campo ='$campo',opcion ='$opcion' , descripcion ='$descripcion' ,visible='$visible'";
- }
- // return $consulta;
- $sql=mysqli_query($link,$consulta);
- if($sql){return "Campo grabado"; }else{return "";}
-
-}
-
-
-
-function registro_express($formulario,$accion) {
- //$formulario = mysql_seguridad($formulario);
- require("includes/datos.php");
- require ("includes/parametrizacion.php");
-
- if($nombre_formulario =="") {$nombre_formulario = "login";}
- $boton ="Grabar
";
-$respuesta = new xajaxResponse('utf-8');
-
-
- if($accion =='confirmar')
- {
- $div = "registro_confirmacion_email";
- $email_existe = remplacetas("$tabla_autenticacion","email",$formulario[email_express_confirmar],"email","");
- $documento_existe = remplacetas("$tabla_autenticacion","documento_numero",$formulario[documento_express],"documento_numero","");
- if($email_existe[0] !="" or $formulario[email_express_confirmar] ==="") {
- $respuesta->addAlert("No se ha especificado un email o ya está en uso ");
- $respuesta->addAssign("email_express_grupo","className"," input-group has-error ");
- ///$respuesta->addAssign("debug","innerHTML"," $email_existe[2]");
- $respuesta->addScript("document.getElementById('email_express').focus(); ");
- return $respuesta;
- }
- if($documento_existe[0] !="" OR $formulario[documento_express] === "") {
- $respuesta->addAlert("No se ha proporcionado un documento único // $formulario[documento_express] // ");
- $respuesta->addAssign("documento_express_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('documento_express').focus(); ");
- return $respuesta;
- }
- if( !isset($formulario[password_express_confirmar]) ){
- $resultado ="Por favor escribe una clave. $formulario[password_express_confirmar] // $formulario[password_express]
$boton";
- $respuesta->addAssign("password_express"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("Por favor escribe una la clave ");
- $respuesta->addScript("document.getElementById('password_express').focus(); ");
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }
- if($formulario[password_express_confirmar] =="" or $formulario[password_express_confirmar] !== $formulario[password_express] ){
- $resultado ="Por favor escribe y confirma una clave. $formulario[password_express_confirmar] // $formulario[password_express]
$boton";
- $respuesta->addAssign("password_express"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("Por favor escribe y confirma la clave XXX");
- $respuesta->addScript("document.getElementById('password_express').focus(); ");
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }
- if($formulario[email_express_confirmar] ==="") {
- $resultado .= "$boton No hay un email válido // $formulario[email_express_confirmar]
";
- $respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
- }else{
- $email_envio = $formulario['email_express_confirmar'];
-
- $rrn = rand(123,999);
- $rrncode = MD5("$rrn");
-// $aviso= aviso('','mail privacidad','');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-
-$asunto= "Código de validación";
-$cuerpo ="
-
-
Registro
-
-
-
Código de validación
-
Bienvenido a nuestra aplicación. Por favor digita el siguente código para validar tu cuenta.
-
$rrn
-
-
-
- $aviso
- ";
-
-mail("$email_envio","$asunto","$cuerpo","$headers") ;
- $boton ="Confirmar
";
- $control = MD5(mktime().$rrncode);
- $resultado .="
-
- $boton
- ";
- }
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
- }elseif($accion =="elegir") {
- $form = "
-
-
-
-
-
-
Ya estoy registrado
-
-
-
-
-
-
Antes de continuar, por favor revisa nuestras Políticas de privacidad y protección de datos.
- ";
- return $form;
- }
-elseif($accion =="validar") {
- $boton ="
Confirmar
";
- $div = "registro_confirmacion_email";
-
-
-if($formulario[password_express_confirmar] =="" OR $formulario[password_express_confirmar] != $formulario[password_express] ){
- $resultado ="
Por favor escribe y confirma una clave.
$boton";
- $respuesta->addAssign("password_express"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("Por favor escribe y confirma la clave");
- $respuesta->addScript("document.getElementById('password_express').focus(); ");
- $respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
- }
-$codigo_confirmacion = $formulario[codigo_confirmacion]; //
-$rrn = $formulario[rrn]; //
-$codificado = md5("$codigo_confirmacion");
-if($rrn == $codificado) {
-$control = $formulario[control]; // nuevo_
-$id_empresa = $formulario[id_empresa]; // nuevo_
-$equipo = $formulario[equipo]; // nuevo_
-if($id_empresa =="") {$id_empresa= $_SESSION['id_empresa'];}
-$nombre_formulario = $formulario[nombre_formulario]; // nuevo_
-$email_express = $formulario[email_express]; // aa@gmail.com
-$email_express_confirmar = $formulario[email_express_confirmar]; // aa@gmail.com
-$nombre_express = $formulario[nombre_express]; // nombre
-$apellido_express = $formulario[apellido_express]; // apellido
-$telefono_express = $formulario[telefono_express]; // 324343
-$password_express = $formulario[password_express]; // 1234
-$documento = $formulario[documento_express]; // 1234
-$password_express_confirmar = $formulario[password_express_confirmar]; // 23456
- $ip = obtener_ip();
-
- $link = Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$consulta = "INSERT INTO $tabla_autenticacion (username,p_nombre,p_apellido,email,passwd,control,status,lastip,id_empresa,documento_numero,equipo)
- VALUES ('$email_express_confirmar','$nombre_express','$apellido_express','$email_express_confirmar','".MD5($password_express_confirmar)."','$control','1','$ip','$id_empresa','$documento','$equipo')";
-//$respuesta->addAssign("debug","innerHTML",$consulta);
-//return $respuesta;
- $sql_consulta=mysqli_query($link,$consulta);
- if($sql_consulta) {
- $id = mysqli_insert_id($link);
-
- $consulta_localizacion = "INSERT INTO localizacion (id_localizado,telefono,id_grupo) VALUES ('$id','$telefono_express','1')";
- $consulta_empresa = "INSERT INTO empresa SET razon_social = '$nombre_express $nombre_express', regimen_tributario = 'simplificado' ,id_responsable='$id'";
- $sql_localizacion=mysqli_query($link,$consulta_localizacion);
- //$sql_empresa=mysqli_query($link,$consulta_empresa);
- if($sql_empresa) {
- $id_empresa = mysqli_insert_id($link);
- $_SESSION[id_empresa] = $id_empresa;
- $_SESSION[id] = $id;
- }
- //// faltan variables de session
-
- }
-$resultado = "
Bienvenido
-
Felicitaciones, tu registro se efectuó correctamente, ahora puedes usar nuestros servicios.
-
";
-$div = "contenido";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}else{
-$resultado = "
Error El Código de confirmación no es correcto, por favor inténtalo nuevamente.";
-}
-
-$resultado .= "$boton";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
-}
-elseif($accion =="nuevo") {
-//$respuesta = new xajaxResponse('utf-8');
- $div="contenido";
- if($_SESSION['id'] == 1 AND $soporte_multiempresa !== 0) {
-
-$empresa = select('empresa','id','razon_social','',"estado = '1'",'id_empresa');
-$empresa ="
-
-
- Proyecto
-
- $empresa
-
-
-";
-}
-$listado_usuarios = usuarios_listado($tabla_autenticacion,"");
-$mailer = mailer('','','','');
-$id_empresa = "document.getElementById('id_empresa').value";
-$equipo = equipos('',"$id_empresa",'equipo','') ;
-$form = "
-
-
-
-
- Usuario
-
-
-
- $empresa
-
-
-
-
-
-
-
- $equipo
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-$mailer
-$listado_usuarios
-
-
-";
-$respuesta->addAssign("$div","innerHTML",$form);
-return $respuesta;
-
- }
-
-
-elseif($accion =="boton"){
-
-$modal ="
-
-
-
-
-
-
-
-
- ";
-return; //$modal;
- }
- else{}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-}
-$xajax->registerFunction("registro_express");
-
-
-function cambiar_grupo($id_usuario,$id_grupo){
- $respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $consulta = "UPDATE $_SESSION[tabla_autenticacion]
- SET `id_grupo` = '".mysqli_real_escape_string($link,$id_grupo)."'
- WHERE `id` = '".mysqli_real_escape_string($link,$id_usuario)."' ";
- $sql = mysqli_query($link,$consulta);
-$respuesta->addScript("");
- return $respuesta;
-
-}
-$xajax->registerFunction("cambiar_grupo");
-
-
-function buscar_funcionario($formulario,$tipo,$div){
-
- $tabla_autenticacion = $_SESSION['tabla_autenticacion'];
- $respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
- if($tipo =="buscador"){
- $div ="div_mostrar_funcionario";
- $resultado= "
-
-
-
-
- Documento
-
-
-
-
-
-
-
-
-
- ";
-
-print $resultado; return;
- }
- elseif( $tipo =='busqueda') {
- $id = $formulario;
-//$consulta= "SELECT * FROM $tabla_autenticacion ,usuarios_grupo WHERE $tabla_autenticacion.id_grupo = usuarios_grupo.id_grupo AND documento_numero ='".$documento."' LIMIT 1";
-$consulta= "SELECT *, usuarios_grupo.id AS id_grupo , $tabla_autenticacion.id AS id_usuario
- FROM $tabla_autenticacion ,usuarios_grupo
- WHERE $tabla_autenticacion.id_grupo = usuarios_grupo.id AND $tabla_autenticacion.id ='".$id."' LIMIT 1";
-
-
- //$respuesta->addAlert(" ya $consulta");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
-
- //return $respuesta;
- $sql = mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!=0){
- $resultado ="
";
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($_SESSION['grupo'] === "1") {
- //($tabla,$key,$campo,$valor,$accion,$div,$indice)
- $username = editar_campo("$tabla_autenticacion",$row['id_usuario'],"username","","","","");
- $email = editar_campo("$tabla_autenticacion",$row['id_usuario'],"email","","","","");
- $p_nombre = editar_campo("$tabla_autenticacion",$row['id_usuario'],"p_nombre","","","","");
- $s_nombre = editar_campo("$tabla_autenticacion",$row['id_usuario'],"s_nombre","","","","");
- $p_apellido = editar_campo("$tabla_autenticacion",$row['id_usuario'],"p_apellido","","","","");
- $s_apellido = editar_campo("$tabla_autenticacion",$row['id_usuario'],"s_apellido","","","","");
- $fecha_nacimiento = editar_campo("$tabla_autenticacion",$row['id_usuario'],"fecha_nacimiento","","","","");
- $telefono_celular = editar_campo("$tabla_autenticacion",$row['id_usuario'],"telefono_celular","","","","");
- $titulo_profesional = editar_campo("$tabla_autenticacion",$row['id_usuario'],"titulo_profesional","","","","");
- $ocupacion = editar_campo("$tabla_autenticacion",$row['id_usuario'],"ocupacion","","","","");
- $cargo = editar_campo("$tabla_autenticacion",$row['id_usuario'],"cargo","","","");
- $equipo = editar_campo("$tabla_autenticacion",$row['id_usuario'],"equipo","","","");
- if($row['imagen'] =="") { $imagen = "images/profile.jpg"; }
- else{$imagen= "images/secure/?file=300/$row[imagen]";}
- if($row['firma'] =="") { $firma = ""; }
- else{$firma= "images/secure/?file=300/$row[firma]";}
-
- //$grupo = seleccionar_grupo('id_grupo',"$row[id_grupo]");
- $grupo = select('usuarios_grupo','id','grupo_nombre',"xajax_cambiar_grupo('$row[id_usuario]',(this.value))",'',"","$row[id_grupo]");
- //select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor)
- $grupo ="
-
-
- Grupo:
-
- $grupo
-
-
- ";
- }
-
- //$ = editar_campo("$tabla_autenticacion",$row['id_usuario'],"","","","");
- $listado_formularios = formulario_permisos_usuario("","$id",'');
- $subir_imagen = subir_imagen("","");
- $subir_firma = subir_imagen("","firma");
- $resultado .= "
-
-
-
Perfil de usuario
-
-
-
-
-
-
- $subir_imagen
-
-
Cambiar imagen
-
-
-
- Nombre de usuario: $username
- Primer nombre: $p_nombre
- Otros nombres: $s_nombre
- Primer apellido: $p_apellido
- Otros apellidos: $s_apellido
- Fecha de nacimieno: $fecha_nacimiento
- Teléfono: $telefono_celular
- Titulo profesional: $titulo_profesional
- Ocupación: $ocupacion
- Cargo: $cargo
-
-
-
- $listado_formularios
-
-
-
- Firma escaneada
-
- $subir_firma
-
- Establece firma
-
-
-
-
-
-
-
-
- ";
-
-
- }
-
- $resultado .= "";}else {
-
- $resultado ="
No existe el usuario
";
- }
-
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$regresar");
- //$respuesta->addAssign("titulo_modal","innerHTML","$datos_usuario");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').removeClass('fade').modal('hide')");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-
- }
- elseif( $tipo =='nuevo') {
- ///$grupo = select('usuarios_grupos','id','nombre,regimen','xajax_eapbs((this.value))',"",'');
- $grupo = seleccionar_grupo('id_grupo');
- $resultado ="
-
-
- ";
-
- }
- elseif( $tipo =='grabar') {
- $password = generar_password();
- $password_md5 = md5($password);
- $consulta ="INSERT INTO $tabla_autenticacion SET
-
-
- username='$formulario[username]',
- email='$formulario[email]',
- p_nombre='$formulario[p_nombre]',
- s_nombre='$formulario[s_nombre]',
- p_apellido='$formulario[p_apellido]',
- s_apellido='$formulario[s_apellido]',
- fecha_nacimiento='$formulario[fecha_nacimiento]',
- telefono_celular='$formulario[telefono_celular]',
- titulo_profesional='$formulario[titulo_profesional]',
- documento_numero='$formulario[documento_numero]',
- ocupacion='$formulario[ocupacion]',
- cargo='$formulario[cargo]',
- id_grupo='$formulario[id_grupo]',
- passwd ='$password_md5'
-
- ";
- $insertar = mysqli_query($link,$consulta);
- $resultado = "$consulta";
- }
-else {}
-
- $resultado .="";
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAlert(" ya $resultado");
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("buscar_funcionario");
-
-
-
-function usuarios_listado($tabla,$div){
-
- if($_SESSION['id'] == 1) { } else {$w_empresa = "WHERE id_empresa= '$_SESSION[id_empresa]' ";}
-
-$link=Conectarse();
-
-mysqli_set_charset($link, "utf8");
-
-$consulta = "SELECT * FROM $tabla $w_empresa ORDER BY username ";
-$sql=mysqli_query($link,$consulta);
-
-$resultado="
-$name
-Id Username Nombre Email Proyecto Equipo
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$username= editar_campo("$tabla",$row['id'],"username","","","");
-$p_nombre= editar_campo("$tabla",$row['id'],"p_nombre","","","");
-$p_apellido= editar_campo("$tabla",$row['id'],"p_apellido","","","");
-$email= editar_campo("$tabla",$row['id'],"email","","","");
-$equipo= editar_campo("$tabla",$row['id'],"equipo","","","");
-//$empresa_id= editar_campo("$tabla",$row['id'],"id_empresa","","","");
-$empresa_id= $row['id_empresa'];
-$grupo = remplacetas('usuarios_grupo','id',"$row[id_grupo]","grupo_nombre","") ;
-$empresa = remplacetas('empresa','id',"$row[id_empresa]","razon_social","") ;
-
-
- require ("includes/parametrizacion.php");
- if($_SESSION['id'] == 1 AND $soporte_multiempresa !== 0) {
- $empresa_id= editar_campo("$tabla",$row['id'],"id_empresa","","","");
- }else {$empresa_id= $row['id_empresa'];}
-if($row[id] !="1") {
- $acciones = " ";}
- else {$acciones="";}
-$resultado .= "$row[id] $username $p_nombre $p_apellido $email $empresa[0] $grupo[0] $equipo Editar
$acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados 0018
";
- }
-
- if($div =="") {
- $div="contenido";
- // $resultado ="Configuración multiempresa ";
- return $resultado;
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("usuarios_listado");
-
-
-function XXX($identificador,$tipo,$usuario,$div){
- if($tipo=="todo") {
- $w_tipo ="";
- }else {
- $w_tipo ="AND tipo= '$tipo'";
- }
-$consulta = "SELECT * FROM form_interacciones WHERE identificador = '$identificador' $w_tipo ORDER BY timestamp DESC ";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
- mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = mysqli_num_rows($sql);
-
-require ("milfs/includes/parametrizacion.php");
-
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $usuario = remplacetas('form_datos','control',"$row[usuario]","contenido","id_campo = '$login_campo_nombres'") ;
- $nombre_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido"," id_campo = '$login_campo_nombres'") ;
- $avatar_usuario = remplacetas('form_datos','control',"$control_servicio[0]","contenido","id_campo = '$login_campo_avatar'") ;
- if($tipo =="todo") {
- if($row[tipo] =="Mensaje"){ $alerta='default'; }
- elseif($row[tipo] =="Si"){ $alerta='success'; }
- elseif($row[tipo] =="No"){ $alerta='warning'; }
- elseif($row[tipo] =="Comentar"){ $alerta='info'; }
- else{ $alerta=''; }
-
- }
-
- $listado .= "
-
-
- ".strip_tags($row['mensaje'])."
- $usuario[0] $row[timestamp]
-
-
- ";
-
- }
-$resultado= "
-
-
-
- Interacciones
-
-
-
-
-
";
-}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("XXX");
-
-function cmp($a, $b) {//Ordenar los numeros descendientemente
- if ($a == $b) return 0;
- return ($a < $b) ? 1 : -1;
-}
-
-
-function holamundo() {
-
- $respuesta = new xajaxResponse('utf-8');
- //$respuesta->addAssign("mensaje_$control","innerHTML","");
- $respuesta->addAlert("Hola mundo!");
- return $respuesta;
-}
-
-$xajax->registerFunction("holamundo");
-
-
-?>
diff --git a/milfs/funciones/index.html b/milfs/funciones/index.html
deleted file mode 100644
index e69de29..0000000
diff --git a/milfs/funciones/index.php b/milfs/funciones/index.php
deleted file mode 100644
index c8517bd..0000000
--- a/milfs/funciones/index.php
+++ /dev/null
@@ -1,9027 +0,0 @@
-
- Respuestas:
- ";
- while( $row = mysqli_fetch_array( $sql ) ) {
- $respuesta = mostrar_identificador("$identificador","$row[form_id]","",'simple');
- $fecha = date($format, $row['timestamp']);
- $resultado .= " $respuesta $timestamp ";
-
-}
- $resultado .="
- ";
-}else{$resultado ="";}
-$resultado = "$resultado $formulario_respuesta";
-return $resultado;
-}
-
-
-function formulario_respuesta($id,$identificador) {
- if($id=='') {return;}
- $id = mysql_seguridad($id);
- $consulta = "SELECT * FROM form_id
- WHERE formulario_respuesta = '$id'
- ";
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado ="
- ";
- while( $row = mysqli_fetch_array( $sql ) ) {
- $resultado .= "$row[nombre] $row[descripcion] ";
-
-}
- $resultado .="
";
-}else{$resultado ="";}
-return $resultado;
-}
-function consultar_contenido_formulario($form,$registros,$pagina,$tipo){
- $imagen ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
-$respuesta = new xajaxResponse('utf-8');
-
-
-$id_form = $form;
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql_total=mysqli_query($consulta_principal,$link);
-$total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta_principal.$limite;
- $sql=mysqli_query($consulta_limite,$link);
-mysqli_data_seek($sql_total, 0);
-//$sql=mysqli_query($consulta_principal,$link);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-//$fecha = time ();
-// $ahora = date ( "Y-m-d" , $fecha );
-// $campos = listar_campos_formulario($id_form,"select");
-
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
- $paginacion = "";
- $encabezado = "
-
- ";
-
-// $total_registros = mysqli_num_rows($sql);
-/* $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- */
-// $listado_nombres = "Identificador $listado_nombres ";
-///$listado_campos = listar_campos_formulario("$id_form",'');
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-// if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","landingpage",'');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= " $row[control]";
- }
-$buscador = buscar_datos("*formato*","$form","landingpage","mostrar_resultado");
-$filtro = portal_filtro_campos_select($form,"$campo_filtro","mostrar_resultado","landingpage");
-if( $tipo !== "" AND $tipo !=="embebido" ) {
-$acciones="
-
-
- $filtro
-
- $buscador
-
";
-}
-$resultado = "
-
-
-$acciones
-
-$linea
-$encabezado
-
-";
- }
-else {
-$resultado ="
No hay resultados $consulta_limite";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-
- /*$datos = $resultado;
- $div ="contenido_de_modal";
- $resultado = " $datos
";
- $div_contenido = "$div
";
- */
- if($tipo =="") {
- // $respuesta->addAssign("contenido_interior","innerHTML","$div_contenido");
- $respuesta->addAssign("mostrar_resultado","innerHTML","$resultado");
- return $respuesta;
- }
- if($tipo =="contenido" OR $tipo =="embebido" ) {
- return $resultado;
- }
-}
-$xajax->registerFunction("consultar_contenido_formulario");
-
-
-function multiempresa_listado($tabla,$div){
-$resultado = "";
-$link=Conectarse();
-
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM empresa ORDER BY id DESC ";
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
-
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=3;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
- $encontrados .= "";
- }
- $i++;
- $logo="
";
- $contenido ="
-
";
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- $resultado ="
-
- $encontrados
-
- ";
- }else{
- $resultado = " No hay resultados
";
- }
-if($div =="") { return $resultado; }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa_listado");
-
-
-
-function decodifica_parametro ($string)
-{
- $inicial = substr($string,0,1);
- $string = mb_substr($string,1);
- $cadena = $string;
- //$length = strlen($base);
-
- $size = strlen($string) - 1;
- $string = str_split($string);
-
- //$out = strpos($base, array_pop($string));
-//return $out;
- /*foreach($string as $i => $char)
- {
-
- $out += (strpos($base, $char)* pow($length, $size - $i));
-//$out .= "$i => $char";
- }*/
-$resultado[0]=$inicial;
-//$resultado[1]=$out;
-$resultado[1]=$cadena;
-
- return $resultado;
-}
-
-function grabar_imagen($imagen,$control) {
-
- $imgData = str_replace(' ','+',$imagen);
- $imgData = substr($imgData,strpos($imgData,",")+1);
- $imgData = base64_decode($imgData);
-
- $nombre= $control.".png";
- $filePath = "$_SESSION[path]/tmp/".$nombre;
-
- $file = fopen($filePath, 'w');
- fwrite($file, $imgData);
- fclose($file);
- $full= "$_SESSION[path_images_secure]/full/".$nombre;
- if (!rename($filePath,$full)){}
- else {
- echo generar_miniatura($nombre,"150");
- echo generar_miniatura($nombre,"300");
- echo generar_miniatura($nombre,"600");
- }
-
- //return "$nombre";
- return "$nombre";
-}
-
-
-function generar_miniatura($file,$width) {
//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[0] / $file_info[1];
// Calculamos las nuevas dimensiones
$newwidth = $width;
$newheight = round($newwidth / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 80);
-imagepng($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 9);
-//imagegif($thumb,"$_SESSION[path_images_secure]/".$width."/$file");
-//imagejpeg($thumb,null, 80);
-}
-
-function generar_vcard($identificador){
-$impresion = mostrar_identificador("$identificador","","vcard",'simple');
-$impresion = formulario_imprimir("$id_form","$identificador","$plantilla");
-$nombre ="vcard_".$identificador.".vcf";
-$vcard ="BEGIN:VCARD
-VERSION:3.0
-N:Gump;Forrest
-FN:Forrest Gump
-ORG:Bubba Gump Shrimp Co.
-TITLE:Shrimp Man
-PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif
-TEL;TYPE=WORK,VOICE:(111) 555-1212
-TEL;TYPE=HOME,VOICE:(404) 555-1212
-ADR;TYPE=WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America
-LABEL;TYPE=WORK:100 Waters Edge\nBaytown, LA 30314\nUnited States of America
-ADR;TYPE=HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America
-LABEL;TYPE=HOME:42 Plantation St.\nBaytown, LA 30314\nUnited States of America
-EMAIL;TYPE=PREF,INTERNET:forrestgump@example.com
-REV:20080424T195243Z
-END:VCARD";
-$archivo = "milfs/tmp/$nombre";
-$file=fopen($archivo,"w") or die("Problemas en la creacion");//En esta linea lo que hace PHP es crear el archivo, si ya existe lo sobreescribe
-fputs($file,$impresion);//En esta linea abre el archivo creado anteriormente e ingresa el resultado de tu script PHP
-fclose($file);//Finalmente lo cierra
-/*
-$ruta="/tmp/vcard_".$identificador.".vcf";
-header ("Content-Disposition: attachment; filename=".$ruta);
-header ("Content-Type: application/octet-stream");
-header ("Content-Length: ".filesize($ruta));
-readfile($ruta);
-*/
-return $archivo;
-
-
-}
-
-function autoriza_formulario_mostrar($password,$form,$control) {
- $respuesta = new xajaxResponse('utf-8');
- if($password =="") { unset($_SESSION['permiso_identificador']); $respuesta->addScript("javascript:location.reload(true);"); return $respuesta;}
- $campo = buscar_campo_tipo($form,"18");
- $campo_password = $campo[0];
- $comprobar_clave = remplacetas('form_datos','form_id',"$form",'contenido'," BINARY contenido = MD5('$password') AND id_campo = '$campo_password'") ;
- $password = md5($password);
- $aviso = "";
-
-if($comprobar_clave[0] !== $password ) {
- unset($_SESSION['permiso_identificador']);
- $respuesta->addAlert("La clave no es válida ");
- $aviso = "$comprobar_clave[2] !== $control";
- $respuesta->addAssign("pie_modal","innerHTML",$aviso);
- return $respuesta;
- }
- else{
- $_SESSION['permiso_identificador']="$control";
- //$respuesta->addAssign("pie_modal","innerHTML",$aviso);
- $respuesta->addScript("javascript:location.reload(true);");
- }
- return $respuesta;
-}
-$xajax->registerFunction("autoriza_formulario_mostrar");
-
-
-//($control,$form,$plantilla,$tipo)
-function landingpage_contenido_identificador($identificador,$form,$plantilla,$tipo){
- $linea="";
-
- $id_empresa = remplacetas('form_datos','control',$identificador,'id_empresa',"") ;
- //$form = remplacetas('form_datos','control',$identificador,'form_id',"") ;
-
- $respuestas = respuestas_formulario($form,$identificador);
- $imagen = buscar_imagen($form[0],$identificador,"","$id_empresa[0]");
- $plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$plantilla",'id',"campo = '$form'") ;
-
- $uri = "$_SESSION[site]i$identificador";
- $qr = "http://qwerty.co/qr/?d=$uri";
- if($imagen !="") {
-
- $mostrar_imagen =" ";
- $miniatura = "
- $uri";
-
- }else {
- $miniatura ="i$identificador ";
- $mostrar_imagen = " ";
-
-
-
- }
-
- //
- //$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- if($plantilla[0] !="" ) {
- $impresion = mostrar_identificador($identificador,"","landingpage");
- } else{
- $contenido = mostrar_identificador($identificador,"","");
- $impresion = "
-
-
-
-
-
-
-
-
-
-
-
-
- $contenido
- $miniatura
-
-
- $mostrar_imagen
-
-
-
-
-
-
-
-
-
-
-
- ";
-
- }
- $linea = "
- $impresion
-
-
-
- ";
-
- return $linea;
- }
-
-
-function landingpage_contenido_formulario($form,$registros,$pagina,$div_original){
- $cantidad = formulario_contar($form);
- $div="contenido_interior";
- //if($registros =="") {$registros ="10";}
- $consulta= "SELECT control FROM form_datos WHERE form_id = '$form' GROUP BY control ORDER BY id DESC ";
- $id_empresa = remplacetas('form_id','id',$form,'id_empresa',"") ;
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- //$sql=mysqli_query($consulta,$link);
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($consulta_limite,$link);
-
- $paginacion ="";
- $paginacion .= $indice;
-/*
- /// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($cantidad < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
-
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($consulta_limite,$link);
- $page= $pagina;
- @$pages= ceil($cantidad / $registros); //13; // Hardcoded for testing purpose
- $limit= 20 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
-
- $paginacion = "";
-
- */
-
- //// PAGINACION
-if (mysqli_num_rows($sql)!='0'){
- $linea=" ( $cantidad ) $paginacion";
- $fila = 1;
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $impresion = mostrar_identificador($row['control'],"","landingpage");
- $imagen = buscar_imagen($form,$row['control'],"","$id_empresa[0]");
- if($imagen !="") { $clase = "col-lg-5 col-sm-6";}else {$clase = "col-lg-12 col-sm-12";}
- $uri = " Ver mas ... ";
- $linea .= landingpage_contenido_identificador($row['control']);
- }
- $resultado_linea="$linea
";
- }
- if($div_original=="") {
-
- return $resultado_linea;
- }else {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$linea");
-
- return $respuesta;
-
- }
- }
-$xajax->registerFunction("landingpage_contenido_formulario");
-/*
-$respuesta = new xajaxResponse('utf-8');
-$resultado =" $mensaje Procesando ... ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-
-*/
-function landingpage_contenido($id_empresa){
-$consulta= "SELECT * FROM form_id WHERE publico ='1' AND id_empresa= '$id_empresa' ORDER BY orden ASC";
-$miniatura ="";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $linea="";
- $fila = 1;
- //include("includes/datos.php");
- $error_token = "";
- $contenido = "";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; } else {$error_token = "";}}
- while( $row = mysqli_fetch_array( $sql ) ) {
- $contenido = "Mas información ";
- $imagen = buscar_imagen($row['id'],'','','');
- $geo = buscar_campo_tipo($row['id'],"14");
- $ultimo_mapa = remplacetas('form_datos','form_id',$row['id'],'contenido'," id_campo = '$geo[0]'") ;
- if($ultimo_mapa[0] !="") {
- $campos = explode(" ",$ultimo_mapa[0]);
- $lat = $campos['0'];
- @$lon = $campos['1'];
- @$zoom = $campos['2'];
-
- if($error_token != 1) {
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/negro.png");
- $miniatura = "
-
-
- "; }else{ $miniatura ="No se ha definido un token de mapbox
";}
- }
- if($geo[0] !='') { $mapa= "$miniatura ";}else {$mapa='';}
- if ( $fila%2==0){
-
- $linea .= "
-
-
-
-
-
-
-
-
-
$row[nombre]
-
$row[descripcion]
- $mapa
-
-
-
- $contenido
-
-
-
-
-
-
-
-
- ";
-
- }else{
- $linea .= "
-
-
-
-
-
-
-
-
-
-
$row[nombre]
-
$row[descripcion]
- $mapa
-
-
-
- $contenido
-
-
-
-
-
-
-
- ";
- }
-
-
- //$linea .= "$fila $plantilla$row[nombre] ";
- $fila++;
- }
- }
-return $linea;
-}
-
-function buscar_imagen($form,$control,$tipo,$empresa) {
- $imagen="";
- if($control !="") { $w_control = "AND form_datos.control ='$control'";}else{$w_control ="";}
- if ($form ==""){
- $consulta = "SELECT form_datos.id_empresa, contenido , campo_nombre , id_campo FROM form_id, form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_id.id = form_datos.form_id
- AND form_datos.id_empresa = '$empresa'
- AND publico ='1' AND form_campos.campo_tipo='15' ORDER BY rand() limit 1 ";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $imagen = mysqli_result($sql,0,"contenido");
- }
-if($tipo == "consulta") { return $consulta; }
- return $imagen;
-
- }
-$publico = remplacetas('form_id','id',"$form",'publico',"") ;
-if($publico[0] !="0" ){
-$campo_imagen = buscar_campo_tipo("$form","15");
-$imagen = remplacetas('form_datos','form_id',$form,'contenido'," id_campo = '$campo_imagen[0]' $w_control") ;
-//$imagen = "$imagen[0]";
-return $imagen[0];
-}
-return;
-}
-
-function wait($div,$mensaje){
-$respuesta = new xajaxResponse('utf-8');
-$resultado =" $mensaje Procesando ... ";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-
-function campos_tabla($filtro,$div) {
-$mio ="";
-$lineas ="";
-$w_empresa ="";
-$w_especialista ="";
-if($filtro == 'id_empresa') { $w_empresa = " AND id_empresa = '$_SESSION[id_empresa]' ";}
-if($filtro == 'id_especialista') { $w_especialista = " AND id_especialista = '$_SESSION[id]' ";}
-if($filtro == 'llenos') {
-$consulta= " SELECT * , form_campos.id as id FROM form_campos, form_datos WHERE form_campos.id = form_datos.id_campo $w_empresa $w_especialista GROUP BY id_campo ORDER BY campo_area, campo_nombre ";
-}elseif($filtro == 'vacios') {
-$consulta= " SELECT DISTINCT(form_campos.id) as id , `id_especialista` , `id_empresa`, `campo_nombre`, `campo_descripcion`, `campo_tipo`,`campo_area`, `orden`, `activo`, `identificador`, `bloqueo` FROM form_campos WHERE id NOT IN ( SELECT distinct(id_campo) FROM form_datos GROUP BY id_campo) GROUP BY id ORDER BY campo_area, campo_nombre";
-}else{
-$consulta= " SELECT * FROM form_campos WHERE id = id $w_empresa $w_especialista ORDER BY campo_area, campo_nombre ";
-}
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
- //$div = "div_tabla_campos";
- $filtros = "
-
-
-
- Seleccione
- Todos
- Mis campos
- Mi empresa
- Vacios
- Llenos
-
-
-
- ";
- if (mysqli_num_rows($sql)!='0'){
- while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"") ;
- $campo_tipo ="$tipo_nombre[0] ";
- if($_SESSION['id_empresa'] == $row['id_empresa']) {
- $row['campo_nombre']= editar_campo("form_campos","$row[id]","campo_nombre","","","","");
- $row['campo_descripcion']= editar_campo("form_campos","$row[id]","campo_descripcion","","","","");
- $row['campo_area']= editar_campo("form_campos","$row[id]","campo_area","","","","");
- $row['activo']= editar_campo("form_campos","$row[id]","activo","","","","","");
- $accion = " ";
- $class='success';
- }else {
- $class='';
- $accion ="";
- }
- if($_SESSION['id'] == $row['id_especialista']) {
- $row['id_especialista'] = " $row[id_especialista]";
- }
-
- $lineas .= "$row[id] $row[campo_nombre] $row[campo_descripcion] $campo_tipo $row[campo_area] $row[activo] $row[id_empresa] $row[id_especialista] $mio $accion ";
- }
- $tabla = "
-
-
- id Nombre Descripcion Tipo
- $lineas
-
-
- ";
- }
- if($div !=""){
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$tabla");
- return $respuesta;
- }
- else{
- $resultado = "$filtros $tabla";
- return $resultado;
-}
-}
-$xajax->registerFunction("campos_tabla");
-
-function remplacetas_noid($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($consulta,$link);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,"$campo");
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-
-
-function contar_visitas($id,$tipo) {
-$id_visitas = remplacetas('form_parametrizacion','campo',$id,'id'," tabla='form_id' AND opcion='$tipo'") ;
-$visitas = remplacetas('form_parametrizacion','id',$id_visitas[0],'descripcion',"") ;
-$cantidad = $visitas[0]+1;
-if($visitas[0] =="") {
- $consulta = "INSERT INTO form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'";
- }
-else {
- $consulta = "UPDATE form_parametrizacion set tabla='form_id', campo ='$id',opcion ='$tipo',descripcion= '$cantidad',visible ='1'
- WHERE id ='$id_visitas[0]' LIMIT 1";
-}
-$link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
-$cantidad = "$cantidad $_SESSION[analizador]";
-return $cantidad;
-}
-
-
-function geocoder($valor,$campo){
-$respuesta = new xajaxResponse('utf-8');
-if(strlen($valor) > 3) {
-$valor = urlencode($valor);
-$json = "https://nominatim.openstreetmap.org/search.php?format=json&limit=5&addressdetails=1&q=$valor";
-$data = file_get_contents("$json");
-$geocoder = json_decode($data, true);
-if($data ==="[]") {$vacio="
-
- No se encontraron resultados
-";}
-
-foreach ($geocoder as $clave => $valor) {
- $ciudad = $valor['address']['city'];
- $municipio = $valor['address']['town'];
- $pais = $valor['address']['country'];
- $departamento = $valor['address']['state'];
- $licencia= $valor['licence'];
- $link = "$_SESSION[url]mapero.php?lat=$valor[lon]&lon=$valor[lat]&zoom=16&id=$campo";
- $linea .= "
-
-
- $valor[display_name]
-
- $ciudad $municipio $pais $departamento
-
-
-
- ";
-//foreach ($valor as $clave => $valor) { $linea .= "CLAVE : $clave > VALOR: $valor"; }
-}
-$resultado = "
-
- $vacio $licencia
-
";
-}
- //$div_contenido = "$div
";
- //$respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("muestra_geocoder","innerHTML","$resultado");
- //$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("geocoder");
-
-
-function mostrar_psi(){
-$respuesta = new xajaxResponse('utf-8');
-include("psi.php");
- //$div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$aviso");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_psi");
-
-function multiempresa_crear($tabla,$formulario,$div) {
-$formulario = limpiar_caracteres($formulario);
-$link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '".mysqli_real_escape_string($link,$v)."',";
- }
- $valores = "$valores id_responsable = '$_SESSION[id]'";
-
-$respuesta = new xajaxResponse('utf-8');
-
- $insertar = "INSERT INTO $tabla set $valores";
- $sql=mysqli_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
-
-
- }
- $respuesta->addScript("javascript:xajax_multiempresa('empresa','$div')");
- return $respuesta;
-}
-$xajax->registerFunction("multiempresa_crear");
-
-
-function multiempresa($tabla,$div){
- if($_SESSION['id'] == 1) {
- if($div =="") {
- $div="contenido";
- $resultado =" Configuración multiempresa ";
- return $resultado;
- }
-$link=Conectarse();
-
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$consulta = "SELECT * FROM empresa ";
-$sql=mysqli_query($consulta,$link);
-
-$resultado="
-$name
-Id Nombre Sigla Email Web Dirección Teléfono
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$razon_social= editar_campo("empresa",$row['id'],"razon_social","","","");
-$sigla= editar_campo("empresa",$row['id'],"sigla","","","");
-$email= editar_campo("empresa",$row['id'],"email","","","");
-$web= editar_campo("empresa",$row['id'],"web","","","");
-$direccion= editar_campo("empresa",$row['id'],"direccion","","","");
-$telefono= editar_campo("empresa",$row['id'],"telefono","","","");
-$estado= editar_campo("empresa",$row['id'],"estado","","","");
-
-if($row[id] !=1) {$acciones = " Estado: $estado";}
-$resultado .= "$row[id] $razon_social $sigla $email $web $direccion $telefono $acciones ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-Agregar empresa
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-}
-$xajax->registerFunction("multiempresa");
-
-
-
-
-
-
-function contar_valores_formulario($campo,$key,$valor){
-$consulta = "SELECT distinct($campo) as cantidad FROM form_datos WHERE $key LIKE '$valor' ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = mysqli_num_rows($sql);
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-function listar_campos_formulario($id_form,$tipo){
- $tipo="$tipo";
-$consulta = "SELECT distinct(id_campo),campo_nombre FROM form_datos,form_campos WHERE form_id = '$id_form' AND form_datos.id_campo = form_campos.id ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($tipo=="nombres"){
-$resultado[] = "$row[campo_nombre]";}
- elseif($tipo=="select"){
- $option .= "$row[campo_nombre] ";
- }
- else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){
-$resultado = "
-
- Campo
- $option
- ";
-
-}
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-
-//($formulario,$div,$registros,$pagina,$formato)
-function consultar_formulario($form,$registros,$pagina,$tipo){
- $imagen ="";
- $busca ="";
- $busqueda ="";
- $fechas ="";
- $campo ="";
- $lineas ="";
- $linea ="";
- $formato ="";
- $listado_nombres ="";
-$respuesta = new xajaxResponse('utf-8');
-//if(is_array($form)) {$id_form = $form['id_form'];}else { $id_form = $form;}
-$id_empresa = $_SESSION['id_empresa'];
-if(is_array($form)) {
- $fecha_inicio = $form["inicio"];
- if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
- $fin = $form["fin"];
- if( $fin !="") { $fechas = " AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') AND UNIX_TIMESTAMP('$fin 23:59:59')";}
- $id_form = $form['id_form'];
- @$id_campo = $form['id_campo'];
- $busqueda = $form['busqueda'];
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$form[busqueda]%%'";}else{$busca ='';}
-if($id_campo !=''){$campo ="AND id_campo = '$id_campo'";}else{$campo ='';}
-}else{
-$id_form = $form;
-}
-$consulta_principal = "SELECT control,id,form_id FROM form_datos WHERE form_id = '$id_form' AND form_datos.id_empresa = '$id_empresa' $busca $campo $fechas GROUP BY form_datos.control ORDER BY form_datos.id DESC ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$sql_total=mysqli_query($consulta_principal,$link);
-$total_registros = mysqli_num_rows($sql_total);//formulario_contar($id_form);
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- if($tipo == "csv" ) {$consulta_limite = "$consulta_principal";}
- else{$consulta_limite = $consulta_principal.$limite;}
- $sql=mysqli_query($consulta_limite,$link);
-
-//$sql=mysqli_query($consulta_principal,$link);
-if (mysqli_num_rows($sql)!='0'){
-
-/////// FILTRO
-
-$fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $campos = listar_campos_formulario($id_form,"select");
- $peticion = "
-
-
-
-
-
-
-
-
- ";
-/////// FILTRO
-
-$boton_borrar = "
-
-
-
- ";
-
- if($formato!='csv'){
- $boton_exportar = " Exportar ";}
-
- $link = "";
- // $page = $_GET['page'];
- $page= $pagina;
- @$pages= ceil($total_registros / $registros); //13; // Hardcoded for testing purpose
- $limit=10 ;
- if ($pages >=1 && $page <= $pages)
- {
- $counter = 1;
- $link = "";
- if (($page -1) > 0) {
- $link .= "
- ";
- }
-
- for ($x=$page; $x<=$pages;$x++)
- {
-
-
- if($counter < $limit){
- if ($page == $x){
- $link .= "$x ";
- }else{
- $link .= "$x ";
- }
- }
- $counter++;
- }
- if ($page < ($pages - ($limit/2)))
-
- { $link .= "
- "; }
- }
-
- $paginacion = "";
-
-
-
-
- $encabezado = "
- ";
-
- $total_registros = mysqli_num_rows($sql);
- $nombres_campos = listar_campos_formulario("$id_form","nombres");
- foreach($nombres_campos as $campo_nombre=>$nombre){
- $listado_nombres .= "$nombre ";
- }
- $listado_nombres = "Identificador $listado_nombres ";
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-//$cantidad_campos = contar_valores_formulario("id_campo","control","$row[control]");
-
-$listado_campos = listar_campos_formulario("$id_form",'');
-
-foreach($listado_campos as $campo=>$valor){
- //$imagen = buscar_imagen($if_form,$row['control'],"","");
- $contenido = remplacetas('form_datos','control',$row['control'],'contenido',"id_campo ='$valor' ") ;
- $id_dato = remplacetas('form_datos','control',$row['control'],'id',"id_campo ='$valor' ") ;
- $tipo_campo = remplacetas('form_campos','id',$valor,'campo_tipo',"") ;
- if($tipo_campo[0] ==15 AND $contenido[0] != "") {
- @$listado_campos .= "
-
-
-
-
-
- ";
- }
- elseif(($tipo_campo[0] ==1 or $tipo_campo[0] ==2 or $tipo_campo[0] ==3 or $tipo_campo[0] ==4 or $tipo_campo[0] ==12 or $tipo_campo[0] ==13 )AND $contenido[0] != "") {
- $editar_contenido = editar_campo("form_datos","$id_dato[0]","contenido","");
- @$listado_campos .= "$editar_contenido ";
- }
- else {
-@$listado_campos .= "$contenido[0] ";
-}
-
- }
- if (!is_array($listado_campos)){$listado_campos="$listado_campos ";}else {$listado_campos=$listado_campos;}
- $menu ="
-
-
-
- ";
-$lineas .= " $menu$row[control] $listado_campos ";
-
- }
-
-$tabla ="
-
- $listado_nombres
-
- $lineas
-
-
";
-$resultado = "
-$encabezado
-
-
-
-$tabla
-
-
-";
- }
-else {
-$resultado ="
No hay resultados $consulta_limite";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-if($tipo =="csv") {
-$html = str_get_html($tabla);
- // header('Content-type: application/ms-excel');
- // header('Content-Disposition: attachment; filename=sample.csv');
- $nombre_archivo ="tmp/Prueba_Formulario_".mktime()."_".$_SESSION['id'].".csv";
- //$fp = fopen("php://output", "w");
- $fp=fopen($nombre_archivo , "w");
- foreach($html->find('tr') as $element)
- {
- $td = array();
- foreach( $element->find('th') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- if (!empty($td)) {
- fputcsv($fp, $td);
- }
-
- $td = array();
- foreach( $element->find('td') as $row)
- {
- if (strpos(trim($row->class), 'actions') === false && strpos(trim($row->class), 'checker') === false) {
- $td [] = $row->plaintext;
- }
- }
- fputcsv($fp, $td);
- }
-
- fclose($fp);
-$boton_descarga ="Descargar ";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = " $datos
";
- $div_contenido = "$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- if($tipo =="modal") {
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-}
- return $respuesta;
-
-}
-$xajax->registerFunction("consultar_formulario");
-
-
-function datos_array($identificador) {
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-$consulta ="SELECT * FROM form_datos WHERE control = '$identificador'
-GROUP BY id_campo ORDER BY timestamp DESC ";
-$sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
-$array = array();
-$array[identificador] = "$identificador";
-while($row = mysqli_fetch_array( $sql ))
- {
- $contenido = remplacetas('form_datos','id',$row[id],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id],'id_campo',"") ;
- $nombre_campo = remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- //$array[id_campo] = $row[id_campo];
- $array[$nombre_campo[0]] = "$contenido[0]";
- $array['timestamp'] = "$row[timestamp]";
- $array['proceso'] = "$row[proceso]";
- $array['id'] = "$row[id]";
- $array['orden'] = "$row[orden]";
- //$array[] = $row;
-
-
- }
- return $array;
-}
-
-function parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div){
- $respuesta = new xajaxResponse('utf-8');
-if($campo =="") {
-$resultado = "
-
-
-
- Hiperparametrizador Experimental
-
-
- Descripción
-
-
-
-
-
-";
-return $resultado;
-}
- $link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = '".mysqli_real_escape_string($link,$tabla)."' AND campo ='".mysqli_real_escape_string($link,$campo)."' AND opcion ='".mysqli_real_escape_string($link,$opcion)."' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1 ";
-$sql=mysqli_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = '".mysqli_real_escape_string($link,$tabla)."' , campo ='".mysqli_real_escape_string($link,$campo)."', opcion ='".mysqli_real_escape_string($link,$opcion)."', descripcion ='".mysqli_real_escape_string($link,$descripcion)."', visible='1' , id_empresa = '$_SESSION[id_empresa]'";
-$sql=mysqli_query($consulta,$link);
-if($sql) {
- $resultado = "$descripcion";
- $respuesta->addAssign("$div","innerHTML",$resultado);
-
- }else {
-//$respuesta->addAlert("$consulta");
-}
-//$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("parametrizacion_linea");
-
-function email_contenido($id,$control,$id_campo,$email_envio){
-
-if($email_envio =="") {
- $email = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$id' AND id_campo ='$id_campo' ") ;
- $formulario =
-
- "
- ";
-return $formulario;
- }
- $respuesta = new xajaxResponse('utf-8');
-
- $validar = validar_email($email_envio);
- if($validar == '0') {
- $respuesta->addAssign("input_email_envio","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('email_envio').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }
- $propietario = remplacetas('form_id','id',$id,'propietario',"") ;
- $propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$id,"nombre","");
-
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $propietario[0]" . "\r\n";
-$impresion = formulario_imprimir("$id","$control","email");
-
-$impresion ="
-$encabezado
-$impresion
";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-
-$impresion
-
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]i$control
-Saludos de MILFS
-";
- if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="Se envió un email a $email_envio "; }else {$exito .="error enviando correo";}
-
-$respuesta->addAssign("confirmar_envio_email","innerHTML",$exito);
-return $respuesta;
- }
-$xajax->registerFunction("email_contenido");
-
-
-function mapa_ficha($id) {
-
- $descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
- $id_empresa = $id_empresa[0];
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $imagen = " ";
- $datos ="$nombre[0] $descripcion[0] ";
- $empresa = "$razon_social[0] |
$web[0] | $direccion[0] | $email[0]
";
-
- //$prueba = json_decode($prueba);
-
- $resultado ="
-
-
-
-
- $imagen
-
-
-
$nombre[0]
- $descripcion[0]
-
-
-
-
$razon_social[0]
-
MILFS
-
-
-
- ";
- return $resultado;
-}
-
-function formulario_parametrizacion($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-if($accion =='categorias') {
-
- }
- elseif($accion =='grabar'){
-
- }
- else {
- $listado ="
-
-
-
-
-
-
Parametrización
-
Parametrización del formulario $nombre[0]. Por favor seleccione una opción
-
-
-
-
- ";
- $respuesta->addAssign($div,"innerHTML",$listado);
- return $respuesta;
- }
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "Filtro
-
- Todos ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= " ";
- }
-else{$resultado = 'nada';}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_parametrizacion");
-
-
-
-function lista_categorias($perfil,$categoria,$tipo) {
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
- $categoria_campo = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- if($categoria_campo >0 ) {
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$categoria_campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "";
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $icono = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$row[md5_contenido]'") ;
- if($icono[0] =='') {
- $icon = "$_SESSION[site]milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- $contenido= substr($row[contenido],0, $length = 15);
-$resultado .= "
$contenido ";
- }
-$resultado .= "
";
- }
-else{$resultado = '';}
-}
-return $resultado;
-}
-
-function parametrizacion_categoria($perfil,$accion,$div,$form){
- $respuesta = new xajaxResponse('utf-8');
-$nombre = remplacetas('form_id','id',$perfil,'nombre') ;
-$categorias = lista_categorias($perfil,$categoria,$tipo);
-if($accion =='categorias') {
- $resultado = "
-
- La categorización se usa para filtrar los datos de un formulario en categorias que pueden ser usadas por ejemplo para diferenciar los datos en un mapa.
- Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza
- $categorias
-
-
-
-
- Icono para la categoría
-
-
- URL
-
-
-
-
- Grabar
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- $respuesta -> addScript("xajax_formulario_campos_select('$perfil','parametrizacion')");
- return $respuesta;
- }
- elseif($accion =='grabar'){
- if($form[tipo] =='categoria') {
- $url_icon = "$form[icon]";
- $es_imagen = es_imagen("$url_icon");
- $altura = GetImageSize($url_icon);
- $altura= $altura[1];
- if($form[id_campo] =='') { $error = "Seleccione un campo";}
- elseif($form[campo_filtro] =='') { $error = "Seleccione Filtro";}
- elseif(!$es_imagen ) { $error = " [ $url_icon ] no es una imagen válida para el ícono";}
- elseif($altura > 500 ) { $error = " El ícono no debe tener mas de 300 pixeles de alto.";}
- elseif($form[icon] =='') {
- $error = "Escriba la dirección del ícono";
- }
- else {$error='';}
- if( $error !='') {
- $respuesta -> addAlert("$error $revisar_url ");
- return $respuesta;
- }else{
- $categoria_icono[tabla] = "form_id";
- $categoria_icono[campo] = "$form[perfil]";
- $categoria_icono[opcion] = "$form[tipo]:icon:$form[campo_filtro]";
- $categoria_icono[descripcion] = "$url_icon";
- $categoria_icono[visible] = "1";
- $categoria_icono[accion] = "grabar";
- $grabar_icono = parametrizacion($categoria_icono);
-
- $categoria_campo[tabla] = "form_id";
- $categoria_campo[campo] = "$form[perfil]";
- $categoria_campo[opcion] = "$form[tipo]:campo";
- $categoria_campo[descripcion] = "$form[id_campo]";
- $categoria_campo[visible] = "1";
- $categoria_campo[accion] = "grabar";
- $grabar_campo = parametrizacion($categoria_campo);
-
- $categoria_filtro[tabla] = "form_id";
- $categoria_filtro[campo] = "$form[perfil]";
- $categoria_filtro[opcion] = "$form[tipo]:filtro:$form[id_campo]";
- $categoria_filtro[descripcion] = "$form[campo_filtro]";
- $categoria_filtro[visible] = "1";
- $categoria_filtro[accion] = "grabar";
- $grabar_filtro = parametrizacion($categoria_filtro);
-
-
- $resultado =" $form[campo_filtro] $form[id_campo] ($altura ) [$grabar_icono]";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-
- }/// fin de parametrizacion categorias
- }
-}
-$xajax->registerFunction("parametrizacion_categoria");
-
-
-function parametrizacion_plantilla_campos($formulario){
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-$campo_imagen = buscar_campo_tipo($formulario,"15");
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($row[id_campo] == $campo_imagen ) {$imagen =" "; $identificador=" ";}
- else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= " $imagen $row[campo_nombre] [$row[id_campo]] ";
-
-}
-/*
-$campo_400[$row[id_campo]]
- $campo_80[$row[id_campo]]
- $campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-
-
-
-
-
-
-
- $listado
- Fecha
-
-
-";
-}
-return $resultado;
-}
-
-
-function parametrizacion_plantilla($formulario,$div,$valores) {
- $respuesta = new xajaxResponse('utf-8');
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$link=Conectarse();
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-mysqli_query("SET NAMES 'utf8'");
-if($valores =="boton") {
-$consulta ="SELECT * FROM form_parametrizacion WHERE campo = '$formulario' AND `opcion` REGEXP '^plantilla:' ORDER BY opcion";
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campos_opcion = explode(":",$row[opcion]);
- $plantilla_nombre = $campos_opcion[1];
-$listado .= "$row[opcion] ";
-$li .= "
- $plantilla_nombre
-
-
-
- ";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-
-
-
-";
-$lista ="
-
-Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas HTML5 , CSS3 y clases de Bootstrap
-
-
- Nombre
- Editar
- Ver
-
-$li
-
-Nueva plantilla
-";
- $respuesta->addAssign("$div","innerHTML","$lista");
- return $respuesta;
-
-}
-else {
-
-$resultado ="
-
-
-
Aún no se han definido plantillas para este formulario
- Crear una plantilla
-
-
-";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-
-elseif($valores =="formulario" OR is_numeric($valores)) {
- $campos = parametrizacion_plantilla_campos("$formulario");
- $descripcion = remplacetas('form_parametrizacion','id',$valores,'descripcion',"") ;
- $opcion = remplacetas('form_parametrizacion','id',$valores,'opcion',"") ;
- $campos_opcion = explode(":",$opcion[0]);
- $plantilla_nombre = $campos_opcion[1];
- include("includes/bootsrap_class_list.php");
-$resultado ="
-
-
-
-
-
-
-
- A
A
')); \">
-
-
A
-
A
-
div
-
H1
-
H2
-
H3
-
-
<li>
-
-
MB
-
-
-
-
-
- $descripcion[0]
-
-
- $campos
-
-
-
-
-";
-
-}
-
-elseif(is_array($valores)) {
- $texto=str_replace('"',"'",$valores[text_contenedor]);
-$plantilla = htmlentities($texto);
-if($valores[nombre_plantilla] == "") {
- $respuesta->addAlert("No ha especificado un nombre para la plantilla");
- $respuesta->addAssign("input_nombre_plantilla","className","input-group has-error");
- return $respuesta;
- }
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='plantilla:$valores[nombre_plantilla]' LIMIT 1 ";
-$sql=mysqli_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='plantilla:$valores[nombre_plantilla]', descripcion =\"$plantilla\", visible='1' ";
-$sql=mysqli_query($consulta,$link);
-$ultimo = formulario_uso("$formulario",'','ultimo') ;
-$datos = contenido_mostrar("$formulario","$ultimo[1]",'',"$valores[nombre_plantilla]");
-$preview = " $valores[nombre_plantilla] $datos ";
- $div_contenido = "$preview
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- $respuesta->addAssign("titulo_modal","innerHTML","$resultado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
-
- return $respuesta;
-
-}
-else{
-$resultado ="";
-}
-$resultado .= "";
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_plantilla");
-
-
-function parametrizacion_titulo($formulario,$div,$valores) {
-$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-$campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if($valores =="") {
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_campos.campo_nombre";
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "$row[campo_nombre] [$row[id_campo]] ";
-}
-$resultado = "
-
- El campo titulo, se usa como indice del formulario en algunas visualizaciones como el timeline
- Campo de Título actual $campo_titulo_nombre[0] [$campo_titulo[0]]
-
-
- Cambiar campo título
-
-
- $listado
-
-
-
-";
-}
-}else {
-$limpiar ="DELETE FROM `form_parametrizacion` WHERE tabla = 'form_id' AND campo ='$formulario' AND opcion ='titulo' LIMIT 1 ";
-$sql=mysqli_query($limpiar,$link);
-$consulta="INSERT INTO form_parametrizacion set tabla = 'form_id' , campo ='$formulario', opcion ='titulo', descripcion ='$valores', visible='1' ";
-$sql=mysqli_query($consulta,$link);
-if($sql){
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $campo_titulo_nombre = remplacetas('form_campos','id',$campo_titulo[0],'campo_nombre',"") ;
-$resultado ="addAssign("$div","innerHTML","$resultado");
-
-
- return $respuesta;
-
-}
-$xajax->registerFunction("parametrizacion_titulo");
-
-
-function mostrar_modal($form,$control,$plantilla){
-$respuesta = new xajaxResponse('utf-8');
-if( $control == "") {
- $datos = formulario_areas($form,"");
-}else {
-$datos = contenido_mostrar("$form","$control",'',"$plantilla");
-}
-$div ="contenido_de_modal";
-
-$resultado = "
-
- $datos
-
-
";
- $div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$div_contenido");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-
- return $respuesta;
-
-}
-$xajax->registerFunction("mostrar_modal");
-
-function portal_filtro_cadena($formulario,$id_campo,$control,$div,$plantilla){
-$cadena = remplacetas('form_datos','control',"$control",'contenido',"form_id = '$formulario' AND id_campo ='$id_campo' ") ;
-$consulta ="SELECT * FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' AND contenido = '$cadena[0]'
- GROUP BY control ORDER BY contenido";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-
- $datos = contenido_mostrar("$formulario","$row[control]",'',"$plantilla");
- if($plantilla == "") {
-$listado .= "
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-
- $listado
-
-";
-}
-
-if ($div ==""){$div="mostrar_contenido";}
-else {$div = "$div";}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("portal_filtro_cadena");
-
-
-
-function portal_filtro_campos($formulario,$id_campo,$div,$plantilla){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT * FROM form_campos ,form_datos WHERE form_datos.form_id = '$formulario' AND form_campos.id = form_datos.id_campo AND form_datos.id_campo = '$id_campo' GROUP BY contenido ORDER BY contenido";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $formulario_nombre[0] / $campo_nombre[0]
- {json}
- $listado
-
-";
-}
-return $resultado;
-}
-
-
-
-function portal_filtro_campos_select($formulario,$id_campo,$div,$plantilla){
-
-if($id_campo =="") {
- $campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $id_campo = $campo_titulo[0];
- if($id_campo =="") { $resultado = ""; return $resultado;}
- }
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$campo_nombre = remplacetas('form_campos','id',"$id_campo",'campo_nombre',"") ;
-$campo_descripcion = remplacetas('form_campos','id',"$id_campo",'campo_descripcion',"") ;
-
-$consulta ="SELECT *
- FROM form_campos ,form_datos
- WHERE form_datos.form_id = '$formulario'
- AND form_campos.id = form_datos.id_campo
- AND form_datos.id_campo = '$id_campo'
- GROUP BY contenido
- ORDER BY contenido";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[contenido] ";
-}
-$resultado = "
-
- $campo_nombre[0]
- $listado
-
-";
-}
-$resultado ="
-
- Filtro
- $resultado
-
";
-return $resultado;
-}
-
-
-
-function portal_listado_campos($formulario){
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-$consulta ="SELECT * FROM form_campos ,form_contenido_campos WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = '$formulario' ORDER BY form_contenido_campos.orden";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[campo_nombre] ";
-}
-$resultado = "
-
-
- $formulario_nombre[0]
- {json}
- $listado
-
-
-";
-}
-return $resultado;
-}
-
-
-function portal_listado_formularios(){
-
-$consulta ="SELECT * FROM form_id WHERE publico = '1'";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$listado .= "
$row[nombre] ";
-}
-$resultado = "
-
- Set de datos
-
- ";
-}
-return $resultado;
-}
-
-
-function insertar_linea($tabla,$key,$campo,$valor,$control,$orden,$div){
- $respuesta = new xajaxResponse('utf-8');
- $key = limpiar_caracteres($key);
- $valor = limpiar_caracteres($valor);
- $ip = obtener_ip();
- $ip = " INET_ATON('".$ip."') ";
-if($tabla =="form_datos") {
-$consulta = "INSERT INTO form_datos ( orden, timestamp,id_usuario,id_empresa,form_id,ip,control,id_campo,contenido) VALUES
- ( '$orden',UNIX_TIMESTAMP(),'$_SESSION[id]','$_SESSION[id_empresa]','$key',$ip ,'$control', '$campo' , '$valor')
- ";
-
-}
-
-
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
-
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
-
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_linea");
-
-
-function select_combo($id,$tabla,$campo_valor,$campo_descripcion,$tipo){
-
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$Campo_descripcion = ucwords($campo_descripcion);
-$Campo_valor = ucwords($campo_valor);
-$nombre=$tabla."_".$campo_valor;
-$div=$nombre."_hijo";
-$combo = $id."_".$tabla;
-if($tipo!=''){
-$respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE $campo_valor = '$tipo' AND id_empresa = '$id_empresa'";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado .= "
$Campo_descripcion
-
";
-$resultado .= " Seleccione $Campo_descripcion ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[$campo_valor] $row[$campo_descripcion] ";
- }
-$resultado .= " ";
- }
-
-
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;}
-ELSE{ /// si no especifica $tipo
-$consulta ="SELECT $id , $campo_valor , $campo_descripcion FROM $tabla WHERE id_empresa = '$id_empresa' GROUP BY $campo_valor ";
-$sql=mysqli_query($consulta,$link);
-///$Documento=mysqli_result($grupo,0,"documento_numero");
-$resultado = "
$Campo_valor
-
";
- $resultado .= " Seleccione $Campo_valor ";
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "$row[$campo_valor] ";
- }
- }
-$resultado .= "
";
- }/// FIN de $tipo no especifico
-
-return $resultado;
-}
-$xajax->registerFunction("select_combo");
-
-
-
-function crear_session ($form,$control) {
-
-$consulta = " SELECT distinct(id_campo),contenido FROM form_datos WHERE control = '$control' AND form_id = '$form' order by timestamp DESC ";
-$link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql = mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!=0){
- $resultado ="
";
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $id_form = $row[form_id];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $nombre = strtolower( str_replace(' ','_',$campo_nombre[0]));
- $_SESSION[$nombre] = $row[contenido];
- $resultado .= "$_SESSION[$nombre] ";
- }
- $resultado .= " ";
- }
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla,$tipo){
- $resultado="";
- $tipo="$tipo";
- if($form != "") {$id_form = "$form";}else {$id_form ="";}
-
- $impresion = formulario_imprimir("$id_form","$control","$plantilla");
- if($impresion !="") {
- $visitas= contar_visitas($control,'identificador') ;
- $visitas= "
$visitas";
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
- if($tipo=="") {
- $resultado = "
-
- $visitas
-
$nombre[0]
- $descripcion[0]
-
- $impresion
-
-
- "; }else {
-$resultado = "$impresion";
- }
- }else{
-$resultado ="
No hay resultados ";
- }
-
-return $resultado ;
-}
-
-function buscar_campo_nombre($form_id,$nombre) {
-
-$consulta ="SELECT form_campos.id FROM `form_campos` , form_contenido_campos WHERE `campo_nombre` = '$nombre' AND form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='$form_id' LIMIT 1";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql = mysqli_query($consulta,$link);
- $id_campo=mysqli_result($sql,0,"id");
-return $id_campo;
-}
-
-function conversorSegundosHoras($tiempo_en_segundos) {
- $horas = floor($tiempo_en_segundos / 3600);
- $minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
- $segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
-
- return $horas . ':' . $minutos . ":" . $segundos;
-}
-
-function mensajes($tipo,$campos_form,$datos,$control) {
- $campo_remitente = $campos_form['remitente'];
- $campo_destinatario = $campos_form['destinatario'];
- $campo_asunto = $campos_form['asunto'];
- $campo_mensaje = $campos_form['mensaje'];
- $form_id = $campos_form['formulario_id'];
- $form_usuarios = $campos_form['formulario_usuarios'];
- $campo_usuarios = $campos_form['campo_usuario'];
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='formulario') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
-
-//$campos = formulario_areas($form_id,'campos');
-$control_original = $control;
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
- $respuesta->addAssign("div_mensaje_$control_original","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo =='responder') {
- if($form_id =='' AND $control !='') {
-$form_id = remplacetas('form_datos','control',"$control",'form_id',"") ;
-$form_id = $form_id[0];
-
- }
- $remitente = buscar_campo_nombre("$form_id","Para");
- $destinatario = buscar_campo_nombre("$form_id","De");
- $mensaje = buscar_campo_nombre("$form_id","Mensaje");
- $asunto = buscar_campo_nombre("$form_id","Asunto");
-
- $asunto_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$asunto' AND control='$control'") ;
- $mensaje_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$mensaje' AND control='$control'") ;
- $remitente_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$remitente' AND control='$control'") ;
- $destinatario_value = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$destinatario' AND control='$control'") ;
-
-$formulario ="
-
-
-
-
-
-
-
-
- Asunto
-
-
-
- Mensaje
- $mensaje_value[0]
-
- ";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
-";
- $respuesta->addAssign("div_mensaje_$control","innerHTML",$formulario);
- //$respuesta->addAlert("div_mensaje_$control_original","innerHTML",$formulario);
-return $respuesta;
-
-}
-elseif($tipo=="recuperar") {
-
-if($control =="") {
- $control = md5(rand(1,99999999).microtime());
-}
-
- $consulta ="SELECT *, FROM_UNIXTIME(timestamp) as fecha , DATE_FORMAT(FROM_UNIXTIME(timestamp),'%Y-%m-%d') as dia, DATE_FORMAT(FROM_UNIXTIME(timestamp),'%H:%i') as hora FROM form_datos WHERE form_id ='$form_id' AND id_campo = '$campo_destinatario' AND contenido ='$_SESSION[usuario_milfs]' GROUP BY control, timestamp order by timestamp DESC ";
-
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-
- $mensajes = mysqli_query($consulta,$link);
-// $destinatario ="$campo_destinatario"."[0]";
-// $para = buscador_campo("$campo_destinatario","$form_id","","$destinatario","","");
- $campos = formulario_areas($form_id,'campos');
-$formulario ="
-
-
-
-
-
-
-$campos";
-
-$formulario ="
-
-
-
-
- $formulario
-
-
-
-
-
-
";
-
-
-
-$lista ="
-
-
-
-";
-while( $row = mysqli_fetch_array( $mensajes ) ) {
- $asunto = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_asunto' AND control='$row[control]'") ;
- $mensaje = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_mensaje' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_id",'contenido'," id_campo = '$campo_remitente' AND control='$row[control]'") ;
- $remitente = remplacetas('form_datos','form_id',"$form_usuarios",'contenido'," id_campo = '$campo_usuarios' AND control='$remitente[0]'") ;
- if($remitente[0] =='') {$remitente[0]="
Sistema";}
- $hoy=date('Y-m-d');
- $control = $row[control];
- if($hoy == $row[dia]){$momento = $row[hora];}else {$momento=$row[dia];}
-//function contenido_mostrar($id,$control,$div,$plantilla)
-//$contenido = contenido_mostrar("$form_id","$control","",'');
- $lista .="
-
- ";
-}
- // $respuesta->addAssign("div_mensaje","innerHTML",$lista);
- $lista .=" ";
- return $lista;
-
-}
-
-$resultado ="hola";
-
- $respuesta->addAssign("div_mensaje","innerHTML",$resultado);
-
- return $respuesta;
-
-
-}
-$xajax->registerFunction("mensajes");
-
-function revisar_campo_unico($id,$campo,$id_form,$valor) {
- $respuesta = new xajaxResponse('utf-8');
- $div= "div_$id";
- $existe = remplacetas('form_datos','form_id',"$id_form",'control'," BINARY contenido = '$valor' AND id_campo = '$campo'") ;
- if($existe[0] != "") {
- $texto ="El valor ya existe";
-$respuesta->addAssign("$div","className","text-danger");
-$respuesta->addAssign("input_$id","className","form-group has-error");
- }else{
- $texto ="";
-$respuesta->addAssign("$div","className","text-success");
-$respuesta->addAssign("input_$id","className","form-group has-success");
- }
-
- $respuesta->addAssign("$div","innerHTML",$texto);
- return $respuesta;
-}
-$xajax->registerFunction("revisar_campo_unico");
-
-
-
-function milfs_session($form_id,$campo_usuario,$campo_password,$tipo,$datos){
- $datos = mysql_seguridad($datos);
- $respuesta = new xajaxResponse('utf-8');
-
-if($tipo =="") {
-
-
-
-if($_SESSION[usuario_milfs]) {
- $formulario = "
SALIR";
-}else {
-$formulario ="
-$accion
-
-
-
-";
-
-
-}
-return $formulario;
-}
-elseif($tipo =='salir') {
- session_destroy();
- $respuesta->addScript("javascript:location.reload(true);");
-
-}
-elseif($tipo=='registrarse') {
- $modificable = remplacetas('form_id','id',$id,'modificable') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $formulario = "
Función no disponible, por favor comuníquese con el administrador
";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
- }
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-
-Registrarse
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-$boton
-
-
-";
-
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
- if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-
Usuario
-
-
-
Código de recuperación Deja este campo vacío si aun no tienes el código de recuperación
-
-
-";
-$boton ="
-
Solicitar clave
-";
-$control = md5(rand(1,99999999).microtime());
- $formulario ="
-
-
-$campos
-
-$boton
-
-
-
-";
- }else{
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- if($usuario[0] !="") {
- $password = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_password' ") ;
- if($datos[codigo] !="") {
- if( $datos[codigo] =="$password[0]" ){
- $control = remplacetas('form_datos','control',"$usuario[0]",'control'," id_campo = '$campo_password' ") ;
- $campos ="
-
-
-
-
-
-
-
- ";
-
- $formulario ="$campos";
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
- return $respuesta;
-
-
- }else {
- $respuesta->addAlert("El código no es correcto, por favor rectifíquelo o solicítelo nuevamente dejando el campo VACIO");
- return $respuesta;
- }
- }
- $campo_email = buscar_campo_tipo("$form_id","12");
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $email = remplacetas('form_datos','control',"$usuario[0]",'contenido'," id_campo = '$campo_email[0]' ") ;
- $formulario="$usuario[0] $password[0] // $campo_email[0] $email[0]";
- $email_empresa = remplacetas('empresa','id','1','email','') ;
- $sigla = remplacetas('empresa','id','1','sigla','') ;
- $razon_social = remplacetas('empresa','id','1','razon_social','') ;
- $headers = "MIME-Version: 1.0\r\n";
- $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
- $headers .= "From: $razon_social[0] <$email_empresa[0]>\r\n";
- $headers .= "Reply-To: $email_empresa[0]\r\n";
- $headers .= "Return-path: $email_empresa[0]\r\n";
- $asunto= "[ $sigla[0] ] Código para recuperar contraseña ";
- $cuerpo ="
-
Hola $datos[usuario]
- El código para recuperar tu contraseña es:
-
$password[0]
- Regresa pronto :-)
-
- ";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="
Te hemos enviado un correo a $email[0] con el código de recuperación "; }
- else {$formulario ="
Error enviando correo ";}
-
- }else{
-
- $formulario="
No pudimos encontrar tu usuario $datos[usuario] . Por favor rectifícalo y prueba nuevamente ";
- }
-
-
- }
- $respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='confirmar_recuperar') {
-
- if($datos[password] != $datos[confirmar_password]) {
- $respuesta->addAlert("Los valores no son iguales");
- return $respuesta;
-
- }
- $link=Conectarse();
-
-mysqli_query("SET NAMES 'utf8'");
-
-
-
-
- $consulta="UPDATE form_datos SET contenido = MD5('$datos[password]')
- WHERE control ='$datos[control]'
- AND contenido ='$datos[codigo]'
- AND form_id ='$form_id'
- AND id_campo = '$campo_password' ";
-
- if (mysqli_query($consulta,$link)){
-$resultado ="
Se cambió el password Por favor ingrese con sus nuevos datos
aquí ";
-$respuesta->addAssign("login_div","innerHTML",$resultado);
-return $respuesta;
- };
-
-
-
-}
-
-elseif ($tipo=='ingreso'){
-
- $usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
- $password = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = MD5('$datos[password]') AND id_campo = '$campo_password'") ;
-
-if ( $usuario[0] != "" AND $usuario[0] === $password[0]) {
-$respuesta->addAssign("login_milfs","className"," has-success ");
-$resultado ="$usuario[0] // $password[0] ";
-$_SESSION['usuario_milfs'] = $usuario[0];
-$_SESSION['nombre_usuario_milfs'] = $datos['usuario'];
-$respuesta->addScript("javascript:location.reload(true);");
-}else {$resultado ="
Error Los datos no son correctos :( ";
-$respuesta->addAssign("login_milfs","className"," has-error ");
-}
-
-$respuesta->addAssign("resultado","innerHTML",$resultado);
-//$respuesta->addAlert("resultado");
-
-
-}
-elseif ($tipo=='nuevo'){
-
-$usuario = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$datos[usuario]' AND id_campo = '$campo_usuario'") ;
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-
-$campos_consulta_obligatorio="
- SELECT id_campo, obligatorio
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
- AND obligatorio='1'
- ";
-
-
- $campos_obligados= mysqli_query($campos_consulta_obligatorio,$link);
-
-while( $row = mysqli_fetch_array( $campos_obligados ) ) {
-$campo_valor=$datos[$row[id_campo]][0];
-
-if($row[obligatorio]=='1'){
- $obligatorios .= "$row[id_campo]";
-if($campo_valor == '' && $row[obligatorio]=='1'){
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
-$error = "Revise campos obligatorios $campo_nombre[0]";
-
- }else {$error ="";}
-if($error !=''){
-$respuesta->addAlert($error);
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
- return $respuesta; }
- }
-
-
- }/// fin de registros obligatorios
-
-
-
- $campos_consulta="
- SELECT id_campo, obligatorio, id_empresa
- FROM form_contenido_campos
- WHERE id_form ='$form_id'
-
- ";
- $campos= mysqli_query($campos_consulta,$link);
-$ip = obtener_ip();
-$control = $datos['control'];
-while( $row = mysqli_fetch_array( $campos ) ) {
-$campo_valor=$datos[$row['id_campo']][0];
-$campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
-/// Si el campo es password (18) se guarda su equivalente en md5
-if($campo_tipo[0] =="18") {
- $campo_valor = MD5("$campo_valor");
-}
-if($campo_tipo[0] =="19") {
-$existe = remplacetas('form_datos','form_id',"$form_id",'control'," BINARY contenido = '$campo_valor' AND id_campo = '$row[id_campo]'") ;
-if($existe[0] !='') {
-$respuesta->addAlert("Revise los campos únicos !");
-$respuesta->addScript(" document.getElementById('boton_registro').disabled=false");
-
-
- return $respuesta;
-}else{
-//$respuesta->addAlert("$existe[2]"); return $respuesta;
-}
-}
-
- if ($campo_valor !=''){
-
-$insertar_consulta = "
- INSERT INTO `form_datos`
- SET
- id_campo = '$row[id_campo]',
- contenido = '$campo_valor',
- control ='$control',
- timestamp = UNIX_TIMESTAMP(),
- form_id = '$form_id',
- ip = '$ip',
- id_empresa = '$row[id_empresa]'
- ";
-
-
- }else{
-
-
- }
-
-if ($error ==''){
-$sql_consulta=mysqli_query($insertar_consulta,$link);
-if($sql_consulta){
-$login = milfs_session("$form_id","$campo_usuario","$campo_password","","");
-$resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-
-
- }else{$resultado.= "
La consulta no se grabó
";}
-}else { }
-
- }
- $resultado ="
Gracias por registrarse, por favor ingrese con los nuevos datos. $login
";
-$respuesta->addAssign("login_div","innerHTML",$resultado);
-return $respuesta;
-
-
-}
-
-else{}
-return $respuesta;
-
-}
-$xajax->registerFunction("milfs_session");
-
-
-function buscar_datos($valores,$id_form,$plantilla,$div){
- $valores = mysql_seguridad($valores);
- $respuesta = new xajaxResponse('utf-8');
-if($valores =="") {
- $alerta = "
Por favor escriba que desea buscar ";
-$respuesta->addAssign("$div","innerHTML",$alerta);
- return $respuesta;
-}
- if (is_array($valores) ){
- $valor = $valores['valor'];
- }
- else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-
-";
-return $resultado;
- }else{
-if($id_form !="") {$w_form ="form_id = '$id_form' AND ";}
-$consulta ="SELECT * FROM form_datos WHERE $w_form contenido like '%%$valor%%' group by control LIMIT 200 ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-$divider=2;
-$cols = (12/$divider);
-$i =0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($i % $divider==0) {
-
- $encontrados .= "
-
-
-
- ";
- }
- $i++;
- /* $contenido = htmlentities($row[contenido]);
- $p = stripos($contenido, $valor);
- $s1 = substr($contenido, 0, $p);
- $s2 = substr($contenido, $p, strlen($valor));
- $s3 = substr($contenido, ($p + strlen($valor)));
- $r = $s1."
$s2 ".$s3;
- */
- $datos = landingpage_contenido_identificador($row['control']);
- //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $contenido ="
$datos
";
-
- $encontrados .="$contenido";
- $fila++;
- if( $i % $divider==0) {
- $encontrados .= "
";
- }
- }
- }
-$resultado .="
Resultados de: $valor $encontrados ";
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
- return $respuesta;
-
- }
-}
-$xajax->registerFunction("buscar_datos");
-
-function datos_grid($id_form,$filtro,$valor,$plantilla,$divider,$inicio,$limite) {
- $respuesta = new xajaxResponse('utf-8');
- $nuevo_inicio = ($inicio+$limite+1);
-if($inicio =="") {
- $inicio = "0";
- $script = "
-$(window).scroll(function() {
- if ($(window).scrollTop() == $(document).height() - $(window).height()) {
- xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$nuevo_inicio','$limite') ;
- }
-});
-";
-//$respuesta->addScript("$script");
-//$respuesta->addAlert("$script");
-
- }
-if($limite =="") {$limite = "250";}
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro =" AND id_campo = '$filtro' AND md5(binary contenido) = '$md5_valor' ";}
-}
-$consulta_total= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control ";
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' $w_filtro GROUP BY control LIMIT $inicio , $limite";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-//mysqli_real_escape_string($link,$consulta);
-$sql_total=mysqli_query($consulta_total,$link);
-$total = mysqli_num_rows($sql_total);
-$sql=mysqli_query($consulta,$link);
- $descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
- $descripcion = $descripcion[0];
- $buscador = buscar_datos("","$id_form","$plantilla","grid_resultado");
- $contenido = "$descripcion";
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-$fila=1;
-if($divider =="") {
-$divider=3;
-}
-$cols = (12/$divider);
-$i =0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- if($i % $divider==0) {
-
- $contenido .= "
-
-
-
- ";
- }
- $i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="
$datos
";
-$fila++;
- if( $i % $divider==0) {
- $contenido .= "
";
- }
-
-}
- }
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado ="
$buscador
-
-
-
- $contenido
-
- Mostrar mas resultados
-
- ";
-
-
-///$respuesta->addScript("$script");
-$respuesta->addAssign("contenedor","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("datos_grid");
-
-
-function insertar_registro($tabla,$formulario,$div,$principal) {
- //$valores ="$formulario[0]";
- $formulario = limpiar_caracteres($formulario);
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
-
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($insertar,$link);
- $ultimo_id = mysqli_insert_id($link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $valores = limpiar_caracteres("$valores");
- $grupo = editar_campo("$tabla",$ultimo_id,"$principal","","","");
- $respuesta->addAssign($div,"innerHTML","
$formulario[$principal] ");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- //$respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_registro");
-
-
-
-function formulario_area_campos($perfil,$area,$control) {
- $tipo="";
- $control_edit ="$control";
- $solo_campos ="";
- $muestra_form ="";
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} $campos= "";
-
-$consulta = "
- SELECT * FROM form_campos , form_contenido_campos
- WHERE form_contenido_campos.id_form = '$perfil'
- AND form_contenido_campos.id_campo = form_campos.id
- AND campo_area='$area'
- ORDER BY form_contenido_campos.orden";
-
- $link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-
-
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- if( $row['obligatorio'] == '1'){$obligatorio="*";}else {$obligatorio='X';}
-
- if($row['campo_tipo'] =="24") { $row['multiple'] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos .= formulario_campos_render_multiple($row['id_campo'],$perfil,$control_edit);
- }else{
- $campos .= formulario_campos_render($row['id_campo'],$perfil,$control_edit,'','');
- }
- $muestra_form .= "$campos $obligatorio ";
- $solo_campos .= "$campos $obligatorio ";
-
- }
-
-
-}
-
-
-$resultado = "$muestra_form";
- return $campos;
-
-}
-
-function formulario_areas($perfil,$tipo,$form_respuesta,$control_respuesta){
- $id="";
- $resultado_campos ="";
- $subir_imagen ="";
- $campo_imagen_nombre ="";
- if($form_respuesta =='respuesta'){$control = $control_respuesta;}
- //elseif($form_respuesta =='edicion'){$control = $control_respuesta;}
- else{
-$control = md5(rand(1,99999999).microtime());
-}
- $respuesta = new xajaxResponse('utf-8');
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}
- /*$consulta = "SELECT * FROM form_areas, form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
- AND form_areas.id = form_campos.campo_area AND form_areas.id_empresa = '$id_empresa'
- OR (form_contenido_campos.id_form = '$perfil' AND form_campos.campo_area ='0' )
- AND form_areas.estado = '1' GROUP BY form_areas.id ORDER BY form_areas.orden";
- */
- $consulta= "SELECT * FROM form_campos, `form_contenido_campos`
- WHERE form_campos.id = form_contenido_campos.id_campo
- AND form_contenido_campos.id_form = '$perfil'
-
- GROUP BY form_campos.campo_area
- ";
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- //$campo_titulo = remplacetas('parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
- $descripcion = remplacetas('form_id','id',$perfil,'descripcion','') ;
- $formulario_respuesta = remplacetas('form_id','id',$perfil,'formulario_respuesta','') ;
- $empresa = remplacetas('form_id','id',$perfil,'id_empresa','') ;
- $empresa = $empresa[0];
-
- $nombre= strtoupper($nombre[0]);
- $descripcion= $descripcion[0];
- $form_respuesta= $formulario_respuesta[0];
-
-
-//// encabezado form
-
- if($tipo =='edit') {$control= $control_respuesta;}
- elseif($form_respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- //$descripcion=mysqli_result($sql,0,"descripcion");
- //$nombre=mysqli_result($sql,0,"nombre");
- //$empresa=mysqli_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$empresa",'encabezado');
- $pie = empresa_datos("$empresa",'pie');
- $cabecera = "
-
-
-
-
-
-
-
-
$nombre$descripcion
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($perfil,"15");
-if($campo_imagen[0] !="") {
-$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen_nombre = ucwords($campo_imagen_nombre);
-$campo_imagen = $campo_imagen[0];
- }
-
-if ($campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$perfil","$campo_imagen"."[0]");
-if($tipo != "campos") {
- $imagen = "
-
-
- ";
-
- }else {$imagen =" ";}
- }
-
- $muestra_form = "
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {$control_edit = "$control";}else {$control_edit = "";}
-
-
-////fin encabezado form
-
-
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row['campo_area']=="0"){$area_nombre ="";}
- else{
- $area_nombre = remplacetas('form_areas','id',$row['campo_area'],'nombre','') ;
- $area_nombre = $area_nombre[0];
- }
- $fila = $fila +1;
-
- //$producto = remplacetas('farmacia_cum','id',$row[id_producto],'fabricante_importador') ;
- ///// para pasar el parametro de medicamentos al formulario no pos se adiciona ".func_get_arg(2)."
- $campos = formulario_area_campos($perfil,$row['campo_area'],"$control_edit");
-$resultado_campos .= "
-
-$area_nombre
-$campos
- ";
- }
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos
-
- ";
-
-//// fin botonera form
-
- }
-
-//// cierre form
-
-$muestra_form .="
-
-
-
";
-if($tipo=='campos') {
-
- $resultado = "$resultado_campos $imagen ";
- return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-
Poweredy by MILFS
-
Políticas de privacidad y protección de datos.
-
-";
-return $resultado;
-
-/// fin cierre form
- // $resultado .= "$consulta";
-//$respuesta->addAssign($div,"style.display","block");
-//$respuesta->addAssign($div,"innerHTML",$resultado);
-//return $respuesta;
- //print $muestra_form;
-// return $muestra_form;
- }
-
- $xajax->registerFunction("formulario_areas");
-
-
-
-function tabla_areas($tabla,$value,$descripcion,$onchange,$where,$nombre,$div){
- $group ="";
- if($div =="") {
- $div="div_campos";
- $resultado = "
-
Modificar areas
- ";
- return $resultado;
- }
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$campo3 = $campos[2];
-$campo4 = $campos[3];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="group by $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT * FROM $tabla WHERE 1 $w AND id_empresa='$_SESSION[id_empresa]' $group ORDER BY orden ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-
-$resultado="
-$name
-Id $campo1 $campo2 $campo3 $campo4
- " ;
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-
-$linea = 1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-$editar_campo1= editar_campo("$tabla",$row['id'],"$campo1","","","","");
-$editar_campo2= editar_campo("$tabla",$row['id'],"$campo2","","","","");
-$editar_campo3= editar_campo("$tabla",$row['id'],"$campo3","","","","");
-$editar_campo4= editar_campo("$tabla",$row['id'],"$campo4","","","","");
-$eliminar = " ";
-$resultado .= "$row[$value] $editar_campo1 $editar_campo2 $editar_campo3 $editar_campo4 $eliminar ";
-$linea++;
- }
-
-
- }else{
- $resultado = " No hay resultados
";
- }
-
-$resultado .= "
-
-
-
-
-
-Agregar área
-
-
-
-
-
-
-
-
-
-
-
-
-";
-//return $resultado;
- //$respuesta = new xajaxResponse('utf-8');
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("tabla_areas");
-
-
-
-
-function importar_coleccion($form){
-$div ="confirmar_importacion";
-//$archivos = listado_archivos("$form[path]");
-//$archivos = listar_archivos("$form[path]",'cantidad','',$form);
-
- $directorio = opendir("$form[path]"); //ruta actual
-$resultado = " ";
-while ($archivo = readdir($directorio)) //obtenemos un archivo y luego otro sucesivamente
-{
- if (is_dir($archivo))//verificamos si es o no un directorio
- {
- // $resultado .= "[".$archivo . "]
"; //de ser un directorio lo envolvemos entre corchetes
- }
- else
- {$autor="";
- $ext = explode(".", $archivo);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {
- $cantidad_imagenes++ ;
-
- $exif = leer_exif("$form[path]/$archivo");
- //$name = $exif['exif']['FileName']." ".$form['38']['0']."*" ;
- $form['0']['0'] = "$archivo";
- $autor= $exif['exif']['Artist'];
- $creator = $form['40'][0];
- if($autor !="" ) { $remplazo = array('40' => array("$autor")); }else{ $remplazo; }
-
- }
- //$form = array_replace_recursive($form, $reemplazo);
- $resultado .= $archivo ." / $name ".$form['0'][0]."
";
- }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo .= "( $c : $V )
";
- if($V != '') {
- }
- }
-}
-}
-*/
-//$resultado="$archivos $campo";
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("importar_coleccion");
-
-
-
-
-function listar_archivos( $path ,$opcion, $div,$datos){
- // Abrimos la carpeta que nos pasan como parámetro
-
- $resultado ="";
- //$link = Conectarse();
- $dir = opendir($path);
- $cantidad =0;
- $cantidad_imagenes =0;
-//$datos['61'] = array ( 0 => "otro valor");//"OTRO VALOR";
- if(is_file($path)) {$esarchivo="Escriba la ruta a un directorio en el servidor
"; }
- // Leo todos los ficheros de la carpeta
- //if($esarchivo =="") {
- // $elemento = readdir($dir);
- //}
- while ($elemento = readdir($dir) ){
-
- // Tratamos los elementos . y .. que tienen todas las carpetas
- if( $elemento != "." && $elemento != ".."){
- // Si es una carpeta
- if( is_dir($path.$elemento) ){
- // Muestro la carpeta
- // $resultado .= "
CARPETA: ". $elemento ."
";
- // Si es un fichero
- } else {
- $ext = explode(".", $elemento);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") {$ext = "jpg"; }
- if ($ext == "jpg") {$cantidad_imagenes++ ;
-
- $exif = leer_exif("$path/$elemento");
- $name = $exif['exif']['FileName'];
- $title= "$name ";
- $date= $exif['exif']['DateTimeOriginal'];
- $autor= $exif['exif']['Artist'];
- if(!isset($autor)) { $autor = $datos['40'][0]; }
- $licencia= $exif['exif']['Copyright'];
- if($licencia ==="") { }
- else{
-// $datos['61'][0]= " XX $licencia XXX";
- }
-
-
- //$datos['61'][0] = $licencia;
- if(isset($exif['exif']['UndefinedTag:0xC4A5'])) {
- $exif['exif']['UndefinedTag:0xC4A5']= base64_encode($exif['exif']['UndefinedTag:0xC4A5']);
- }
- if(isset($exif['exif']['MakerNote'])) {
- $exif['exif']['MakerNote']= base64_encode($exif['exif']['MakerNote']);
- }
- if ( $exif['lon'] =="" )
- {
- $geo = $datos['58'][0];
- $mundo ="";
- $datos['58'][0] = $datos['58'][0];
-
- }
- else {
- $geo = "$exif[lon] $exif[lat] 18" ;//$datos['58'][0];
- $mundo ="
";
- $datos['58'][0]= "$geo";
-
-
- }
-
- // $remplazos = array('40');
- // else { $mapa="";}
- //$json = json_encode($exif['exif'],JSON_PRETTY_PRINT);
- //if ( $exif['lon'] =="" ){$datos['58'][0] = $geo;}else {$datos['58'][0] = $datos['58'][0];}
- $resultado .= "
$geo $mundo / ".$datos['58'][0]." ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]." ";
-
- }
-
- $cantidad ++;
-
- $campo .= "";
-
-
- }
- }
-
- }
-
-
- if($div !="" ) {
- if($opcion == "cantidad") {
- $resultado = "
-
- $esarchivo $cantidad archivos, $cantidad_imagenes imágenes jpg, $mapa georeferenciadas
-
-
";
- }
-
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }else {
-
-
-
- return " $campo $resultado"; }
-}
-$xajax->registerFunction("listar_archivos");
-
-
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( "$file" );
- $resultado['exif'] = $exif;
- $resultado['file']= $file;
- $resultado['FileName']=$exif['FileName'];
-
-if($exif === false) {
-//return false;
-}
-
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float)$d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado['lat'] = $gps_latitude;
- $resultado['lon'] = $gps_longitude;
-
- //$resultado = "$_SESSION[url]/mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18";
- }else{}
-
-}
-
-
- $resultado['DateTime'] = $exif['DateTimeOriginal'];
- $resultado['estado'] = "oK";
-
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-
-function relacion_render($form_id,$id_campo,$valor,$cantidad){
-
-
-
-
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-$link = "
Ver referencia ";
-}
-
- return " $valor_actual $link";
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_render");
-
-function buscador_base($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_base_$name";
-$onchange = " xajax_buscador_select_base('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select_base('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_base");
-
-
-function buscador_select_base($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_base_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $tabla = explode(':',$claves[0]) ;
- $tabla = $tabla[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion1 = explode(':',$claves[2]) ;
- $descripcion1 = $descripcion1[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $descripcion3 = explode(':',$claves[4]) ;
- $descripcion3 = $descripcion3[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT * FROM $tabla WHERE $descripcion1 like '$valor%%' GROUP BY $key limit 50 ";
-
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-//$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-//$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select_base");
-
-
-
-function buscador_campo($id_campo,$form_id,$valor,$name,$control,$tipo){
-$div ="div_buscador_$name";
-$onchange = " xajax_buscador_select('$id_campo','$form_id',(this.value),'$name','$control','$tipo'); document.getElementById('$name').value='';";
-$onclick = " xajax_buscador_select('$id_campo','$form_id','','$name','$control','$tipo'); document.getElementById('$name').value=''; (this).value='';";
-$resultado ="
-
-
-
";
-return $resultado;
-
-}
-$xajax->registerFunction("buscador_campo");
-
-
-function imprimir_buscador_campo($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $campo1 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$key' ");
- $campo2 = remplacetas("form_datos","control","$valor","contenido","form_id = '$formulario' AND id_campo = '$descripcion' ");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function imprimir_base($id_campo,$valor) {
-
- $claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
- $descripcion2 = explode(':',$claves[3]) ;
- $descripcion2 = $descripcion2[1];
- $campo1 = remplacetas("$formulario","$key","$valor","$descripcion","");
- $campo2 = remplacetas("$formulario","$key","$valor","$descripcion2","");
- $imprimir ="$campo1[0] $campo2[0]";
- return $imprimir ;
-}
-
-function buscador_select($id_campo,$form_id,$valor,$name,$control,$tipo){
- $div ="div_buscador_$name";
- $respuesta = new xajaxResponse('utf-8');
- if($valor=="") {
-$resultado="";
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
- }
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$consulta=$claves;
-$claves = $claves[0];
-
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $descripcion = explode(':',$claves[2]) ;
- $descripcion = $descripcion[1];
-
-if($valor !="") {
-//$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and (id_campo ='$key' OR id_campo ='$descripcion' )AND contenido like '$valor%%' GROUP BY control limit 50 ";
-
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$campo_descripcion= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$descripcion' ");
-$campo_key= remplacetas("form_datos","control","$row[control]","contenido"," id_campo = '$key' ");
- if($row[control] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= "
- $campo_key[0] $campo_descripcion[0] ";
-
- }
-
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-
-
-
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-
-}
-$xajax->registerFunction("buscador_select");
-
-
-
-function relacion_select($id_campo,$form_id,$valor,$name,$control,$tipo){
-$link=Conectarse();
-$valor_actual ="";
-mysqli_query("SET NAMES 'utf8'");
-
-$claves = remplacetas("form_campos_valores","id_form_campo","$id_campo","campo_valor","");
-$claves = $claves[0];
- $claves = explode(' ',$claves);
- $formulario = explode(':',$claves[0]) ;
- $formulario = $formulario[1];
- $key = explode(':',$claves[1]) ;
- $key = $key[1];
- $limit = explode(':',$claves[2]) ;
- $limit = $limit[1];
- if($limit =="" ) {$limit = 20;}
-if($valor !="") {
-$valor_actual = contenido_mostrar("$formulario",$valor,'','5');
-}
-
-$div ="div_relacion_$name";
-
-$consulta = "SELECT contenido, control FROM form_datos WHERE form_id ='$formulario' and id_campo ='$key' GROUP BY control LIMIT $limit ";
-if($name =="") {
-//return "$valor_actual";
-}
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
-$onchange = " xajax_contenido_mostrar('$formulario',(this.value),'$div','5')";
-$resultado="
-Seleccione
- " ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- if($row['control'] == "$valor") {
-
- $selected = "selected";
- }else{ $selected = "";}
- $resultado .= " $row[contenido] ";
-
- }
-
-$resultado .= "
-
$valor_actual
";
- }else{$resultado = "
No hay resultados $consulta
";}
-
-
- return $resultado;
-
-}
-$xajax->registerFunction("relacion_select");
-
-function combo_select($id_campo,$form_id,$valor,$name,$control,$control_combo){
- $selected="";
- $and="";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if($control_combo !="") {
- $div ="combo_$name";
-$and ="AND campo_valor LIKE '$control_combo:%%'";
-}else{
-$onchange ="xajax_combo_select('$id_campo','$valor','$valor','$name','$control',(this.value)) ";
-$div ="combo_$name";
-$name ="primario_$name";
-}
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' $and ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado=" $valor
-Seleccione
- " ;
- // $resultado = array_unique($entrada);
-while( $row = mysqli_fetch_array( $sql ) ) {
- $campos = explode(':',$row['campo_valor']);
-
- IF($control_combo ==""){
- $campo_primario[]=$campos[0];
- $campo_primario = array_unique($campo_primario);
- }
- else {
- $campo_primario[] = "$campos[0] $campos[1]";
- }
- //$identificador = $identificador[0];
-//if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-//$resultado .= " $campos[0] ";
- }
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "$V ";
-}
-$resultado .= "
-
";
- }else{$resultado = "
No hay resultados
";}
-if($control_combo =='') {
- return $resultado;
- }
-else{
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado");
- return $respuesta;
-}
-}
-$xajax->registerFunction("combo_select");
-
-
-function aplicacion_carrusel($nombre,$id,$plantilla){
- if($id =='') {
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- }
- if($nombre =='') {
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre = $nombre[0];
- }
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
- $descripcion = $descripcion[0];
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
- $campo_titulo = $campo_titulo[0];
- $consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
- $link=Conectarse();
- $sql=mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysqli_data_seek($sql, 0);
-// $contenido = "
$nombre[0] ";
-// $contenido .= "
$descripcion[0] ";
-
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- if($orden === 0) {$activo = "active";}else{$activo="";}
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $campo = buscar_campo_tipo($id,"15");
- $id_campo = $campo[0];
- $imagen = remplacetas('form_datos','control',$row[control],'contenido',"id_campo = '$id_campo'") ;
- $items .= "
-
-
- $contenido_desplegado
-
-
";
- $indicador .= "
";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- //$contenido .= "$contenido_desplegado ";
- $orden = ($orden +1 );
- }
-$contenido .= "
-
-
-
$nombre[0] $descripcion[0]
-
-
-
- ";
- //$contenido = " $links
";
- }
-
-
-return $contenido;
-}
-
-
-function formulario_embebido($id){
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
-
- $impresion = formulario_areas($id,"embebido",'','');
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
-
$visitas
- $formulario_nombre[0]$formulario_descripcion[0]
- $impresion
-
-
-
-
-
-
-
";
- return $muestra_form ;
-}
-
-
-function formulario_embebido_ajax($id,$opciones,$tipo){
- //$impresion = formulario_modal("$id",$form_respuesta,$control,"embebido");
- //($perfil,$tipo,$form_respuesta,$control_respuesta)
- $respuesta = new xajaxResponse('utf-8');
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"") ;
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "$permiso_identificador
Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
-
-
-
- if($tipo =='edit' AND $_SESSION['id_empresa'] !== $id_empresa[0] AND $permiso_identificador != $opciones) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
- $salir
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- if($tipo=="respuesta") { $form_respuesta = "respuesta";}
- $impresion = formulario_areas("$id","$tipo","$form_respuesta","$opciones");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $visitas= contar_visitas($id,'formulario') ;
- $muestra_form = "
-
-
-
$visitas
-
- $impresion
-
-
- ";
- // return $muestra_form ;
-
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- //$div_contenido = "
$div
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- //$respuesta->addAssign("titulo_modal","innerHTML","Hola mundo");
- //$respuesta->addAssign("pie_modal","innerHTML","$pie");
- //$respuesta->addAssign("$div","innerHTML","$resultado");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
-
-}
-$xajax->registerFunction("formulario_embebido_ajax");
-
-function formulario_embebido_campos($id,$opcion){
- $impresion = formulario_modal("$id",$form_respuesta,$control,"$opcion");
-
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion') ;
-
- $muestra_form = "
-
-
$formulario_nombre[0]
-
$formulario_descripcion[0]
- $impresion
-
-
-
";
- return $muestra_form ;
-}
-
-function json($datos){
-if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND
-form_id.publico = '1' "; $w_publico = "WHERE form_id.publico = '1'
-"; }
-else { $publico = "AND form_id.id_empresa = '$_SESSION[id_empresa]'
-"; $w_publico = "WHERE form_id.id_empresa = '$_SESSION[id_empresa]' ";
-}
-$datos = mysql_seguridad($datos);
-$link=Conectarse();
-mysqli_query("SET NAMES 'UTF8'");
-if($datos[id] !=''){
-if($datos[tipo] =='simple') {
-$campos ="control " ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-GROUP BY form_datos.control
-ORDER BY form_datos.timestamp DESC";
-
-$sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysqli_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysqli_fetch_array( $sql ))
- {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $nuevos_datos = $datos;
- $nuevos_datos[identificador]="$row[control]";
- $nuevos_datos[tipo]="array";
- //$features[$row[control]] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- $features[] = datos_array($row[control]) ;
-//json($nuevos_datos);//" $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-
-if($tipo == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-return $resultado;
-
-}
-else {
-$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo , contenido ,timestamp, control as identificador ,
-form_datos.orden" ;
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_id = '$datos[id]' )
-$publico
-ORDER BY form_datos.control ,form_datos.timestamp ";
-}
-
-}
-elseif($datos[identificador] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, campo_nombre, form_campos.id AS
-id_campo ,contenido ,timestamp, control as identificador ,
-form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (control = '$datos[identificador]' )
-$publico
-";
-}
-elseif($datos[dato] !=''){
-if($datos[tipo] =='simple') {$campos ="form_campos.id as id_campo,
-form_datos.id as id_dato " ;}
-else {$campos ="form_datos.id as id_dato, form_datos.form_id AS
-id_formulario, nombre as formulario, nombre as formulario,
-campo_nombre, form_campos.id AS id_campo ,contenido ,timestamp,
-control as identificador, form_datos.orden" ;}
-$consulta = "SELECT $campos
-FROM `form_datos` , `form_campos` ,form_id
-WHERE form_datos.id_campo = `form_campos`.id
-AND form_datos.form_id = `form_id`.id
-AND (form_datos.id = '$datos[dato]' )
-$publico
-";
-}
-else {
-$consulta = "SELECT id as form_id, nombre as form_nombre, descripcion
-as form_descripcion , creacion , publico AS contenido_publico ,
-modificable AS formulario_publico
-FROM form_id $w_publico";
-}
-
-
-$sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysqli_num_rows($sql)!='0'){
-$i = 1;
-$features = array();
-// $features[] = $consulta;
-while($row = mysqli_fetch_array( $sql ))
- {
- if($datos[tipo]=="simple"){
- $contenido = remplacetas('form_datos','id',$row[id_dato],'contenido',"") ;
- $id_campo = remplacetas('form_datos','id',$row[id_dato],'id_campo',"") ;
- $nombre_campo =
-remplacetas('form_campos','id',$id_campo[0],'campo_nombre',"") ;
- $features[] = "$nombre_campo[0] : $contenido[0]";//$row[id_campo];
- }
- else {
- $features[] = $row;
- }
-
-
- $i++;
- }
-
-
-
-}
-
-if($datos[tipo] == "array" ) {
-$resultado = $features;
-}else {
-
-$resultado = json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-}
-
-return $resultado;
-}
-
-
-
-
-function imprime_geojson($id,$id2,$plantilla){
- $id_form = mysql_seguridad($id);
- $id_form2 = mysql_seguridad($id2);
- $campo = buscar_campo_tipo($id_form,"14");
- $campo2 = buscar_campo_tipo($id_form2,"14");
- $id_campo = $campo[0];
- $id_campo2 = $campo2[0];
- if($id_form2 !=""){$w_id2 =" OR form_id = '$id_form2'"; $or_2 ="or id_campo = '$id_campo2'";}
-
-$link=Conectarse();
-
- $consulta = "SELECT form_id as id, control, GROUP_CONCAT(contenido ORDER by timestamp desc ) as data
-FROM `form_datos`
-WHERE (form_id = '$id_form' $w_id2 )
-AND ( id_campo ='$id_campo' $or_2 )
-group by control
-ORDER BY orden desc";
-//return $consulta;
-
- mysqli_query("SET NAMES 'UTF8'");
- $sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta ");
- if (mysqli_num_rows($sql)!='0'){
- $id = 1;
- $features = array();
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $marcador = array();
- $propiedades = array();
- $identificador = explode(',',$row[data]);
- $identificador = $identificador[0];
- $campos = explode(" ",$identificador);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- $formulario = formulario_imprimir($row[id],$row[control],"$plantilla");
-
- $marcador["type"] = "Point";
- $marcador["coordinates"] = array($lat,$lon);
- $propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
- //$propiedades[description] ="HOLA MUNDO";
- $propiedades[description] ="
$formulario
";
- $propiedades[sounds] ="";
- $propiedades[url] ='';
- $propiedades[icon][iconSize] =[60,60];
- //$propiedades[icon][shadowSize] =[70,70];
- //$propiedades[icon][shadowUrl] = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
-
- //$propiedades[title] ='Hola mundo';
- if($propiedades[icon][iconUrl] =="") {
- $propiedades[icon][iconUrl] = "$_SESSION[site]/milfs/images/iconos/negro.png";
- }
- $geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)."},";
- $features[] = $marcador;
-
- $id++;
- }
-
-}
-//-75.58295 6.25578 16
-
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
- \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
- \"type\": \"FeatureCollection\",
- \"features\": [$geometria ]}";
-return $geometria;
-}
-
-
-function aplicacion_presentacion($id,$div,$timeout){
- if($timeout < '1000') {$timeout =5000;};
- $respuesta = new xajaxResponse('utf-8');
-$consulta ="SELECT * FROM form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$control = mysqli_result($sql,0,control);
-$impresion = formulario_imprimir("$id","$control","");
-
- }
-$siguiente = "
SIGUIENTE ";
-if($div ==''){
- $presentacion = "
$siguiente $impresion
";
- }else{
- //$respuesta->addAlert("$consulta");
- $respuesta->addScript("setTimeout(function(){xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout')},$timeout)");
- $respuesta->addAssign("$div","innerHTML","$siguiente $impresion");
- return $respuesta;
- }
-return " $presentacion";
-
-
-}
-$xajax->registerFunction("aplicacion_presentacion");
-
-function aplicaciones_listado($id_form,$tipo,$div){
-
-// if($id_empresa !=''){ $_empresa = " ";}
- //if($tipo =='publico'){ $w_publico =" publico ='0'";}else {$w_publico =" publico ='1'";}
- if($id_form !="") {$w_form = " AND id = '$id_form'";}
- $w_publico =" publico ='1'";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE $w_publico $w_form ORDER BY orden asc ";
-mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado_li .= "
";
- }else {$resultado_li = "";}
-
-if($tipo =='li') { return $resultado_li.$resultado;}
-elseif($tipo =='nav') { return $resultado_nav;}
-elseif($tipo =='grid') {
-if($div !="") {
- $respuesta = new xajaxResponse('utf-8');
- $respuesta->addAssign("$div","innerHTML","$resultado_grid");
- return $respuesta;
- }else{
- return $resultado_grid;
- }
-}
-elseif($tipo =='banner') { return $resultado_banner;}
-elseif($tipo =='carrusel') { return $resultado_carrusel;}
-else {return $resultado;}
-}
-$xajax->registerFunction("aplicaciones_listado");
-
-
-function contenido_aplicacion($id,$plantilla){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
-
- $control = mysqli_result($sql,0,"control");
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$id,'descripcion',"") ;
-
- mysqli_data_seek($sql, 0);
-
- //$contenido = "
$nombre[0] ";
- $contenido = "
$descripcion[0] ";
-
- $orden = 0;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- //return "$row[form_id] $row[control] $plantilla";
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado
";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
- $id = remplacetas('form_id','nombre',$nombre,'id',"") ;
- $id = $id[0];
- if($id[0] =="") {$aviso = "
No se ha definido una aplicación con el nombre $nombre ";
- return $aviso;}
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
-
- mysqli_data_seek($sql, 0);
- $contenido = " ";
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_desplegado ";
- }
- $contenido = " $links
";
- }
-
- return $contenido;
-
-}
-
-
-
-function contenido_parallax($id){
-$div = "contenedor";
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- $contenido = "";
- mysqli_data_seek($sql, 0);
-
- $orden = 0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- //$orden = $orden+500;
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'','contenido');
-
- $titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $nav_li .="
-
- ";
- $style .=" a[id= '$row[control]']:target ~ #main_$id article.article
- {
- -webkit-transform: translateY(-$orden"."px);
- transform: translateY( -$orden"."px );
- } ";
- $links .= "
";
- $contenido .= "
-
- $contenido_desplegado
-
- ";
- $orden = $orden +800;
- }
- $contenido = "
-
-
- $links
-
-
-
-
- ";
- }
-
-//return " $contenido";
- $respuesta->addAssign("$div","innerHTML","$contenido");
- return $respuesta;
-
-}
-$xajax->registerFunction("contenido_parallax");
-
-function contenido_timeline($id){
-$div = "contenedor";
- $descripcion = remplacetas('form_id','id',$id,'descripcion') ;
- $nombre = remplacetas('form_id','id',$id,'nombre') ;
- $respuesta = new xajaxResponse('utf-8');
-
- $campo_titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
-if($campo_titulo[0] !='') {$w_campo = "AND id_campo = '$campo_titulo[0]'";}
-$campo_titulo = $campo_titulo[0];
-$consulta ="SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador FROM form_datos WHERE form_id = '$id' $w_campo GROUP BY control order by contenido";
-$link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- $control = mysqli_result($sql,0,control);
- //$contenido = "
-
-
- $parametrizacion
-
-
- $subir_imagen
-
-
- ";
-
- $respuesta->addAssign($div,"innerHTML",$resultado);
-
-}
-
-return $respuesta;
-}
-$xajax->registerFunction("configuracion");
-
-
-function cambiar_imagen($imagen,$tabla,$id) {
- $respuesta = new xajaxResponse('utf-8');
-$link = Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "UPDATE $tabla SET `imagen` = '".$imagen."' WHERE `id` = '$id';";
- $sql_consulta=mysqli_query($consulta,$link);
- if($sql_consulta) {
-if($tabla =='empresa') {
- $respuesta->addAssign("banner","style.backgroundImage","url('images/secure/?file=600/$imagen')");
- $respuesta->addAssign("formUpload","innerHTML","");
-}
-
- //$respuesta->addAlert("$consulta");
-return $respuesta;
-}
-}
-$xajax->registerFunction("cambiar_imagen");
-
-
-
-
-function limpiar_caracteres($valor){
-$b=array("{","}","]","[",";","¡","!","¿","?","'",'"' );
-$c=array(" "," "," "," "," "," "," "," ","'"," ");
-$resultado=str_replace($b,$c,$valor);
-return $resultado ;
-}
-
-function actualizar_campo($tabla,$key,$campo,$valor,$accion,$div) {
- $valor = limpiar_caracteres($valor);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' $accion limit 1; ";
- $sql=mysqli_query($edit,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $respuesta->addAssign($div,"innerHTML",$valor);
- }
- return $respuesta;
-}
-$xajax->registerFunction("actualizar_campo");
-
-
-function eliminar_campo($tabla,$key,$div) {
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $borrar = "DELETE FROM $tabla WHERE id = '$key' limit 1";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($borrar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- $respuesta->addAssign($div,"innerHTML","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("eliminar_campo");
-
-
-function insertar_campo($tabla,$formulario,$div) {
- //$valores ="$formulario[0]";
- $nombre = $formulario['nombre'];
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-// $respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- $respuesta->addAssign("$div","innerHTML","
El registro se insertó con éxito
");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_campo");
-
-function insertar_campo_area($tabla,$formulario,$div) {
- //$valores ="$formulario[0]";
- $nombre = $formulario['nombre'];
- foreach($formulario as $c=>$v){
-
- $valores .= " $c = '$v',";
- }
- $valores = "$valores id_empresa = '$_SESSION[id_empresa]'";
- $key = limpiar_caracteres($key);
-$respuesta = new xajaxResponse('utf-8');
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $insertar = "INSERT INTO $tabla set $valores";
-// $edit = "UPDATE $tabla SET $campo = '$valor' WHERE id = '$key' limit 1; ";
- $sql=mysqli_query($insertar,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
-if($div !='') {
- //$respuesta->addAssign($div,"innerHTML","");
-
- }
- //$respuesta->addAlert("$insertar");
-//$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
- $respuesta->addScript("javascript:xajax_tabla_areas('form_areas','id','nombre,descripcion,estado,orden','','','Areas','div_campos')");
- //$respuesta->addAssign("contenido","innerHTML","$insertar");
- return $respuesta;
-}
-$xajax->registerFunction("insertar_campo_area");
-
-
-function editar_campo($tabla,$key,$campo,$valor,$accion,$div,$indice){
- $indice=$indice;
- if ( !isset ( $_SESSION['id'] ) ) { return;}
- if($indice =="") {$id = "id";}
- else {$id = "$indice";}
- ////NO SE PUEDE EDITAR EL CAMPO (id )
-
-//
-if(@$div=='') {$div = "div_$tabla".$campo;}
-else {$div = $div;}
- $respuesta = new xajaxResponse('utf-8');
- $valor = limpiar_caracteres($valor);
-
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $consulta = "SELECT $id , $campo AS valor FROM $tabla WHERE $id = '$key' LIMIT 1";
- $sql_consulta=mysqli_query($consulta,$link);
- $Valor = mysqli_result($sql_consulta,0,"valor");
-
-
-if(@$accion == 'cerrar') {
- $campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
-$respuesta->addAssign($div,"innerHTML",$campo);
-return $respuesta;
- }
-elseif($accion=="input") {
- $size= strlen($Valor);
- $placeholder = strtoupper(limpiar_caracteres($campo));
- $rrn = $div;
-if($size < 40) {
-
- $resultado = "
-
- ";
- }else {
- $resultado = "
-
- ";
- }
- }
-elseif($accion== "grabar"){
-
- $edit = "UPDATE $tabla SET $campo = '$valor' WHERE $id = '$key' limit 1; ";
- $sql=mysqli_query($edit,$link);
- if(mysql_affected_rows($link) != 0){
-
- }
- $campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
- $respuesta->addAssign($div,"innerHTML",$campo);
- return $respuesta;
-
-
- }
-
-else{
- if (mysqli_num_rows($sql_consulta)!='0'){
- $valor=mysqli_result($sql_consulta,0,"valor");
-
- /////// campos que no se muestran ///
-if($campo == 'id' OR $campo == 'id_usuario' OR $campo == 'id_grupo') {
-return ;
-}
-
- /////////// campos que se muestran para edicion //////////////
- $title = strtoupper(limpiar_caracteres($campo));
- $div= rand(123,999);
- if($valor =="") {$aviso="
$title ";}else{$aviso ="";}
-$campo ="
-
-
-
- ";
- }
- else {$campo = "";}
-
- return $campo;
-}
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
-}
-
-$xajax->registerFunction("editar_campo");
-
-
-function formulario_imprimir($id,$control,$tipo) {
-$resultado ="";
-$limit ="";
-//if ($timestamp != ""){$where_timestamp = "AND form_datos.timestamp = '$timestamp' ";}ELSE { $where_timestamp = ""; }
-if(is_numeric($tipo)) { $limit = "limit $tipo "; $class= "alert alert-info";}
-//if($control != "") { $w_control = "AND control = '$control' ";}
- $id = mysql_seguridad($id);
- $control = mysql_seguridad($control);
- if($id =="") {
- $id_seguridad = remplacetas('form_datos','control',$control,'form_id','') ;
- $publico = remplacetas('form_id','id',$id_seguridad[0],'publico','') ;
- }else{
- $publico = remplacetas('form_id','id',$id,'publico','') ;
- }
-
- if($publico[0] != "1" and (!isset ( $_SESSION['id']) )) {
- $resultado ="
Acceso restringido Esta aplicación contiene datos privados ( ) ";
- return $resultado;
-
- }
-
- //if($id !='') {$w_id = "AND form_id = '$id'";}else {$w_id='';}
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos , form_datos
- WHERE form_contenido_campos.id_campo = form_datos.id_campo
- AND form_datos.control = '$control'
- AND form_contenido_campos.id_form = '$id'
- $where_timestamp
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' $where_timestamp GROUP BY id_campo" ;
- }
- $control = mysql_seguridad($control);
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysqli_result($sql,0,"form_id");}
-
-
-
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa','') ;
-
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- @$multiple =$row['multiple'];
- $campo_tipo = remplacetas('form_campos','id',$row['id_campo'],'campo_tipo','');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $contenido_array = $contenido;
- // $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control");
- $md5_contenido = $contenido[4];
- $contenido_original = $contenido[3];
- $contenido = $contenido[3];
-
-
-
-
- if($campo_tipo =='15' AND $tipo==""){if($contenido !=""){
- $contenido = "
-
Mostrar
- "; }else{$contenido="";}}
- elseif($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- @include("includes/datos.php");
- $error_token ="";
- if(!isset($mapbox_token)) { include("milfs/includes/datos.php"); if(!isset($mapbox_token)) {$error_token = 1; }}
- if($error_token != 1) {
- $url_pin = urlencode("$_SESSION[site]milfs/images/iconos/negro.png");
- $contenido = "
-
-
- "; }else{ $contenido ="
No se ha definido un token de mapbox
";}
- }
- }
- elseif($campo_tipo=='4'){ $contenido = "
$contenido ";}
- elseif($campo_tipo=='18'){ $contenido = "";}
- elseif($campo_tipo=='23'){
- $funcion = remplacetas("form_campos_valores","id_form_campo","$row[id_campo]","campo_valor","");
- eval("\$contenido = ".$funcion[0].";");
- $contenido .= "";
-
- }
- elseif($campo_tipo=='6'){
- $contenido = imprimir_buscador_campo($row['id_campo'],$contenido);
- }
- elseif($campo_tipo=='21'){
- $contenido = imprimir_base($row['id_campo'],$contenido);
- }
- elseif($campo_tipo=='10'){
- $valor_actual = relacion_render("$id","$row[id_campo]",$contenido,'5');
- $contenido = "$valor_actual";}
- elseif($campo_tipo=='5' AND $contenido !=""){
- if($tipo =="") {
- $contenido = trim($contenido); $contenido = "
-
-
-
- ";
- }else {
- $contenido =$contenido;
- }
- }
-
- else {
- $html ="$contenido";
- $contenido = nl2br($html);
- $contenido = Markdown($contenido);
- }
- $campo_nombre = remplacetas('form_campos','id',$row['id_campo'],'campo_nombre','');
- $nombre[$row['id_campo']] = $campo_nombre[0] ;
-////buscar campo imagen
-$campo_imagen = buscar_campo_tipo($id,"15");
-//$campo_imagen_nombre = $campo_imagen[1];
-$campo_imagen = $campo_imagen[0];
-////
- if($row['id_campo'] == $campo_imagen AND $tipo !="" ){ $contenido = strip_tags($contenido); }
- $campo[$row['id_campo']]=$contenido;
- $campo_400[$row['id_campo']] = substr($contenido,0, $length = 400)."... ";//$contenido;
- $campo_80[$row['id_campo']] = substr($contenido,0, $length = 80);//$contenido;
- $campo_55[$row['id_campo']] = substr($contenido,0, $length = 55);//$contenido;
- $campo_limpio[$row['id_campo']] = $contenido = strip_tags($contenido);
- $fecha = date ( "Y-m-d h:i:s" , $row['timestamp'] );
-
- $campo["md5_".$row['id_campo']]=$md5_contenido;
-
- if($row['id_campo'] == $categoria_campo){
-
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- if($icono[0] =='') {
- //$icon = "http://$_SERVER[HTTP_HOST]/milfs/images/pin.png";
- $url_pin = urlencode("$_SESSION[site]milfs/images/iconos/negro.png");
- $icon = "$_SESSION[site]milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $icono = "$icon";
- //$array[icon][iconSize] =[50,50];
-
- }else{}
-
-if($contenido_original !="") {
- //// si el campo es tipo password (18) no se muestra
- if($campo_tipo !='18'){
- if($tipo == "metadatos"){
- $metadatos = " ".date('Y-m-d H:i:s',$contenido_array[1])." id $contenido_array[0] proceso $contenido_array[5] usuario $contenido_array[6] ip ".long2ip($contenido_array[7])." campo $row[id_campo] ";
- }else {$metadatos='';}
- $resultado .= "
-
-
- $campo_nombre[0] $metadatos
- $contenido
- ";
-}
-}
- }
-
- //$resultado .="
";
-//}else {$resultado ="
No se encontraron resultados "; return $resultado;}
-//if($id=="6" OR $id=="10") {
- $plantilla="";
- $class="";
- if($tipo !="" AND (!is_numeric($tipo)) AND $tipo !="metadatos" ) {
-////Usa una plantilla apra cada id
-
-$plantilla = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'plantilla:$tipo'") ;
-$plantilla = $plantilla[0];
-if($plantilla =="") {
-///Usa una plantilla generica por nombre
-$plantilla = remplacetas('form_parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = ''") ;
-$plantilla = $plantilla[0];
-//$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"campo = '$id' ") ;
-}
-if($plantilla !='') { $plantilla = html_entity_decode ( $plantilla );}
-/*else {
-$plantilla = remplacetas('parametrizacion','opcion',"plantilla:$tipo",'descripcion',"") ;
-$plantilla= $plantilla[0];
- }
- */
- }
-if($plantilla != ""){
-eval("\$plantilla = \"$plantilla \";");
- $full =" $plantilla ";
- }else {
- $full= "
$resultado
";
- }
-
- $resultado ="$full";
- return $resultado;
-
-// }else {$resultado ="
No se encontraron resultados "; return $resultado;}
- }else {$resultado =""; return $resultado;}
-}
-
-
-function subir_imagen($respuesta,$id){
-$resultado ="";
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-//this.form.taget= 'ventana'; this.form.action = 'destinoEspecial.html'; this.form.submit()"
-$javascript="$_SESSION[url]/includes/upload.php";
-$campo_mapa = buscar_campo_tipo($respuesta,"14");
-$campo_mapa = $campo_mapa[0];
-if ($id ==''){$id='imagen';}
-$size = ($_SESSION['upload_size']*1024*1024)." bytes";
-$resultado ="
-
-
-
-
-
-
-La imagen debe estar en formato .jpg y de tamaño máximo $_SESSION[upload_size] MB ( $size)
-
-";
-return $resultado;
-
-}
-
-
-function formulario_importador($accion) {
-
- if($accion =='') {
- $resultado="
Importador";
-
- return $resultado;
- }
- $respuesta = new xajaxResponse('utf-8');
- $formulariox =formulario_importar('','menu','');
- $resultado="$formulariox
";
- $respuesta->addAssign("contenido","innerHTML","$resultado");
- return $respuesta;
-}
-$xajax->registerFunction("formulario_importador");
-
-
-function subir_archivo($perfil){
-///vinculado con la funcion de javascript resultadoUpload(estado, file) que esta en librerias/scripts.js
-$javascript="includes/upload_archivo.php";
-$resultado ="
-
-
-
-
-Máximo 1MB
-
- ";
-
-
-return $resultado;
-
-}
-
- /*
-function formularios_muestra_listado($formulario){
-
- if($formulario==''){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ";
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
- $resultado .="
";
- $resultado .= "Seleccionar formulario a importar ";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= " $row[nombre] ";
- }
-
- $resultado .=" ";
- }else {$resultado = "";}
-
- return $resultado;
- }else{
- $respuesta = new xajaxResponse('utf-8');
- $subir = subir_archivo($formulario) ;
- $div="importador_select";
- $resultado .= "$subir";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-$respuesta->addAssign("importador_archivo","innerHTML","");
-
-
-
-return $respuesta;
-}
-}
-$xajax->registerFunction("formularios_muestra_listado");
- */
-
-function formulario_importar_subir($formulario){
- $pie="";
- $respuesta = new xajaxResponse('utf-8');
- $formulario_nombre = remplacetas('form_id','id',$formulario,'nombre','') ;
- //$formulario_descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
- $encabezado = "
Importar $formulario_nombre[0] ";
- $subir = subir_archivo($formulario) ;
- $div="contenido";
-
- $muestra_form = "
-
- $subir
-
-
- ";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$encabezado");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
-return $respuesta;
-
-}
-$xajax->registerFunction("formulario_importar_subir");
-
-
-function formulario_importar($filename,$accion,$perfil){
-$formulario = "";
-$consulta = "";
-$div = "importador_archivo";
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$resultado = "
-
-
-
-
- Importando formulario ";
-$nombre = "/tmp/$filename";
-if($accion == "grabar") {
-}
-if (($handle = fopen($nombre, 'r')) !== FALSE)
- {
- $fila= 0;
- set_time_limit(0);
-while (($datos = fgetcsv($handle,0,"|")) !== FALSE) {
-$numero = count($datos);
-if($fila >=1) {
-$resultado .= "";
-$numero_columna = 0;
-for ($c=0; $c < $numero; $c++) {
-$columna = $datos[$c];
-if($columna !=""){
-if($accion === "grabar"){
-$control=md5($perfil.$fila.time());
-$ip = obtener_ip();
-$graba_ip = " ip = INET_ATON('".$ip."') ";
-$consulta_campos = "INSERT INTO form_datos SET timestamp= '".time()."', id_usuario='$_SESSION[id]',id_empresa='$_SESSION[id_empresa]',form_id ='$perfil',
-$graba_ip ,
-control = '$control', $consulta id_campo = '$campo[$numero_columna]' , contenido = '$columna'";
- // $verificar_campo = formulario_verificar_campo($perfil,$campo[$numero_columna]);
- $elregistro= $campo[$numero_columna];
- //if($verificar_campo == NULL){}else{
- if(is_numeric($elregistro)) { $elregistro =$elregistro;}else {$elregistro = -9;}
- //$verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$elregistro,'campo_nombre','');
- if($campo_existe[0] == ""){}else{
- $sql = mysqli_query($consulta_campos,$link);
- if($sql) {
- $class='success';
- $resultado = "GRABADO $fila".time();
- //$sql_resultado = "oK";
- }
- else {
- $class='danger';
- }
- }
- }
-}
-//$resultado .= "$columna $sql_resultado ";
-$numero_columna ++;
- }
- $resultado .= " ";
- }
- else {
- $resultado .= "";
-
- $posicion = 0;
- for ($c=0; $c < $numero; $c++) {
- $titulo = $datos[$c] ;
- $campo[$posicion] = $datos[$c];
- if(is_numeric($titulo)) { $titulo =$titulo;}else {$titulo = -9;}
- $verificar_campo = formulario_verificar_campo($perfil,$titulo);
- $campo_existe = remplacetas('form_campos','id',$titulo,'campo_nombre','');
- if($verificar_campo == NULL){$verificar_campo_aviso =" No existe "; $class='danger';
- if($campo_existe[0] !='') { $verificar_campo_aviso =" No está en el formulario ";$class='warning';}
- }
-
- else{$verificar_campo_aviso =""; $class='success';}
-
- $resultado .= "$titulo $campo_existe[0]$verificar_campo_aviso ";
- $posicion ++;
- }
-
-
- $resultado .= " ";
- }
- $fila++;
- }
-
-
- $resultado .= "
-
$fila ".time()." " ;
- }
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}
-
-$xajax->registerFunction("formulario_importar");
-
-
-
-function formulario_verificar_campo($perfil,$id_campo){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT * FROM `form_contenido_campos` WHERE `id_form` = '$perfil' AND id_campo='$id_campo'";
-$sql =mysqli_query($consulta,$link);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
-$existe = NULL;
-
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$obligatorio=mysqli_result($sql,0,"obligatorio");
-$existe[]= $control;
-$existe[]= $obligatorio;
-$existe[]= $consulta;
-
-}
-
-return $existe;
- }
-
-function borrar_tmp($div) {
-if($div =='') {
- $div="borra_tmp";
-$resultado ="
Limpiar ";
-
-return $resultado ;
-}
-$dir = "tmp/";
-$ficheroseliminados= 0;
-$handle = opendir($dir);
-while ($file = readdir($handle)) {
- if (is_file($dir.$file)) {
- if ( unlink($dir.$file) ){
- $ficheroseliminados++;
- }
- }
-}
-$fecha = time ();
-$ahora = date ( "Y-m-d h:i:s" , $fecha );
-$resultado ="
$ahora
";
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("borrar_tmp");
-
-
-function formulario_imprimir_linea($id,$control,$tipo) {
- $id = mysql_seguridad($id);
- //if($id !='') {$w_id = "AND form_id = '$id'";}
- $control = mysql_seguridad($control);
-/* $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
- ORDER BY form_contenido_campos.orden ASC
- ";
- */
- if($id !='') {
- $consulta = "SELECT *
- FROM form_contenido_campos
- WHERE form_contenido_campos.id_form = '$id'
-
- ORDER BY form_contenido_campos.orden ASC $limit
- ";
- }else {
- $consulta = "SELECT * FROM form_datos WHERE control = '$control' GROUP BY id_campo" ;
- }
-
-
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if($id !='') {$id = $id;}else {$id=mysqli_result($sql,0,"form_id");}
- $categoria_campo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:campo'") ;
- $categoria_campo = $categoria_campo[0];
-
- $titulo = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'titulo'") ;
- $titulo = $titulo[0];
-
-$timestamp=mysqli_result($sql,0,"timestamp");
-$fecha = date ( "Y-m-d h:i:s" , $timestamp);
-
-if (mysqli_num_rows($sql)!='0'){
- mysqli_data_seek($sql, 0);
-// $resultado ="
";
- $imagen = formulario_valor_campo("$id","0","","$control");
- $imagen = $imagen[3];
- if($imagen[3] != null AND $tipo !='titulos') {
- $array[image]=$imagen;
- $imagen_icon="secure/?file=150/$imagen";
- $imagen= " ";
-
- }else {$imagen='';}
-$td .= "$imagen ";
-
- while( $row = mysqli_fetch_array( $sql ) ) {
-
- $campo_tipo = remplacetas('form_campos','id',$row[id_campo],'campo_tipo');
- $campo_tipo =$campo_tipo[0];
- $contenido = formulario_valor_campo("$id","$row[id_campo]","","$control",'');
- $md5_contenido = $contenido[4];
- //md5(binary contenido) as md5_contenido,
- $contenido_original = $contenido;
- //$control = $contenido[0];
- $contenido = $contenido[3];
- $campo_nombre = remplacetas('form_campos','id',$row[id_campo],'campo_nombre');
- $campo_nombre[0] =" $campo_nombre[0]";
- if($tipo=="titulos") {
- $contenido = "$campo_nombre[0] ";
- }
- elseif($tipo=="titulos_csv"){
- $csv .= '"'.$campo_nombre[0].'";';
- }
- elseif($tipo=="linea_csv"){
- $csv .= '"'.$contenido.'";';
- }
- elseif($tipo=="array"){
-
- if($row[id_campo] == $titulo){$array[title]=$contenido;}
- if($row[id_campo] == $categoria_campo){
- $array[category]=$contenido;
-
- $categoria_filtro = remplacetas('form_parametrizacion','campo',$id,'descripcion',"tabla='form_id' and opcion = 'categoria:filtro:$row[id_campo]'") ;
- $filtro = $categoria_filtro;
- $categoria_filtro = $categoria_filtro[0];
- $icono = remplacetas('form_parametrizacion','campo',$id,'descripcion'," tabla='form_id' and opcion = 'categoria:icon:$md5_contenido'") ;
- //$icono[0] = $imagen_icon;
- if($icono[0] =='') {
- //$icon = "https://raw.githubusercontent.com/humano/milfs/master/milfs/images/iconos/negro.png";
- }else{
-
- $icon = $icono[0];
- }
- $array[icon][iconUrl] = "$icon";
- //$array[icon][iconSize] ="[50,50]";
- //$array[icon][shadowSize] =[70,70];
- //$array[icon][shadowUrl] = "http://$_SERVER[HTTP_HOST]/milfs/images/iconos/sha.png";
-
- }else{}
- $array[$row[id_campo]] = $contenido;
- }
- else{
- $limite = 100;
- $size= strlen($contenido);
- $restante = ($limite - $size);
- if($size > $limite) {
- $contenido = substr($contenido,0, $length = 300)."... ";//$contenido;
- }
- if($campo_tipo=='15' AND $tipo==""){if($contenido !=""){$contenido = " "; }else{$contenido="";}}
- if($campo_tipo=='14'){
- if($contenido !='') {
- $campos = explode(" ",$contenido);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- require("includes/datos.php");
- $url_pin =urlencode("$_SESSION[site]milfs/images/iconos/negro.png");
- $contenido = "
-
- ";
- } else { $contenido ='';}
- }
- elseif($campo_tipo=='4'){ $contenido = "$contenido ";}
- elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
- else {$contenido = Markdown("$contenido");}
-
- }
-
-
- if($tipo=="titulos") {
-$td .= " $contenido ";
-
- }else{
-
- $td .= " $contenido ";
- }
- }
-
-if($tipo=="titulos") { $identificador ="Identificador "; }else {$identificador ="$control ";}
- $resultado .="$td $identificador ";
-}
- if($tipo =='titulos_csv' or $tipo=='linea_csv') {
-
-return $csv;
- }
- if($tipo =="array") {
- //$array["title"]="hola mundos";
- return $array;
- }
- return $resultado;
-}
-
-
-// $contenido_desplegado = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-function mostrar_coincidencias_plantilla($id_form,$filtro,$valor,$plantilla) {
-
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-//mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($consulta,$link);
-$control=mysqli_result($sql,0,"control");
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) )
- {
-$resultado .= contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-
- }
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias_plantilla");
-
-
-function mostrar_coincidencias($id_form,$filtro,$valor) {
- if($valor !=""){
-$md5_valor = $valor;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_valor'";}
-}
-$consulta= "SELECT * FROM form_datos WHERE form_id= '$id_form' AND id_campo = '$filtro' $w_filtro ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-//mysqli_real_escape_string($link,$consulta);
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!=0){
-mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) )
- {
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $campos .= " $depliegue ";
-
- }
- $resultado = "
";
- }
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("mostrar_resultado","innerHTML",$resultado);
- return $respuesta;
-}
-$xajax->registerFunction("mostrar_coincidencias");
-
-
-function matriz_formulario($formulario,$div,$registros,$pagina,$formato){
- $respuesta = new xajaxResponse('utf-8');
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$md5_filtro = $formulario["campo_filtro"];
-//$formulario = mysql_seguridad($formulario);
-mysqli_real_escape_string($link,$formulario);
-$perfil = $formulario["form_id_id"];
-$filtro = $formulario["campo_filtro"];
-$control = md5(rand(1,99999999).microtime());
-
-$cantidad = formulario_contar($perfil);
-$formulario_nombre = remplacetas('form_id','id',$perfil,'nombre','') ;
-if($filtro !='' ){$w_filtro ="AND md5(binary contenido) = '$md5_filtro'";}
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{
- $resultado ="
Por favor seleccione un formulario";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-if($cantidad < 1) {
- $resultado ="
-
- El formulario \"$formulario_nombre[0]\" no tiene registros
-
- ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
-}
-
-$fecha_inicio = $formulario["inicio"];
-if($fecha_inicio =="" ) { $fecha_inicio ="2000-01-01";}
-$fin = $formulario["fin"];
-$id_campo = $formulario["id_campo"];
-$busqueda = $formulario["busqueda"];
-
-if($formato =='csv') {$orden = "ORDER BY form_datos_id ASC ";}else{$orden = "ORDER BY form_datos_id DESC ";}
-if($id_campo ==''){
- $campo ='';
-
- }else{
- if($busqueda =='') {
- $resultado ="
Por favor escriba una palabra para buscar";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
- $campo ="AND id_campo = '$id_campo'";
-
- }
-
-if($busqueda !=''){$busca ="AND contenido LIKE '%%$busqueda%%'";}Else{$busca ='';}
-
-
-
-$consulta = " SELECT *,from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
- FROM form_datos, form_campos
- WHERE form_datos.id_campo = form_campos.id AND form_datos.id_empresa = '$_SESSION[id_empresa]'
- $busca
- $perfil
- $campo
- $w_filtro
- AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio')
- AND UNIX_TIMESTAMP('$fin 23:59:59') GROUP BY control $orden";
-
-
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)==0){
- $resultado ="
No hay resultados para la consulta ";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
-if (mysqli_num_rows($sql)!=0){
- $total_registros = mysqli_num_rows($sql);
- if($formato=='csv'){
- $nombre_archivo ="tmp/Formulario_".mktime()."_".$_SESSION['id'].".csv";
- $boton_descarga ="
Descargar ";
- $archivo_reporte=fopen($nombre_archivo , "w");
- $encabezado =";;Periodo\n;;$inicio\n;;$fin \n ";
- fputs ($archivo_reporte,$encabezado);
- $tabla .= "ID;Fecha;Timestamp;Formulario;Campo;Contenido;Control\n";
- fputs ($archivo_reporte,$titulo);
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) )
- {
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos_csv');
- $linea = formulario_imprimir_linea($row[form_id],$row[control],'linea_csv');
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $linea = $linea."\n";
- $lineas .= $linea;
- }
- $contenido ="$titulo \n $lineas";
- //rewind($archivo_reporte);
- fputs ($archivo_reporte,$contenido);
- $respuesta->addAssign("boton_descarga","innerHTML",$boton_descarga);
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
-
- }
- }
- else{
- $respuesta ="
No hay resultados
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-/// PAGINACION
- if ($pagina =='') {$inicio = 0; $pagina = 1; }
- else { $inicio = ($pagina - 1) * $registros;}
-
- if($total_registros < $registros) { $limite ="";}
- else{$limite =" LIMIT $inicio, $registros ";}
- $consulta_limite = $consulta.$limite;
- $sql=mysqli_query($consulta_limite,$link);
- if (mysqli_num_rows($sql)!='0'){
- $botones .= "
Limpiar ";
- if($formato!='csv'){
- $botones .= "
- Exportar
- ";
- }
- $paginacion ="";
- $paginacion .= $indice;
- $encabezado = "
-
-
-
$botones $paginacion $total_registros registros
-
-
";
-$fila=0;
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $formulario_nombre = remplacetas('form_id','id',$row[form_id],'nombre') ;
- $fila = $fila +1;
- if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
- $depliegue = formulario_imprimir_linea($row[form_id],$row[control]);
- $titulo = formulario_imprimir_linea($row[form_id],$row[control],'titulos');
- $menu ="
-
-
-
- ";
- $campos .= "
$menu $depliegue ";
- }
- $resultado .="
";
- }else{
- $resultado .="
No hay resultados para la consulta ";
- }
- //$resultado .="$consulta";
-$respuesta->addAssign("resultados_encabezado","innerHTML",$encabezado);
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-} $xajax->registerFunction("matriz_formulario");
-
-
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-if(@$and !=''){$AND = "AND $and";}else{$AND ="";}
-//$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by $campo DESC limit 1";
-$consulta = "SELECT * , md5(binary $por ) as md5_".$por." FROM $tabla WHERE $campo = '$valor' $AND order by id DESC limit 1";
-$sql=mysqli_query($consulta,$link);
-if (@mysqli_num_rows($sql)!=0){
-$resultado[] = mysqli_result($sql,0,$por);
-$resultado[] = mysqli_result($sql,0,'id');
-$resultado[] = $consulta;
-$resultado[] = mysqli_result($sql,0,"md5_$por");
- }else{
- $resultado[0] = '';
- $resultado[1] ="";
- $resultado[2] = $consulta;
- $resultado[3] = NULL;
- }
-return $resultado;
-}
-
-function formulario_campos_select($perfil,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT * FROM form_contenido_campos, form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$perfil'
- ORDER BY campo_nombre ASC";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-
- $categoria = remplacetas('form_parametrizacion','campo',$perfil,'descripcion'," opcion = 'categoria'") ;
- $categoria = $categoria[0];
-$resultado = "
Campo
-
- Todos los campos ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[campo_nombre] ";
-if($div =='') {
- if ($row[id_campo] == "$categoria"){
- $class="active";
- $filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
- }else { $class=""; $filtro ='';}
- $listado .="$row[id_campo] $row[campo_nombre] $filtro ";
- }
- }
-$resultado .= "
-
"; }
-else{$resultado = '';}
-
-if($div =='') {return $listado;}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("formulario_campos_select");
-
-
-function formulario_campos_filtro($perfil,$campo,$div,$onchange){
- $respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "
- SELECT md5(binary contenido) as md5_contenido, contenido FROM form_datos
- WHERE form_id = '$perfil'
- AND id_campo = '$campo'
- GROUP BY contenido
- ORDER BY contenido asc";
-
-
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado = "
- Filtro
-
- Seleccione ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= " $row[contenido] ";
- }
-$resultado .= "
-
";
- }
-else{$resultado = "
No se encontraron resultados
";}
-
-if($div !="") {
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else{return $resultado;}
-
- }
-$xajax->registerFunction("formulario_campos_filtro");
-
-
-//$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo","$id_campo");
-function formulario_consultar($div){
- if($div==''){
- $div = "contenido";
- $resultado = "
Consultas";
- return $resultado;
- }
- $formulario = select('form_id','id','nombre','xajax_formulario_campos_select((this.value),\'div_campos\')',"id_empresa = '$_SESSION[id_empresa]'",'');
- $fecha = time ();
- $ahora = date ( "Y-m-d" , $fecha );
- $peticion = "
-
-
-
-
-
-
-
-
- Formulario
- $formulario
-
-
-
-
-
-
-
-
Consultar
-
-
-";
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$peticion);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_consultar");
-
-
-function formulario_campos_procesar($form,$tipo_accion){
- //$form = mysql_seguridad($form);
- $campos_formulario ="";
-$grabar_campos_valores ="";
-$respuesta = new xajaxResponse('utf-8');
-$campo_nombre = $form["campo_nombre"];
-if($campo_nombre =='') {
-$respuesta->addAlert("El Nombre del campo no puede estar vacío");
-$respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
-return $respuesta;
-}
-
-//$campo_nombre = ucfirst(strtolower($campo_nombre));
-@$campo_descripcion = $form["campo_descripcion"];
-@$campo_tipo = $form["campo_tipo"];
-@$campo_area = $form["campo_area"];
-@$misma_area = $form["misma_area"];
-@$campo_orden = $form["campo_orden"];
-@$campo_identificador = $form["campo_identificador"];
-@$activo = $form["activo"];
-@$tipo = $form["tipo"];
-@$editar = $form["editar"];
-@$id_campo_editar = $form["id_campo_editar"];
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-if ($editar == 'editar' AND $tipo_accion =='editar'){
-mysqli_query("
- UPDATE `form_campos`
- SET `campo_nombre` = '$campo_nombre',
- `campo_descripcion` = '$campo_descripcion',
- `orden` = '$campo_orden' ,
- `campo_area` = '$campo_area',
- `campo_tipo` = '$campo_tipo',
- `id_empresa` = '$_SESSION[id_empresa]',
- `activo` = '$activo'
- WHERE `form_campos`.`id` ='$id_campo_editar'
- LIMIT 1");
-$w_campo = "id = '$id_campo_editar'";
-
- }else {
-$id_empresa = $_SESSION['id_empresa'];
-$id_especialista = $_SESSION['id'];
- $buscar_campo_nombre = remplacetas('form_campos','campo_nombre',$campo_nombre,'campo_nombre'," id_empresa = '$id_empresa' AND campo_area = '$campo_area' ") ;
- if($buscar_campo_nombre[0] == $campo_nombre) {
- $respuesta->addAlert("El Nombre del campo ( $campo_nombre ) ya existe en la misma área ");
- $respuesta->addAssign("grupo_campo_nombre","className"," input-group has-error ");
- return $respuesta;
- }
-if($campo_identificador == "") { $campo_identificador = md5($_SESSION['id_usuario']."-".microtime()); }
-$consulta = "
- INSERT INTO `form_campos`
- (`id_especialista`, `campo_nombre`,`campo_descripcion`,`campo_tipo`, `campo_area`, `orden`, `activo`, `identificador`, `id_empresa`)
- VALUES ('$id_especialista','$campo_nombre','$campo_descripcion','$campo_tipo','$campo_area','$campo_orden','1','$campo_identificador','$id_empresa')";
- $sql =mysqli_query($consulta,$link);
- $ultimo_id = mysqli_insert_id($link);
-$w_campo= "identificador = '$campo_identificador'";
-if($sql) {
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'div_campos')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
- $campos_formulario ="
-
-
- El campo se creó con éxito
- Crear un nuevo campo
- Modificar campo $listado_campos
- ";
- if(@$form['agregar_id_form'] !="") {
- $respuesta->AddScript("xajax_agregar_campos('grabar_campos','contenido','$ultimo_id','$form[agregar_id_form]') ");
- ///$respuesta->addAssign("$div","innerHTML",$resultado);
- //return $respuesta;
- }
- }else {$campos_formulario = "
Problemas al grabar el campo $consulta";}
- }
-
-if($id_campo_editar !='' AND $tipo_accion =='editar'){$id_form_campo = $id_campo_editar;}else {
-//$id_form_campo = mysql_insert_id($link);
-$id_form_campo = $ultimo_id;
-}
-//$respuesta->addAlert("( $campo_tipo / $id_form_campo / $ultimo_id / $form[opciones] ) $consulta");
-//$respuesta->addAssign("contenido","innerHTML","$consulta_campos_valores");
-//return $respuesta;
-if($campo_tipo == '23' ){
-$grabar_campos_valores = "(".$id_form_campo.",'".$form[opciones]."')";
-}
-/// separacion por comas
-else {
-$opciones=str_replace(', ',',',"$form[opciones]");
-$opciones = explode(",",$opciones);
-
-foreach($opciones as $c=>$v){
-
- //if($v !='') {$v = ucfirst(strtolower($v));
- if($v !='') {$v = $v;
-
-$grabar_campos_valores .= "( $id_form_campo ,'$v'),";
- }
-
- }
-$grabar_campos_valores =substr ("$grabar_campos_valores",0,-1);
-} /// fin de separacion por comas
-
-$borrar_campos_valores = "DELETE FROM `form_campos_valores` WHERE `id_form_campo` = '$id_form_campo'";
-$consulta_campos_valores = "INSERT INTO form_campos_valores (id_form_campo,campo_valor) VALUES ".$grabar_campos_valores."";
-
- $sql_borrar_campos_valores =mysqli_query($borrar_campos_valores,$link);
- $sql_campos_valores =mysqli_query($consulta_campos_valores,$link);
-
- $campos=mysqli_query("
- SELECT id_form_campo, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, orden
- FROM `consulta_campos` , `tipo_campo`
- WHERE $w_campo
-
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- LIMIT 1");
-
-
-$campos_formulario .= "
";
-while( @$row = mysqli_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "
".$row['orden']."";}
-else{
-$campos_formulario .= "
".$row['orden']." ";
- } }
-
-$respuesta->addAssign("formulario_campos_$misma_area","innerHTML",$campos_formulario);
-return $respuesta;
-}$xajax->registerFunction("formulario_campos_procesar");
-
-function formulario_opciones_select($tipo,$id_campo){
- $valores="";
- $respuesta = new xajaxResponse('utf-8');
- $div = 'opciones_select';
-if($id_campo !=''){
-$consulta= "SELECT * FROM form_campos_valores WHERE id_form_campo = '$id_campo'";
-$link = Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-while( $row = mysqli_fetch_array( $sql ) ) {
- $valores .= "$row[campo_valor],";
- }
- $valores = substr($valores,0,-1);
- }
- }
-if($tipo =='8'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='9'){
-$resultado = "
$valores ";
- }
-elseif($tipo =='16'){
- if($valores =='') {$valores = "1,10";}
-$resultado = "
$valores ";
- }
-elseif($tipo =='17'){
- $resultado ="
";
-}
-else{
-$resultado = "
$valores ";
-}
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("formulario_opciones_select");
-
-
-
-function crear_campos_formulario($form,$id_form){
- $id_form=$id_form;
- $area="";
- $Campo_tipo_definido="";
- $Tipo_campo="";
- $campo_nombre ="";
- $campo_descripcion ="";
- $editar ="";
-
-$form = mysql_seguridad($form);
-$respuesta = new xajaxResponse('utf-8');
-if($form['div'] !="") { $div = $form['div'];}else{$div="div_campos";}
-
-@$especialista = $form["id_especialista"];
-@$id_campo_editar = $form["id_campo_editar"];
-$resultado = "
-
-$id_campo_editar";
-$link = Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$capa = "crear_campos_consulta_$area";
-$formulario ="manejo_campos_$area";
-
-if ($id_campo_editar > 0){
-$sql=mysqli_query("SELECT * FROM form_campos WHERE id = '$id_campo_editar' AND activo ='1'");
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .="";
-$campo_descripcion =$row['campo_descripcion'];
-$campo_nombre =$row['campo_nombre'];
-$orden =$row['orden'];
-$especialista =$row['id_especialista'];
-
-$formulario ="manejo_campos_$id_campo_editar";
-$editar="
-
-
-
";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
- }
-
-$Tipo_campo ="
Tipo:
-
";
-$tipos=mysqli_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ");
-while( $row = mysqli_fetch_array( $tipos ) ) {
-
-if($row['id_tipo_campo'] == $Campo_tipo_definido){
-$Tipo_campo .= " > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-
-
-
- Incluir este campo en el formulario actual
-
-
- ";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-
-
";
-$resultado = "
-
-
- Crear un nuevo campo
- $resultado
-
-";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}
-$xajax->registerFunction("crear_campos_formulario");
-
-function formulario_crear_campo($area,$campo,$div){
- $campos_formulario="";
- $misma_area="";
-$respuesta = new xajaxResponse('utf-8');
- if($div==''){
- $div = "contenido";
- $cerrar = " [X] ";
-$resultado = " Campos ";
-
- return $resultado;
- }
- //$div="div_campos";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta_campos ="SELECT id, campo_nombre, campo_descripcion, tipo_campo_accion, campo_area, form_campos.activo, form_campos.campo_tipo
- FROM `form_campos` , `form_tipo_campo`
- WHERE id_empresa = '$_SESSION[id_empresa]' AND id = $campo
- AND form_campos.campo_tipo = form_tipo_campo.id_tipo_campo
- ORDER BY orden ASC";
- $campos=mysqli_query($consulta_campos,$link);
-if($campo ==''){
-
- $listado_campos = select('form_campos','id','campo_nombre',"xajax_formulario_crear_campo('',(this.value),'$div')","id_empresa = '$_SESSION[id_empresa]' AND activo = '1'",'campo_editar','');
-$areas = tabla_areas('form_areas','id','nombre,descripcion,estado,orden','',"",'Areas','');
-$tabla_campos = campos_tabla('id_especialista','');
-$campos_formulario = "
-
-
-
-
-
-
-
-
-
-
-
-
- $tabla_campos
-";
-}else{
-$campos_formulario .= "
";
-while( $row = mysqli_fetch_array( $campos ) ) {
-// if($row[campo_tipo] =='8'){
- $respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-// }
- $Tipo_campo ="Tipo:
- ";
-$tipos=mysqli_query("
- SELECT *
- FROM `form_tipo_campo`
- WHERE activo = '1'
- ");
-while( $row_tipo = mysqli_fetch_array( $tipos ) ) {
-
-if($row_tipo['id_tipo_campo'] == $row['campo_tipo'] ){
-$Tipo_campo .= " > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < ";
- }
-$Tipo_campo .= " ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." ";
-}
-$Tipo_campo .="
";
-
-if($row['activo'] =='1'){$activo = "Activo: el campo puede ser usado en formularios ";}
-else{$activo = "Inactivo: El campo NO se usará ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-
-
-
-
-
-
-";
-
- }
- }///fin de edicion
-
-
-
-$respuesta->addAssign($div,"innerHTML",$campos_formulario);
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_crear_campo");
-
-function agregar_campos($tipo,$div,$id,$formulario){
-$respuesta = new xajaxResponse('utf-8');
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-if($tipo==''){
- $div="contenido";
-$resultado = " Editar ";
-print $resultado;
-return;
- }
- if($tipo=='consultar_listado'){
- $consulta="SELECT * FROM form_id WHERE id_empresa = '$_SESSION[id_empresa]' ORDER BY nombre ASC";
- $sql =mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-$resultado .="Formulario: ";
-$resultado .= "Selecciona ";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "$row[nombre] ";
- }
-$resultado .=" $cerrar";
- }else {
-$resultado = " No hay formularios para editar
";
- }
- }
-
-if ($tipo=='consultar_campos'){
- $consulta="
- SELECT form_contenido_campos.id_campo, form_contenido_campos.id,
- campo_nombre, obligatorio,control,multiple,form_contenido_campos.orden
- FROM form_contenido_campos, form_campos
- WHERE form_campos.id_empresa = '$_SESSION[id_empresa]' AND form_contenido_campos.id_form = $id
- AND form_contenido_campos.id_campo = form_campos.id
- ORDER BY form_contenido_campos.orden";
- $sql =mysqli_query($consulta,$link);
- $consulta_nombre="SELECT * FROM form_id WHERE id ='$id'";
- $sql_nombre =mysqli_query($consulta_nombre,$link);
- $nombre =mysqli_result($sql_nombre,0,"nombre");
- //if (mysqli_num_rows($sql)!='0'){
-$resultado ="$cerrar$nombre
- ";
-$resultado .= "
-
- Campo
-
-
- Obligatorio
-
-
- Orden
-
-
- Multiple
-
-
- Borrar
-
-
-
";
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- /* $multiple = remplacetas('form_parametrizacion','campo',"$id",'descripcion'," tabla='form_id' and opcion = '$row[id]' AND descripcion REGEXP '^multiple:' ") ;
- $multiple = explode(":",$multiple[0]);
- $multiple = $multiple[1];*/
-
- //$multiple = $multiple[0];
-$resultado .= "
-
- $row[id_campo] $row[campo_nombre]
-
-
-
-
-
-
-
";
- }
-
-$consulta_campos_todos ="SELECT form_campos.id, form_campos.campo_nombre, form_campos.campo_descripcion FROM form_campos WHERE form_campos.id_empresa = '$_SESSION[id_empresa]'
- ORDER BY campo_nombre ";
-$sql_consulta_campo =mysqli_query($consulta_campos_todos,$link);
-
-$crear_nuevo ="
-
-
-
-
-
-
-";
- while( $row = mysqli_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "$row[campo_nombre] [$row[id]] ";
- }
-$resultado .="
-
-
-
-$crear_nuevo ";
-
- }/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
- if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado=" Seleccione un campo";}
-else {
-$id_form=func_get_arg(3);
-$consulta = "SELECT id_campo FROM form_contenido_campos WHERE id_empresa = '$_SESSION[id_empresa]' AND id_campo= '$id' AND id_form= $id_form";
-$sql_consulta =mysqli_query($consulta,$link);
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if(mysqli_num_rows($sql_consulta) =='0') {
-$microtime = microtime();
-$consulta_grabar=" INSERT INTO form_contenido_campos (
-`id_campo` ,
-`id_empresa` ,
-`id_form` ,
-`obligatorio`,
-`control`
-)
-VALUES (
-'$id', '$id_empresa', '$id_form', '0', md5('$microtime' + rand())
-)";
-$sql_consulta_grabar =mysqli_query($consulta_grabar,$link);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_form')");
-return $respuesta;
- }else{
-$div='atencion';$resultado=" El campo ya pertenece a esta consulta ";
- }
- }
-
- }///fin de grabar_campos
-
-if($tipo=='eliminar'){
-$confirmar=func_get_arg(3);
-
-
-if($id==''){
-$id_c=func_get_arg(4);
-$capa_original=func_get_arg(5);
-$resultado = "
- Seguro que desea eliminar el campo de esta consulta?
- [SI]
- [NO]
-
- ";}
- else{
- if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "
-
- ";
- }else{
-$consulta="DELETE FROM `form_contenido_campos` WHERE `control` = '$confirmar' LIMIT 1";
-$sql_consulta_eliminar = mysqli_query($consulta,$link);
-$div=func_get_arg(5);
-$id_consulta=func_get_arg(4);
-$respuesta->addScript("xajax_agregar_campos('consultar_campos','$div','$id_consulta')");
-
- }
- }
-
- }/// fin de eliminar
-if($tipo == 'obligatorio'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `obligatorio` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($consulta,$link);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-if($tipo == 'orden'){ /// orden
-$control = func_get_arg(3);
-$consulta= "UPDATE `form_contenido_campos` SET `orden` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($consulta,$link);
-$a =" $id
- ";
-
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de obligatorio
-
-if($tipo == 'prellenado'){
-if($id == '0'){$id='1';}else{$id='0';}
-$control = func_get_arg(3);
-$consulta= "UPDATE `consulta_tipo_campos` SET `prellenado` = '$id' WHERE `control` = '$control' LIMIT 1 ";
-$sql_consulta_grabar =mysqli_query($consulta,$link);
-$a ="$id
- ";
-$respuesta->addAssign($div,"innerHTML",$a);
-return $respuesta;
-
- }/// fin de oprellenado
-$respuesta->addAssign($div,"style.display","block");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
- }
-$xajax->registerFunction("agregar_campos");
-
-function formulario_nuevo($formulario,$div){
- $resultado ="";
- $formulario = mysql_seguridad($formulario);
- $respuesta = new xajaxResponse('utf-8');
- //$formulario=mysqli_real_escape_string($link,$formulario);
- $id_empresa= $_SESSION['id'];
- if($div==''){
- $div = "contenido";
-
-$resultado .= " Formulario ";
-
- return $resultado;
- }
-if($formulario ==''){
- $formulario_nombre = "nuevo_formulario";
- $formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-
-Crear un formulario
-
- Nombre para el formulario
-
-
-
- Descripción
-
-
-
- Formulario anidado con:
- $formulario_respuesta
-
-
- Grupo:
-
-
-
-
- Privado
-
- Público
-
-
-
-
-
- Grabar
-
-
- ";
-
- }else{
-$control = md5(rand(1,99999999).microtime());
-
-$nombre = $formulario['nombre']; // aa
-$descripcion = $formulario['descripcion']; // dxddc
-$publico = $formulario['publico']; // dxddc
-$grupo = $formulario['grupo'];
-$id_empresa = $_SESSION['id_empresa'];
-
-if($publico =='') {$publico ='0';}
-$propietario= $_SESSION['id'];
-$formulario_respuesta = $formulario['formulario_respuesta']; // dxddc
-$link=Conectarse();
-@$formulario=mysqli_real_escape_string($link,$formulario);
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-VALUES ('$nombre', '$descripcion', '1', '1', '$publico', '$propietario','$formulario_respuesta','$id_empresa');";
-$sql=mysqli_query($consulta,$link);
-$ultimo_id = mysqli_insert_id($link);
- if($grupo !="") {
- $consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo' ,id_empresa= '$id_empresa'";
- $sql_grupo=mysqli_query($consulta_grupo,$link);
- }
-
-$respuesta->addscript("xajax_formulario_listado('','contenido'); ");
-}
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_nuevo");
-
-
-function formulario_listado($filtro_grupo,$div){
- $item="";
- $grupo_formularios="";
-if ( !isset ( $_SESSION['id_empresa'] ) ) {
- $respuesta = new xajaxResponse('utf-8');
-$respuesta->addRedirect("index.php");
-return $respuesta;
-}
-
- if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];} if($div==''){
- $div = "contenido";
- if(isset($_SESSION['grupo_formularios'])) { $sesion_grupo_formularios = $_SESSION['grupo_formularios'];}else { $sesion_grupo_formularios = "";}
-$resultado = " Formularios ";
-
- return $resultado;;
- }
-$control = md5(rand(1,99999999).microtime());
-$respuesta = new xajaxResponse('utf-8');
-$_SESSION['grupo_formularios'] = $filtro_grupo;
-
-$link=Conectarse();
- $id=mysqli_real_escape_string($link,'$id');
-mysqli_query("SET NAMES 'utf8'");
-if($filtro_grupo =="") {
-$consulta = "SELECT * FROM form_id WHERE id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
- }
-else {
-$consulta = "
-SELECT * FROM form_id, form_grupo
-WHERE form_grupo.id = form_id.id
-AND form_grupo.grupo = '$filtro_grupo'
-AND form_id.id_empresa ='$_SESSION[id_empresa]' ORDER BY orden ASC";
-}
-$sql=mysqli_query($consulta,$link);
-if($filtro_grupo !="") {
- $leyenda_filtro_grupo ="Grupo $filtro_grupo ";
-
- }else{ $leyenda_filtro_grupo ="Formularios "; unset($_SESSION['grupo_formularios']);}
-$resultado_link = " Formularios ";
-$respuesta->addAssign("link_formulario","innerHTML",$resultado_link);
-
-
-$divider = 1;
-$columnas = intval(12/$divider);
- $listado_grupos = select_empresa('form_grupo','grupo','grupo',"xajax_formulario_listado((this.value),'contenido')","AGRUPADO",'','',"$id_empresa");
- $listado_grupos ="
-
- Seleccione un grupo de formularios
- $listado_grupos
-
-
- ";
-
- $nuevo_formulario = "
- ";
- $resultado = "
-
- $nuevo_formulario
-
-
- $listado_grupos
-
- $leyenda_filtro_grupo
-
- ";
-
-if (mysqli_num_rows($sql)!='0' ){
- $i =0;
-
- while( $row = mysqli_fetch_array( $sql ) ) {
- $id= $row['id'];
- $C = $id;
-
- $cantidad = formulario_contar($row['id']);
- if($cantidad >0) {$cantidad ="Llenado: $cantidad veces ";}else{$cantidad = "";}
- $propietario = remplacetas('usuarios','id',$row['propietario'],'email',"") ;
- $estado = remplacetas('form_id','id',$id,'publico',"") ;
- $nombre_formulario = remplacetas('form_id','id',$id,'nombre',"") ;
- $descripcion_formulario = remplacetas('form_id','id',$id,'descripcion',"") ;
- $estado = "
-
- Contenido privado
-
- Público
-
- ";
- $modificable = remplacetas('form_id','id',$id,'modificable',"") ;
- $modificable = "
-
- Formulario privado
-
- Público
-
- ";
-
-
- $primer = formulario_uso("$id",'','primer') ;
- if(@$primer[0] !='') {$primer = "Primer registro: ".date ( "Y-m-d h:i:s" , $primer[0])." ";}else{$primer='';}
- $ultimo = formulario_uso("$id",'','ultimo') ;
- @$ultimo_control = $ultimo[1];
- if(@$ultimo[0] !='') {$ultimo = "Último registro: ".date ( "Y-m-d h:i:s" , $ultimo[0])." ";}else{$ultimo='';}
-
- $nombre = editar_campo("form_id",$row['id'],"nombre","","","","");
- $orden = editar_campo("form_id",$row['id'],"orden","","","","");
- $descripcion = editar_campo("form_id",$row['id'],"descripcion","","","","");
- $geo = buscar_campo_tipo($id,"14");
- $email_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- $mensaje_envio = remplacetas('form_parametrizacion','campo',"$row[id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
- if($geo[0] !='') { $mapa= " Mapa ";}else {$mapa='';}
-
- if($i % $divider==0) {
-
-//$item .= "";
- }
- $i++;
- $grupo_actual = remplacetas('form_grupo','id',$row['id'],'grupo',"") ;
- if(is_null($grupo_actual[3])) {
- $valores_grupo['id']=$row['id'];
- $valores_grupo['grupo']="";
- $grupo = "
-
- ";
- // $grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
- }else
- {
- $grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
- }
-
-$item .= "
-
-
-
-
-
-
-
- Creación: $row[creacion] / $propietario[0]
- $cantidad
- $ultimo
- $primer
- $mapa
-
-
-
-
-
$row[id]
-
-
-
-
-
-
-
-
-
-
-
-
Agregar o quitar campos
-
-
-
-
-
-
-
- Nombre: $nombre
- Descripción: $descripcion
- Orden: $orden Grupo: $grupo
-
-
-
Mensaje de respuesta
-
-
$mensaje_envio[0]
-
Soporta CSS3, HTML5 y Bootstrap
-
Grabar y previsualizar
-
-
-
-
-
Previsualización
-
- $mensaje_envio[0]
-
-
-
-
-
-
-
-
-
-
- $estado
-
-
- $modificable
-
-
-
-
-
- ";
-
-
- if($i%$divider==0) {
- $item .= "
";
- }
-
- }
-
-
- //$resultado .="";
- }
-
-
-else{ $resultado .= "
Aún no se han diseñado formularios ";}
-
- $resultado_formulario ="
-
- $item
-
";
- $resultado = "$resultado $resultado_formulario ";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_listado");
-
-function formulario_eliminar($id,$tipo) {
- $respuesta = new xajaxResponse('utf-8');
- $nombre = remplacetas('form_id','id',$id,'nombre',"") ;
- $nombre_form = $nombre[0];
- if($tipo =='') {
-$resultado =" ";
-}elseif($tipo=='cancelar') {
- $resultado =" Eliminar ";
-}elseif($tipo =='eliminar'){
-$consulta = "DELETE FROM form_id WHERE form_id.id = '$id' ";
-$link=Conectarse();
- $sql=mysqli_query($consulta,$link);
- if($sql) {
- $respuesta->addAlert("Se eliminó el formulario \" $nombre_form \" ");
- $respuesta->addAssign("panel_$id","innerHTML","");
- return $respuesta;
-
- }
-}
-else {}
-$respuesta->addAssign("eliminar_$id","innerHTML",$resultado);
-
-return $respuesta;
-}$xajax->registerFunction("formulario_eliminar");
-
-
-function campo_multiple($id_campo,$id_form,$control,$item){
-//if ( !isset ( $_SESSION['id'] ) ) { return;}
-
- if($item==''){$item=1;}
- $id= $item;
-$render = formulario_campos_render($id_campo,$id_form,$control,$item+1);
- $ingredientes = "
-
- $render
-
-
-
-
- ";
- $boton= "
- Agregar campo
-
";
-$div = "id_campo_$id_campo"."_".$id;
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($div,"innerHTML",$ingredientes);
-$respuesta->addAssign("boton_".$id_campo."","innerHTML","$boton ");
-return $respuesta;
-
-}
-$xajax->registerFunction("campo_multiple");
-
-
-function formulario_campos_render($id_campo,$id_form,$control,$item,$id_dato){
-$cols ="";
-$style="";
-$campo_multiple="";
-$render="";
-
-$consulta ="
- SELECT *
- FROM form_contenido_campos,form_campos, form_tipo_campo
- WHERE form_contenido_campos.id_form = '$id_form'
- AND form_contenido_campos.id_campo = '$id_campo'
- AND form_contenido_campos.id_campo = form_campos.id
- AND form_tipo_campo.id_tipo_campo = form_campos.campo_tipo ";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
- $sql=mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0'){
- if($id_dato !='') {
- $value = remplacetas('form_datos','id',$id_dato,'contenido'," control = '$control'") ;
- $multiple='0';
- $esta_editando =1;
- }
- else {
- $value = remplacetas('form_datos','id_campo',$id_campo,'contenido'," control = '$control'") ;
- $multiple=mysqli_result($sql,0,"multiple");
- }
- if($item=='') {$item ="0";}else {$item=$item;}
-
- if($value[0] !='') {$value= "$value[0]";}ELSE{$value='';}
- $campo_nombre=mysqli_result($sql,0,"campo_nombre");
- $campo_descripcion=mysqli_result($sql,0,"campo_descripcion");
- $campo_tipo_accion=mysqli_result($sql,0,"tipo_campo_accion");
- $campo_obligatorio=mysqli_result($sql,0,"obligatorio");
- if($campo_obligatorio =='1') {$obligatorio ="danger";}else{$obligatorio ="default";}
-
- if($campo_tipo_accion == 'text'){$render = " ";}
- elseif($campo_tipo_accion == 'date'){$render = " ";}
- elseif($campo_tipo_accion == 'rango'){
- $rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = $rango;}
- elseif($campo_tipo_accion == 'mapa'){
- $lat="";
- $lon="";
- $zoom="";
- if($value !=""){
-
- $campos = explode(" ",$value);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
- if($lat =="") {
- $localizacion = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- //$render= $localizacion[0];
- $campos = explode(" ",$localizacion[0]);
- $lat = $campos[0];
- $lon = $campos[1];
- $zoom = $campos[2];
-
- }
- }
- $render .= "
-
-
-
-
-
- ";
- $cols='12';
- }
-elseif($campo_tipo_accion == 'email'){$render = "
-
- Escriba un email válido
";}
- elseif($campo_tipo_accion == 'envio'){$render = "
-
- Se enviará un email
";}
- elseif($campo_tipo_accion == 'textarea'){
- $render = " $value ";
- $cols='12';
- }
- //$subir_imagen = subir_imagen('');
- elseif($campo_tipo_accion == 'imagen'){
- $style ="display:hidden";
- // $gps = leer_exif($file);
- $render= " "; //subir_imagen('',$id_campo[$item]);
- $cols='12'; }
-
- elseif($campo_tipo_accion == 'html'){
- $render = "
-
- $value ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'limit'){
- $limite = limite("".$id_campo."[".$item."]",'','limite');
- $rows = ceil($limite / 50 )+1;
- $render = "$limite /
-
-
- $value
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'select'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = select_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select "; $cols='12'; }
- elseif($campo_tipo_accion == 'radio'){
- $select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_campos'){
- //radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control)
- $campos_valores = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $mensaje = remplacetas('form_campos','id',$id_campo,'campo_descripcion',"") ;
- $campos = explode(":",$campos_valores[0]);
- $titulos = explode(";",$campos[0]);
- $campos_incluidos = explode(";",$campos[1]);
- for($i=0;$i$campos_incluidos[$i] ";
- //$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "
-
-
-
- $mensaje[0]
- $listado_titulos
- $listado_campos
-
-
-
";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'radio_agrupado_linea'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = " ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'checkbox'){
-
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = checkbox_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
- $render = "$select ";}
- elseif($campo_tipo_accion == 'combo'){
- //$select = select('form_campos_valores','campo_valor','campo_valor','',"id_form_campo = $id_campo",$id_campo."[".$item."]");
- $select = combo_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'relacion'){
- $select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'buscador'){
- $select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";
- $cols='12'; }
- elseif($campo_tipo_accion == 'base'){
- $select = buscador_base($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
- $render = "$select ";}
- elseif($campo_tipo_accion == 'vinculado'){
- $vinculado = remplacetas('form_campos_valores','id_form_campo',$id_campo,'campo_valor',"") ;
- $select = formulario_areas($vinculado[0],'campos');
- $render = "
- $select
- ";
- $cols='12';
- }
- elseif($campo_tipo_accion == 'number'){
- $render = "
-
- (solo números)
";}
-
- elseif($campo_tipo_accion == 'password'){
- if( $control != "") {
- $render="";$label=""; $campo_tipo_accion="oculto";
- }else {
- $render = "
-
- ";
- }
- //else {}
- $cols='12'; }
- elseif($campo_tipo_accion == 'unico'){
- $render ="
-
";
- }
- else{$render = " ";}
- if($multiple =='1'){
-
-
- $campo_multiple = "
-
- ";
-}
- if($item == 0) { $label = " $campo_nombre ";}
- else {$label = "$campo_nombre $campo_obligatorio ";}
- ///// CAMPOS QUE NO SE MOSTRARAN
- if($campo_tipo_accion == 'imagen'){
- $label="";
- $campo_descripcion="";
- }
- if($cols =="") {$cols = "6";}
- $input = "
-
-$campo_multiple
- ";
-
-
-if($campo_tipo_accion != "oculto") {
- $input= $input;
- }else { $input ="";}
-
- }
- return $input;
-}
-
-
-function validar_email($email) {
-
-if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
- return 1;
-}else{
- return 0;
-}
-}
-
-function formulario_valor_campo_ORIGINAL($perfil,$id_campo,$valor,$id_control){
-
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$valor=mysqli_real_escape_string($link,$valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-$consulta = "SELECT * FROM `form_datos` WHERE `form_id` = '$perfil' AND id_campo='$id_campo' $valor AND `control` = '$id_control' ORDER BY timestamp DESC limit 1";
-$sql =mysqli_query($consulta,$link);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$timestamp=mysqli_result($sql,0,"timestamp");
-mysqli_data_seek($sql, 0);
-if($cant === 1) {
- $contenido=mysqli_result($sql,0,"contenido");
- }else {
-while( $row = mysqli_fetch_array( $sql ) ) {
- $contenido .= "$row[contenido] ";
- }
- }
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = $contenido;
-}
-return $existe;
- }
-
-
-
-function formulario_valor_campo($perfil,$id_campo,$valor,$id_control,$orden){
-$contenido="";
-
-//if($id_control !=""){ $control ="AND `control` = '$id_control'";}else {$control ="";}
-$campo_multiple = remplacetas("form_contenido_campos","id_campo",$id_campo,"multiple"," id_form ='$perfil'");
-$tipo_campo = remplacetas("form_campos","id","$id_campo","campo_tipo","");
-$campo_multiple = $campo_multiple[0];
-if($tipo_campo[0] =="24") {$campo_multiple = "1";}
-/// SI EL CAMPO ES MULTIPLE O CHECK BOX MUESTRA LAS MULTIPLES ENTRADAS
-if($campo_multiple !="1" ){ $limite =" asc limit 1 ";}else {$limite =" asc ";}
-if(@$orden !=""){ $campo_orden =" AND orden ='$orden' ";}else {$campo_orden ="";}
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$valor=mysqli_real_escape_string($link,$valor);
-if($valor !=""){ $valor ="AND md5(contenido) LIKE '$valor'";}else {$valor ="";}
-/*
-$consulta = "SELECT * FROM `form_datos`
-WHERE `form_id` = '$perfil'
-AND id_campo='$id_campo' $valor
-AND `control` = '$id_control' $campo_orden
-GROUP BY orden
-ORDER BY timestamp $limite ";
-*/
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$perfil'
- AND id_campo ='$id_campo' $valor
- AND control ='$id_control' $campo_orden
- group by orden
- ORDER BY orden $limite";
-
-$sql =mysqli_query($consulta,$link);
-$cant =mysqli_num_rows($sql);
-
-if (mysqli_num_rows($sql) == '0'){
- $existe = NULL;
- }else {
-
-$control=mysqli_result($sql,0,"control");
-$timestamp=mysqli_result($sql,0,"timestamp");
-$orden=mysqli_result($sql,0,"orden");
-$id_usuario=mysqli_result($sql,0,"id_usuario");
-$ip=mysqli_result($sql,0,"ip");
-mysqli_data_seek($sql, 0);
-$md5_contenido = "";
-if($cant === 1) {
- //$contenido=mysqli_result($sql,0,"contenido");
- $identificador=mysqli_result($sql,0,"identificador");
- $identificador = explode(',',$identificador);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $md5_contenido = $contenido_campo[3];
- //$md5_contenido = remplacetas('form_datos','id',$identificador,' md5(binary contenido) as md5_contenido ',"") ; //md5(binary contenido) as md5_contenido,
- //$md5_contenido = $md5_contenido[0];
- $contenido = "$contenido_campo[0] ";
- }else {
-while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row['identificador']);
- $identificador = $identificador[0];
- $contenido_campo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
- $contenido .= "$contenido_campo[0] ";
- }
- }
-// $contenido .="$consulta";
-$existe[]= $control;
-$existe[] = $timestamp;
-$existe[] = $consulta;
-$existe[] = "$contenido";
-$existe[] = $md5_contenido;
-$existe[] = $orden;
-$existe[] = $id_usuario;
-$existe[] = $ip;
-}
-return $existe;
- }
-
-function formulario_grabar($formulario) {
- $debug="";
- $respuesta = new xajaxResponse('utf-8');
- $datos="";
- $envio="";
- //$formulario = mysql_seguridad($formulario);
- $ip = obtener_ip();
- $graba_ip = "INET_ATON('".$ip."') ";
- $consulta_grabada ='0';
- $control = $formulario['control']; //
- $form_id = $formulario['form_id']; //
- $tipo = $formulario['tipo']; //
- if(@$formulario['imagen'] !=''){$formulario[0][0] = $formulario['imagen'];}
-
- $consulta_form = "SELECT * FROM form_contenido_campos,form_campos
- WHERE form_contenido_campos.id_campo = form_campos.id
- AND id_form = '$form_id' ";
- $link=Conectarse();
- mysqli_query("SET NAMES 'utf8'");
-// $sql=mysqli_query($consulta_form,$link);
-
-// if (mysqli_num_rows($sql)!='0'){
-// mysqli_data_seek($sql, 0);
-// while( $row = mysqli_fetch_array( $sql ) ) {
-
-
-//////
- if(isset ( $_SESSION['id_empresa'])){$id_empresa = $_SESSION['id_empresa']; }else{
- $id_empresa = remplacetas('form_id','id',$formulario['form_id'],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
- }
-foreach($formulario as $c=>$v){
-
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
- foreach($v as $C=>$V){
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
- $campo_nombre = remplacetas("form_campos","id",$c,"campo_nombre","");
- if($V != '') {
-
-
-
-$datos .= "$$c = \$formulario['$c'][$C]; // $V /$campo_tipo[0]
";
- if($campo_tipo[0] =='12' OR $campo_tipo[0] =='13') {
- $validar = validar_email($V);
- if($validar == '0') {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("Se necesita un email válido");
- return $respuesta;
- }else {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- }
- }
- if($campo_tipo[0] =='3' ) {
- $validar = is_numeric($V);
- if(is_numeric($V) ) {
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-success ");
- //return $respuesta;
- }else{
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- $respuesta->addAlert("El campo $campo_nombre[0] solo acepta valores numéricos");
- return $respuesta;
- }
- }
-
- if($campo_tipo[0]=='17') {
- $limite = limite("$c",'','limite');
- $size= strlen($V);
- $restante = ($limite - $size);
- if( $restante < 0) {
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] no debe tener mas de $limite caractéres, sobran $restante");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
- }
-
-
-
- }
-else{ //busca campos vacios
-
-$campo_obligatorio = remplacetas("form_contenido_campos","id_campo",$c,"obligatorio","id_form = '$formulario[form_id]'");
-if($campo_obligatorio[0] =='1'){
-
- $respuesta->addAssign("input_".$c."[".$C."]","className"," form-group has-error ");
- $respuesta->addAlert("ATENCION: El campo $campo_nombre[0] es obligatorio");
- $respuesta->addScript("document.getElementById('".$c."[".$C."]').focus(); ");
- return $respuesta;
- }
-
-}
-
-$md5 = md5($V);
-$igual = formulario_valor_campo("$form_id","$c","$md5","$formulario[control]","$C");
-$existe = formulario_valor_campo("$form_id","$c","","$formulario[control]","$C");
-//$valor_anterior .= $existe[3]."| ";
-$debug .= "$existe";
-if(!is_null($existe) AND $tipo =='edit' AND $V =='') {
- $consulta_vacio ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '$_SESSION[id]', '', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysqli_query($consulta_vacio,$link);
- if($sql) {
- $consulta_grabada ='1';
- }
-}
-if(is_null($igual) ){$repetido = 0;}else{
-$repetido = 1;
-}
-
-
-//return $respuesta;
-//$respuesta->addAlert("$debug");
-//return $respuesta;
-$debug .= "V = $V /$c /$repetido / $igual ";
-if(($V !='' ) && (is_numeric($c)) AND $repetido !=1 ) {
-//$debug = "Hola mundo";
- $V = mysqli_real_escape_string($link,$V);
- $campo_tipo = remplacetas("form_campos","id",$c,"campo_tipo","");
-
-if(@$campo_tipo[0] =="18") {
- $V = md5("$V");
-}else{$V=$V;}
-
-
- $consulta ="
- INSERT INTO `form_datos` (`id`, `id_campo`,`orden`,`form_id`, `id_usuario`, `contenido`, `timestamp`, `control`, ip , id_empresa)
- VALUES (NULL, '$c','$C', '$formulario[form_id]', '".@$_SESSION[id]."', '$V', UNIX_TIMESTAMP(), '$formulario[control]',$graba_ip,'$id_empresa');";
-
- $sql=mysqli_query($consulta,$link);
- $debug .= "$consulta = $sql ,";
- if($sql) {
- $consulta_grabada ='1';
- }
- }
-
- } ///fin del array
-
- }///fin del array primario
- else {
- if($v !='') { //$datos .= "$$c = \$formulario['$c']; // $v
";
- }
- }
- }
-
-
-
-
-// }
-// }
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX" )
-{
- $exito ="
-
- $formulario[mensaje]
-
- ";
- $mail = '1';
- }
- elseif($tipo == "solocampos" ){
-
-
- $exito ="
-
- $formulario[mensaje]
-
- ";
-
- $mail='0';
- }
- else{
- $campo_envio = buscar_campo_tipo($formulario['form_id'],"13");
- if($campo_envio[0] != "") {
-$envio = email_contenido("$formulario[form_id]","$formulario[control]","$campo_envio[0]",'');
- }
-
-if($tipo = "embebido") {
-$otro_formulario ="
-
- Llenar otro formulario
-
-";
-}else {
- $otro_formulario = "
-
- Llenar otro formulario
-
-
- ";
-}
-$impresion = formulario_imprimir("","$formulario[control]","preview");
-$mensaje_agradecimiento = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'mensaje_envio'") ;
-//$impresion = mostrar_identificador($formulario['control']);
- $exito ="
-
- $mensaje_agradecimiento[0]
-
-
- $impresion
-
-
- Gracias por llenar el formulario $formulario[form_nombre]
-
-
- $otro_formulario
-
-
- $envio
-
-
-
";
-
-// $mail ='1';
- }
-
-//if($mail =='1') {
-
- //$propietario = remplacetas('form_id','id',$formulario[form_id],'propietario',"") ;
- //$propietario = remplacetas('usuarios','id',$propietario[0],'email',"") ;
- $email_envio = remplacetas('form_parametrizacion','campo',"$formulario[form_id]",'descripcion'," tabla='form_id' and opcion = 'email'") ;
- if($email_envio[0] !="") {
- $impresion = formulario_imprimir("","$formulario[control]","preview");
- $id_empresa = remplacetas('form_id','id',$formulario[form_id],'id_empresa',"") ;
- $id_empresa = $id_empresa[0];
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
- $nombre_formulario = remplacetas("form_id","id",$formulario[form_id],"nombre","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-$headers .= "Cc: $email_envio[0]" . "\r\n";
-
-$asunto= "$nombre_formulario[0]";
-$cuerpo ="
-$mensaje_agradecimiento[0]
-$impresion
-Se ha completado el formulario $nombre_formulario[0]
-Puede revisar los datos en $_SESSION[site]i$formulario[control]
-Saludos de MILFS
-";
- if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $exito .=""; }else {$exito .="error enviando correo";}
- //$exito .= "$email[0] $headers ";
- }
- /// }
- $respuesta->addAssign("div_$control","innerHTML","$exito ");
- return $respuesta;
- }else{
- $mensaje ="
-
-
Todo bien pero al parecer no se moficaron registros ";
- $respuesta->addAssign("div_$control","innerHTML","$mensaje");
- }
-//$respuesta->addAssign("respuesta_$control","innerHTML","$resultado");
-return $respuesta;
-}
-$xajax->registerFunction("formulario_grabar");
-
-function mysql_seguridad($inp) {
- if(is_array($inp))
- return array_map(__METHOD__, $inp);
-
- if(!empty($inp) && is_string($inp)) {
- return str_replace(array('\\', "\0", "'", '"', "\x1a"), array('\\\\', '\\0', "\\*", "\\*", '\\Z'), $inp);
- }
-
- return $inp;
-}
-
-function formulario_campos_render_multiple($id_campo,$id_form,$control,$item) {
-
- $consulta = "SELECT *,GROUP_CONCAT(id ORDER by timestamp desc ) as identificador
- FROM `form_datos`
- WHERE form_id = '$id_form'
- AND id_campo ='$id_campo'
- AND control ='$control'
- group by orden ORDER BY orden asc";
- $link=Conectarse();
- //$resultado .= "$consulta";
- mysqli_query("SET NAMES 'utf8'");
- $sql =mysqli_query($consulta,$link);
- if (mysqli_num_rows($sql)!='0' ){
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $identificador = explode(',',$row[identificador]);
- $identificador = $identificador[0];
- //$identificador = $row[identificador];
- $resultado .= $identificador;
- $resultado .= formulario_campos_render($row[id_campo],$id_form,$control,$row[orden],$identificador);
- $item = $item + 1;
- }
- }
- $resultado .= formulario_campos_render($id_campo,$id_form,'',$item,'');
-
- return $resultado;
-}
-
-
-
-function formulario_modal($id,$form_respuesta,$control,$tipo) {
-
- $respuesta = new xajaxResponse('utf-8');
- $solo_campos ="";
- $subir_imagen ="";
-
- if(isset($_SESSION['permiso_identificador'])) {
- $permiso_identificador = $_SESSION['permiso_identificador'] ;
- $salir= "Salir
";
- }
- else{ $permiso_identificador = ""; $salir="";}
- $formulario_respuesta = formulario_respuesta("$id","$control");
- $id_empresa = remplacetas('form_id','id',$id,'id_empresa',"",'') ;
- $id_empresa = $id_empresa[0];
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = "$formulario_respuesta";
- $pie .= empresa_datos("$id_empresa",'pie');
- $formulario_descripcion = remplacetas('form_id','id',$id,'descripcion','') ;
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $cabecera ="".$formulario_nombre['0']." ".$formulario_descripcion['0']."
";
-
- $nuevo_formulario = "Llenar otro formulario ";
-if($control !='' AND $tipo =='' ) {
- $impresion = formulario_imprimir("$id","$control","");
- $formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
- $muestra_form = "$impresion
";
- $respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
- $modificable = remplacetas('form_id','id',$id,'modificable','') ;
- if($modificable[0] != "1" and (!isset ( $_SESSION[id]) )) {
- $resultado ="
Acceso restringido No se puede consultar los datos.";
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("pie_modal","innerHTML","$pie");
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
-
-
-$consulta = "
- SELECT * FROM form_id, form_contenido_campos
- WHERE form_id.id = form_contenido_campos.id_form
- AND form_id.id = '$id' ORDER BY form_contenido_campos.orden ASC
- ";
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
- if($respuesta !='' AND $control !=''){$control =$control;}
- else{$control = md5(rand(1,99999999).microtime());}
- $descripcion=mysqli_result($sql,0,"descripcion");
- $nombre=mysqli_result($sql,0,"nombre");
- $id_empresa=mysqli_result($sql,0,"id_empresa");
- $encabezado = empresa_datos("$id_empresa",'encabezado');
- $pie = empresa_datos("$id_empresa",'pie');
-
- $cabecera = "
- $salir
-
-
-
-
-
-
-
-
-
$nombre $descripcion
-
-
-
-
-
";
-
-$campo_imagen = buscar_campo_tipo($id,"15");
-@$campo_imagen_nombre = $campo_imagen[1];
-@$campo_imagen = $campo_imagen[0];
-
-
-if (@$campo_imagen[0] != "") {
-$subir_imagen = subir_imagen("$id","$campo_imagen"."[0]");
- }
- $muestra_form = "
-
-
-
-
-
-
-
-
-
-
- ";
- if($tipo=="edit") {
-
- //if(null === @$_SESSION['id'] AND $permiso_identificador != $control) {
- if($_SESSION['id_empresa'] !== $id_empresa AND $permiso_identificador != $control) {
- $password = buscar_campo_tipo($id,"18");
-
- $aviso = "
ATENCIÓNNo está autorizado ";
- $seguridad ="
-
-
- ";
- $resultado ="
-
-
- $aviso
- $seguridad
-
- ";
- $respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
- $respuesta->addAssign("muestra_form","innerHTML","$resultado");
- $pie = empresa_datos("$id_empresa",'pie');
- $respuesta->addscript("$('#muestraInfo').modal('toggle')");
- return $respuesta;
- }
- //// si no esta logueado nose puede editar ////
- $control_edit = "$control";
-
- }else {$control_edit = "";}
-
- mysqli_data_seek($sql, 0);
- while( $row = mysqli_fetch_array( $sql ) ) {
- $tipo_campo = remplacetas("form_campos","id","$row[id_campo]","campo_tipo","");
- //if($tipo_campo[0] =="24") { $row[multiple] = "1";}
- if($row['multiple'] ==='1' AND $tipo =='edit'){
- $campos = formulario_campos_render_multiple($row['id_campo'],$id,$control_edit);
- }else{
- $campos = formulario_campos_render($row['id_campo'],$id,$control_edit,'','');
- }
- $muestra_form .= "$campos ";
- $solo_campos .= "$campos ";
- }
- $muestra_form .="
-
- ";
- }
-
-$muestra_form .="
-
-
-
";
- $muestra_form = "$muestra_form
";
-if($tipo=='campos') {
- return $solo_campos;
-}
-if($tipo=='embebido') {
- return $muestra_form;
-}
-
-$respuesta->addAssign("muestra_form","innerHTML","$muestra_form");
-$respuesta->addAssign("titulo_modal","innerHTML","$cabecera");
-$respuesta->addAssign("pie_modal","innerHTML","$pie");
-$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-//$respuesta->addscript("$('textarea').markdown({autofocus:false,savable:false})");
-//$respuesta->addscript("$(document).ready(function () { $(\"#24[0]\").cleditor(); })");
-//$(document).ready(function () { $("#input").cleditor(); });
-
-
-
-return $respuesta;
-}
-$xajax->registerFunction("formulario_modal");
-
-
-
-function limpia_div($capa){
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign($capa,"style.padding","0px");
-$respuesta->addClear($capa,"innerHTML");
-
-return $respuesta;
-}$xajax->registerFunction("limpia_div");
-
-
-function select_key($tabla,$key,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$key;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="";}else{$vacio =" >> Nuevo $descripcion << ";}
-$resultado="
-Seleccione
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= " ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor){
-$group ="";
-@$valor=$valor;
-@$value =$value;
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-@$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE 1 $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_empresa($tabla,$value,$descripcion,$onchange,$where,$nombre,$valor,$id_empresa){
- $w ="";
-$link=Conectarse();
-$campos = explode(",",$descripcion);
-$campo1 = $campos[0];
-@$campo2 = $campos[1];
-$debug = "($tabla,$value,$descripcion,$onchange,$where)";
-mysqli_query("SET NAMES 'utf8'");
-if(isset($_SESSION['id_empresa'])) {$id_empresa= $_SESSION['id_empresa'];}if($where =='AGRUPADO'){$group="GROUP BY $value ";}
-elseif($where != ''){$w = "AND ".$where;}else{ $w="";}
-$busca = array("[","]");
-if( strpos( $onchange,'[') !== false ){$fila=str_replace($busca,'',$onchange);$onchange='';};
-$consulta = "SELECT $value, $descripcion FROM $tabla WHERE id_empresa = '$id_empresa' $w $group ORDER BY $campo1 ";
-$sql=mysqli_query($consulta,$link);
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-if (mysqli_num_rows($sql)!='0'){
- if($onchange !=''){$vacio ="Todos los valores ";}else{$vacio =" ";}
-$resultado="
-$nombre $vacio
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$value]=="") {$resultado.="";}else{
-if($row[$value] ==="$valor"){$selected="selected";}else{$selected ="";}
-$mostrar_id = "[$row[$value]]";
-$resultado .= " ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id ";
- }
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function select_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado="
-Seleccione
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row['campo_valor'] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= " $row[campo_valor] ";
- }
-$resultado .= " ";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-
-
-function radio_agrupado_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-$valor = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-$nombre_linea = mysqli_result($sql,0,"campo_nombre");
-$descripcion_linea = mysqli_result($sql,0,"campo_descripcion");
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor[0]"){$selected="checked";}else{$selected ="";}
-$lineas .= " $row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-
-function radio_linea($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores , form_campos WHERE form_campos_valores.id_form_campo = form_campos.id AND id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-$nombre_linea = mysqli_result($sql,0,"campo_nombre");
-$descripcion_linea = mysqli_result($sql,0,"campo_descripcion");
- mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$lineas .= "$row[campo_valor] ";
- }
-$resultado .= "$nombre_linea
$lineas ";
- }else{$resultado = " No hay resultados $consulta
";}
-
-return $resultado;
-}
-function radio_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
-
-$resultado="
-
- " ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-$resultado .= " $row[campo_valor]
";
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function checkbox_edit($id_campo,$form_id,$valor,$name,$control){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT * FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-// $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' ");
-if (mysqli_num_rows($sql)!='0'){
- $name = explode("[",$name);
- $name = $name[0];
- $fila="0";
-
-while( $row = mysqli_fetch_array( $sql ) ) {
- $value = remplacetas("form_datos","control","$control","contenido","id_campo ='$id_campo' and contenido ='$row[campo_valor]' ");
-
- $nombre= "$name"."[".$fila."]";
-//if($row[campo_valor] ==="$valor"){$selected="checked";}else{$selected ="";}
-if($value[0] ==="$row[campo_valor]"){$selected="checked";}else{$selected ="";}
-$resultado .= "
-
-
- $row[campo_valor] $selected
-
-
";
- $fila++;
- }
-$resultado .= "";
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-
-function rango($tabla,$campo,$key,$valor,$selected,$nombre,$onchange){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT min($campo) as min , max($campo) as max FROM $tabla WHERE $key ='$valor' ";
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
- $min=mysqli_result($sql,0,"min");
- $max=mysqli_result($sql,0,"max");
-if($nombre==''){$name=$tabla."_".$value;}else{$name = "$nombre";}
-$resultado="
- $min
-
- $max $selected
-
" ;
-
-
- }else{$resultado = " No hay resultados
";}
-
-return $resultado;
-}
-
-function limite($id_campo,$contenido,$tipo){
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-
-$consulta = "SELECT campo_valor FROM form_campos_valores WHERE id_form_campo ='$id_campo' ";
-$sql=mysqli_query($consulta,$link);
-
-if (mysqli_num_rows($sql)!='0'){
- $limite=mysqli_result($sql,0,"campo_valor");
-
- }else{}
- if($tipo =='limite') { return $limite;}
-$respuesta = new xajaxResponse('utf-8');
-if($contenido !='') {
-
- $size= strlen($contenido);
- $restante = ($limite - $size);
- $div_input = "input_$id_campo";
- if( $restante<=1) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-danger ");
-$respuesta->addAssign("$div_input","className","has-error ");
- }
- elseif( $restante<=10) {
-$respuesta->addAssign("aviso_$id_campo","className","alert-warning ");
-$respuesta->addAssign("$div_input","className","has-warning ");
- }else{
-$respuesta->addAssign("aviso_$id_campo","className","alert-succes ");
-$respuesta->addAssign("$div_input","className","has-success ");
-}
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$restante");
-
- return $respuesta;
- }
- $respuesta->addAssign("aviso_$id_campo","innerHTML","$limite");
- return $respuesta;
- //return $limite;
-}
-$xajax->registerFunction("limite");
-
-function confirma_campo($valor_1,$valor_2,$campo,$campo_confirmacion){
- $respuesta = new xajaxResponse('utf-8');
- $pos = strpos($campo,"email");
-
-if($pos == "") { //// si no es un email
- }
- else {//// si es un email se revisa
- $email = validar_email("$valor_1");
- if($email === 0 ) {
- $respuesta->addAssign("$campo","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addAlert("El email no es valido ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- return $respuesta;
- }
- else{
- }
- }
-
-
-
- if($valor_1 != $valor_2){$resultado = "Los valores NO son iguales";
- $respuesta->addAlert("$resultado");
- /// $respuesta->addAssign("$campo","style.color","red");
-
-
- $respuesta->addAssign("$campo","value","$pos");
- $respuesta->addAssign("$campo_confirmacion","value","");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-error ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-error ");
- $respuesta->addScript("document.getElementById('$campo').focus(); ");
- // document.getElementById('mobileno').focus();
-
-
- }else{
- //$respuesta->addAssign("$campo_confirmacion","style.color","green");
-
- $respuesta->addAssign("$campo","className"," form-control ");
- $respuesta->addAssign("$campo_confirmacion","className"," form-control ");
- $respuesta->addAssign("$campo"."_grupo","className"," input-group has-success ");
- $respuesta->addAssign("$campo_confirmacion"."_grupo","className"," input-group has-success ");
- }
- return $respuesta;
-}
-$xajax->registerFunction("confirma_campo");
-
-
-function validar_campo($valor,$campo,$tabla,$div,$id){
-$valor = mysql_seguridad($valor);
-$respuesta = new xajaxResponse('utf-8');
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta="SELECT $campo FROM $tabla WHERE $campo = '$valor' LIMIT 1";
-$sql =mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0' ){
-$verificacion = "atencion"; $existe='';
-
-$respuesta->addAssign($campo,"value","");
-///$respuesta->addAlert("El valor $valor $existe existe");
-$resultado = "Grrr $valor $existe existe ";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
- }else {$verificacion ="check"; $existe='NO';}
-$resultado = "Ok, buen $campo ! ";
-$respuesta->addAssign("$id","style.backgroundColor","#CBE7CB");
-//$resultado .= "$valor,$campo,$tabla,$div";
-$respuesta->addAssign($div,"innerHTML",$resultado);
-
-
-return $respuesta;
-}
-$xajax->registerFunction("validar_campo");
-
-
-function comprobar_email($email,$tipo,$campo){
-$email = mysql_seguridad($email);
-$respuesta = new xajaxResponse('utf-8');
-if($tipo =='tercero') {$id_campo='tercero_email';}
-
-
-else{$id_campo = 'email';}
-
-if($campo !=''){
-$id_campo="$campo";
-}
-
-
-if ($email == "" AND $tipo==''){
- $respuesta->addAlert("El campo email es obligatorio ");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- return $respuesta;
- }
-
- $mail_correcto = 0;
- //compruebo unas cosas primeras
- if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
- if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
- //miro si tiene caracter .
- if (substr_count($email,".")>= 1){
- //obtengo la terminacion del dominio
- $term_dom = substr(strrchr ($email, '.'),1);
- //compruebo que la terminación del dominio sea correcta
- if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
- //compruebo que lo de antes del dominio sea correcto
- $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
- $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
- if ($caracter_ult != "@" && $caracter_ult != "."){
- $mail_correcto = 1;
- }
- }
- }
- }
- }
- if ($mail_correcto AND $tipo=='' )
- {
-$consulta= "SELECT email FROM usuarios WHERE email = '$email' LIMIT 1 ";
- $link=Conectarse();
-$sql=mysqli_query($consulta,$link);
-$revisa=mysqli_result($sql,0,"email");
-if ($revisa != ''){
-
- $respuesta->addAlert("$email: ya está registrado ");
- $respuesta->addAssign("email","style.color","red");
- $respuesta->addAssign("email","value","");
- return $respuesta;
- }
- $respuesta->addAssign("email","style.color","green");}
- elseif ($mail_correcto AND $tipo==='revisar' ) {
- $revisar = remplacetas("usuarios","email",$email,"email","");
- if($revisar[0] != '') {
-
- $respuesta->addAssign("$campo","style.color","white");
- $respuesta->addAssign("$id_campo","style.backgroundColor","green");
- }else{
- $respuesta->addAlert("$email: No existe en el sistema)");
- $respuesta->addAssign("$campo","value","");
- }
- return $respuesta;
- }
-
- elseif ($mail_correcto AND $tipo==='tercero' ) {
- $documento = remplacetas("terceros","email",$email,"documento","");
- if($documento[1] =='') { /// si el tercero NO existe
-
- }else { /// si el tercero existe en el sistema
-
- $tipo_persona = remplacetas("terceros","id",$documento[1],"tipo_persona","");
-
- if($tipo_persona[0] =='1') {
- $razon_social = remplacetas("terceros","id",$documento[1],"razon_social","");
- $resultado .= " $razon_social[0]] Nit: $documento[0]";
- } else {
- $primer_nombre = remplacetas("terceros","id",$documento[1],"p_nombre","");
- $segundo_nombre = remplacetas("terceros","id",$documento[1],"s_nombre","");
- $primer_apellido = remplacetas("terceros","id",$documento[1],"p_apellido","");
- $segundo_apellido = remplacetas("terceros","id",$documento[1],"s_apellido","");
- $resultado .=" \r $primer_nombre[0] $segundo_nombre[0] $primer_apellido[0] $segundo_apellido[0] \r Documento: $documento[0]";
- }
-
- $respuesta->addAlert("$email: $resultado");
- $respuesta->addAssign("tercero_documento","value","$documento[0]");
- $respuesta->addAssign("tercero_primer_nombre","value","$primer_nombre[0]");
- $respuesta->addAssign("tercero_segundo_nombre","value","$segundo_nombre[0]");
- $respuesta->addAssign("tercero_primer_apellido","value","$primer_apellido[0]");
- $respuesta->addAssign("tercero_segundo_apellido","value","$segundo_apellido[0]");
- $respuesta->addAssign("tercero_razon_social","value","$razon_social[0]");
- $respuesta->addAssign("tercero_id","value","$documento[1]");
-
- }
-
- }
- else
- {$respuesta->addAlert("$email: no es un correo válido");
- $respuesta->addAssign("$id_campo","style.backgroundColor","pink");
- $respuesta->addAssign("$id_campo","value","");
- }
- return $respuesta;
-}
-$xajax->registerFunction("comprobar_email");
-
-function obtener_ip()
-
-{
-
- if (isset($_SERVER["HTTP_CLIENT_IP"]))
- {
- return $_SERVER["HTTP_CLIENT_IP"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_X_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_X_FORWARDED"]))
- {
- return $_SERVER["HTTP_X_FORWARDED"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED_FOR"]))
- {
- return $_SERVER["HTTP_FORWARDED_FOR"];
- }
- elseif (isset($_SERVER["HTTP_FORWARDED"]))
- {
- return $_SERVER["HTTP_FORWARDED"];
- }
- else
- {
- return $_SERVER["REMOTE_ADDR"];
- }
-
- }
-
-function milfs(){
- $crear_campos = formulario_crear_campo('','','');
- $listado = formulario_listado('','');
- //$consultas = formulario_consultar('','');
- $importador = formulario_importador('');
- $limpiar_cache = borrar_tmp('');
- $configuracion= configuracion('');
-
- $login = login_boton('');
- $menu =
-"
-
-
-
- $crear_campos
-
- $listado
-
-
- $configuracion
-
-
-
-
-
";
-
- return $menu;
-}
-function url_existe($url)
-{
- $handle = @fopen($url, "r");
- if ($handle == false)
- return NULL;
- fclose($handle);
- return $url;
-}
-function es_imagen($url)
- {
- $imageSizeArray = getimagesize($url);
- $imageTypeArray = $imageSizeArray[2];
- return (bool)(in_array($imageTypeArray , array(IMAGETYPE_GIF , IMAGETYPE_JPEG ,IMAGETYPE_PNG )));
- }
-function parametrizacion($array) {
- //return $array;
- $link=Conectarse();
- mysqli_real_escape_string($link,$array);
- $accion = $array[accion];
- $tabla = $array[tabla];
- $campo = $array[campo];
- $opcion = $array[opcion];
- $descripcion= $array[descripcion];
- $visible= $array[visible];
- $id= $array[id];
-
- if($accion =='grabar'){
- $consulta= "INSERT INTO form_parametrizacion set tabla='$tabla', campo ='$campo',opcion ='$opcion' , descripcion ='$descripcion' ,visible='$visible'";
- }
- // return $consulta;
- $sql=mysqli_query($consulta,$link);
- if($sql){return "Campo grabado"; }else{return "";}
-
-}
-
-?>
\ No newline at end of file
diff --git a/milfs/funciones/login.php b/milfs/funciones/login.php
deleted file mode 100644
index 5dc7a48..0000000
--- a/milfs/funciones/login.php
+++ /dev/null
@@ -1,324 +0,0 @@
-addRedirect("index.php");
- return $respuesta;
- }
-
- if(isset($_SESSION['id'])){
-
-$accion = " $_SESSION[username] ";
- }else{
- $accion = registro_express("nuevo_$nombre_formato","boton");
- print $accion;
- return;
-// return $login;
- }
- $resultado ="
-
-";
- print $resultado;
- return;
- }
-$xajax->registerFunction("login_boton");
-
-
-
-function revisar_ingreso($formulario){
- $recordar="";
- $sucursal="";
- $resultado="";
- $formulario = mysql_seguridad($formulario);
- if($formulario =="") {
- $formulario ="
-
-
- Correo o usuario
-
-
-
-
-
-
-
-
-
- Clave
-
-
-
-
-
-
- No recuerdo mi clave
-
-
-
-
-
- ";
-$resultado = "
-
- ";
-if(!isset($_SESSION['id'])){ print $resultado; }else {
-
-//print $nuevo ;
-}
-return;
- }
- include("includes/datos.php");
- $div='contenido';
- $respuesta = new xajaxResponse('utf-8');
-
- $email = $formulario['email'];
- $recordar = @$formulario['recordar'];
-
-
- if($email =='') {
-
- $respuesta->addAlert("Ingresa tu nombre de usuario o email");
- return $respuesta;
- }
- if($formulario['password'] =='' AND $recordar =='') {
-
- $respuesta->addAlert("Ingresa tu clave");
- return $respuesta;
- }
- $password= MD5($formulario['password']);
- $link=Conectarse();
- mysqli_set_charset($link, "utf8");
-
- if($recordar =='1')
-{
-if($email =='')
- {
-$tipo='danger';
-$mensaje ="Por favor escribe tu correo o usuario si olvidaste tu clave.";
- $respuesta->addAssign($div,"innerHTML",$mensaje);
- return $respuesta;
- }else
- {
-$consulta = "SELECT id,email,control,id_empresa FROM $tabla_autenticacion WHERE (email = '$email' OR username = '$email' )";
- $sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0')
- {
-$firma_recuperacion = sha1("$control".mktime()."");
-$correo = mysqli_result($sql,0,"email");
-$control = mysqli_result($sql,0,"control");
-$id_usuario = mysqli_result($sql,0,"id");
-$id_empresa = mysqli_result($sql,0,"id_empresa");
-
-$firma ="UPDATE $tabla_autenticacion SET `firma_recuperacion` = '$firma_recuperacion' WHERE $tabla_autenticacion.`id` = '$id_usuario';";
-$cambiar_firma=mysqli_query($link,$firma);
-$tipo='success';
-
- $direccion = remplacetas("empresa","id",$id_empresa,"direccion","");
- $telefono = remplacetas("empresa","id",$id_empresa,"telefono","");
- $web = remplacetas("empresa","id",$id_empresa,"web","");
- $email = remplacetas("empresa","id",$id_empresa,"email","");
- $imagen = remplacetas("empresa","id",$id_empresa,"imagen","");
- $razon_social = remplacetas("empresa","id",$id_empresa,"razon_social","");
- $slogan = remplacetas("empresa","id",$id_empresa,"slogan","");
-
-$headers = "MIME-Version: 1.0\r\n";
-$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
-$headers .= "From: $razon_social[0] <$email[0]>\r\n";
-$headers .= "Reply-To: $email[0]\r\n";
-$headers .= "Return-path: $email[0]\r\n";
-
-$asunto= "Cambio de clave";
-$cuerpo ="
-$razon_social[0]
-
-
$razon_social[0]
-
-
-
Se ha solicitado un cambio de clave para tu usuario.
-Si fuiste tu quien lo solicitó, sigue este enlace para realizar el cambio.
-http://$_SERVER[HTTP_HOST]/milfs/index.php?change=$firma_recuperacion
-
-
Si no solicitaste el cambio, por favor comunícalo respondiendo este correo.
-
-
- ";
- $mensaje =" Enviamos un correo con la confirmación a $correo";
- mail("$correo","$asunto","$cuerpo","$headers") ;
- }else
- {
-$tipo='danger';
-$mensaje ="El correo o usuario no se encuentra registrado aún.";
- }
- }
- $resultado ="$mensaje
";
- $respuesta->addAssign($div,"innerHTML",$resultado);
-
- return $respuesta;
-}
-
-//$consulta = "SELECT * FROM $tabla_autenticacion WHERE (email = '$email' OR username = '$email' )AND passwd = '$password' LIMIT 1";
-$consulta= "SELECT *, $tabla_autenticacion.id AS id_usuario
- FROM $tabla_autenticacion, usuarios_grupo
- WHERE (email = '$email' OR username = '$email' )AND passwd = '$password'
- AND $tabla_autenticacion.id_grupo = usuarios_grupo.id
- LIMIT 1";
-
- $sql=mysqli_query($link,$consulta);
- if (mysqli_num_rows($sql)!='0'){
- if(mysqli_result($sql,0,"status") === '0' ) {
- $resultado = "
-
- Aún no se ha confirmado tu email, por favor revisa tu correo
-
";
- //$div ="login_ok";
-
- }
- else {
- //session_destroy();
- $_SESSION = array();
- $_SESSION['username']= mysqli_result($sql,0,"username");
- $_SESSION['id']= mysqli_result($sql,0,"id_usuario");
- $_SESSION['grupo']= mysqli_result($sql,0,"id_grupo");
- $_SESSION['equipo']= mysqli_result($sql,0,"equipo");
- $_SESSION['tabla_autenticacion']= "$tabla_autenticacion";
- $_SESSION['prioridad'] = mysqli_result($sql,0,"prioridad");
- $_SESSION['id_empresa']= mysqli_result($sql,0,"id_empresa");
- $_SESSION[$usuarios_sesion]= "$usuarios_sesion";
- $_SESSION['site']= "$url";
-
-
-
- $resultado .="
- $sucursal
-
-
Hola $_SESSION[username] ";
- //$url=urlencode('../index.php');
- //$respuesta->addRedirect("$_SESSION[site]");
- $respuesta->addScript("window.location='../'");
- //header("Location: ../");
- //return;
- }
- }else{
- $resultado = "
-
- Los datos no son correctos, por favor rectifica o ponte en contacto con el administrador para mas información.
-
Intentar de nuevo
-
";
- }
- $respuesta->addAssign($div,"innerHTML",$resultado);
- return $respuesta;
- }
-
-$xajax->registerFunction("revisar_ingreso");
-
-function cambiar_password_formato($change) {
- include("includes/datos.php");
- $firma_recuperacion = remplacetas("$tabla_autenticacion","firma_recuperacion",$change,"firma_recuperacion") ;
- if($firma_recuperacion[0] =='') {
- $formato ="Lo sentimos El Link ya NO ES válido
";
- return $formato;
- }
-$formato="
-
-
-
-
-
-
- Cambio de clave
-
-
-
-
-
-
-
-
Grabar
-
-
-
-
-";
-return $formato;
-}
-
-function cambiar_password($formulario){
- // if ( !isset ( $_SESSION['id'] ) ) { return;}
- $respuesta = new xajaxResponse('utf-8');
- include("includes/datos.php");
-$formulario = mysql_seguridad($formulario);
-$actual= $formulario[password_actual];
-$nuevo= $formulario[password_nuevo];
-$confirmacion= $formulario[password_confirmacion];
-$firma = $formulario[firma_recuperacion];
-$firma_recuperacion = remplacetas("$tabla_autenticacion","firma_recuperacion",$formulario[firma_recuperacion],"firma_recuperacion") ;
-if(isset($firma)) {$actual = $firma; $id_usuario = $firma_recuperacion[1]; }else{$id_usuario = $_SESSION[id]; }
-$verifica = remplacetas("$tablas_autenticacion","id",$_SESSION[id],"passwd") ;
-
-$size= strlen($nuevo);
-if($nuevo != $confirmacion OR $actual =="" ){
-
- $respuesta->addAlert("Los valores no coinciden ( $formulario[firma_recuperacion] ) $nuevo != $confirmacion $formulario[firma_recuperacion] $firma $actual \OR $actual");
-return $respuesta;
-}elseif($size < 8) {
- $respuesta->addAlert("Use un password mas seguro: Mínimo 8 caracteres.");
-return $respuesta;
-}
-elseif( $firma_recuperacion[0] != $formulario[firma_recuperacion]){
- $respuesta->addAlert("El link ya no es valido");
- return $respuesta;
-
-}
-elseif($formulario[firma_recuperacion] =='' AND $verifica[0] != MD5($actual) ){
- $respuesta->addAlert("Error de password $formulario[firma_recuperacion]");
- return $respuesta;
-}else{}
-
-$link=Conectarse();
- mysqli_set_charset($link, "utf8");
- $nueva_firma = sha1(mktime());
- $consulta = "UPDATE $tabla_autenticacion SET passwd = '".MD5($nuevo)."' , firma_recuperacion = '$nueva_firma' WHERE id = $id_usuario;";
- $sql_consulta=mysqli_query($link,$consulta);
- if($sql_consulta) {
-$resultado = "La clave se cambió con éxito.
";
- }else{$resultado= "";}
- $respuesta->addAlert("La clave se cambió con éxito.");
- $respuesta->addRedirect("index.php");
- return $respuesta;
- }
-
-$xajax->registerFunction("cambiar_password");
-
-
-
-?>
diff --git a/milfs/galeria.php b/milfs/galeria.php
deleted file mode 100644
index 69dd484..0000000
--- a/milfs/galeria.php
+++ /dev/null
@@ -1,226 +0,0 @@
-
-
-
-
$campo_limpio[1] $campo_limpio[3]
-
-
-
-*/
-require ('milfs/xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('milfs/funciones/funciones.php');
-require ('milfs/funciones/convert.php');
-require ('milfs/funciones/login.php');
-require ("milfs/funciones/conex.php");
-require ("milfs/includes/markdown.php");
-$xajax->processRequests();
-$logo = remplacetas('empresa','id','1','imagen') ;
-$direccion = remplacetas('empresa','id','1','direccion') ;
-$telefono = remplacetas('empresa','id','1','telefono_1') ;
-$email = remplacetas('empresa','id','1','email') ;
-$razon_social = remplacetas('empresa','id','1','razon_social') ;
-$sigla = remplacetas('empresa','id','1','sigla') ;
-$facebook = remplacetas('empresa','id','1','facebook') ;
-$twitter = remplacetas('empresa','id','1','twitter') ;
-$slogan = remplacetas('empresa','id','1','slogan') ;
-$web = remplacetas('empresa','id','1','web') ;
- if ( !isset( $_SESSION[id] ) ) { $ingresar = "Ingresar $_SESSION[id] ";}else{$ingresar = " $_SESSION[username] ";}
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("milfs/xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/geo.php b/milfs/geo.php
deleted file mode 100644
index cbd40cb..0000000
--- a/milfs/geo.php
+++ /dev/null
@@ -1,92 +0,0 @@
-processRequests();
-
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
- ">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/geojson.js b/milfs/geojson.js
deleted file mode 100644
index 0a4c019..0000000
--- a/milfs/geojson.js
+++ /dev/null
@@ -1,17 +0,0 @@
-
\ No newline at end of file
diff --git a/milfs/geojson.js.php b/milfs/geojson.js.php
deleted file mode 100644
index a1f3246..0000000
--- a/milfs/geojson.js.php
+++ /dev/null
@@ -1,17 +0,0 @@
-
\ No newline at end of file
diff --git a/milfs/geojson.php b/milfs/geojson.php
deleted file mode 100644
index dc9af0f..0000000
--- a/milfs/geojson.php
+++ /dev/null
@@ -1,21 +0,0 @@
-
\ No newline at end of file
diff --git a/milfs/images/100x100.png b/milfs/images/100x100.png
deleted file mode 100644
index 5f90606..0000000
Binary files a/milfs/images/100x100.png and /dev/null differ
diff --git a/milfs/images/200x200.png b/milfs/images/200x200.png
deleted file mode 100644
index 3b6945c..0000000
Binary files a/milfs/images/200x200.png and /dev/null differ
diff --git a/milfs/images/audios/11.mp3 b/milfs/images/audios/11.mp3
deleted file mode 100644
index d326264..0000000
Binary files a/milfs/images/audios/11.mp3 and /dev/null differ
diff --git a/milfs/images/audios/12.mp3 b/milfs/images/audios/12.mp3
deleted file mode 100644
index 969d5fe..0000000
Binary files a/milfs/images/audios/12.mp3 and /dev/null differ
diff --git a/milfs/images/audios/13.mp3 b/milfs/images/audios/13.mp3
deleted file mode 100644
index 387e077..0000000
Binary files a/milfs/images/audios/13.mp3 and /dev/null differ
diff --git a/milfs/images/audios/14.mp3 b/milfs/images/audios/14.mp3
deleted file mode 100644
index bd87e7c..0000000
Binary files a/milfs/images/audios/14.mp3 and /dev/null differ
diff --git a/milfs/images/audios/15.mp3 b/milfs/images/audios/15.mp3
deleted file mode 100644
index 524bdb3..0000000
Binary files a/milfs/images/audios/15.mp3 and /dev/null differ
diff --git a/milfs/images/audios/16.mp3 b/milfs/images/audios/16.mp3
deleted file mode 100644
index 7336850..0000000
Binary files a/milfs/images/audios/16.mp3 and /dev/null differ
diff --git a/milfs/images/audios/21.mp3 b/milfs/images/audios/21.mp3
deleted file mode 100644
index 0e45b6f..0000000
Binary files a/milfs/images/audios/21.mp3 and /dev/null differ
diff --git a/milfs/images/audios/22.mp3 b/milfs/images/audios/22.mp3
deleted file mode 100644
index 84f7743..0000000
Binary files a/milfs/images/audios/22.mp3 and /dev/null differ
diff --git a/milfs/images/audios/23.mp3 b/milfs/images/audios/23.mp3
deleted file mode 100644
index 46abd0d..0000000
Binary files a/milfs/images/audios/23.mp3 and /dev/null differ
diff --git a/milfs/images/audios/24.mp3 b/milfs/images/audios/24.mp3
deleted file mode 100644
index db34e8a..0000000
Binary files a/milfs/images/audios/24.mp3 and /dev/null differ
diff --git a/milfs/images/audios/25.mp3 b/milfs/images/audios/25.mp3
deleted file mode 100644
index f65b08c..0000000
Binary files a/milfs/images/audios/25.mp3 and /dev/null differ
diff --git a/milfs/images/audios/26.mp3 b/milfs/images/audios/26.mp3
deleted file mode 100644
index da5512f..0000000
Binary files a/milfs/images/audios/26.mp3 and /dev/null differ
diff --git a/milfs/images/audios/27.mp3 b/milfs/images/audios/27.mp3
deleted file mode 100644
index 5bd2083..0000000
Binary files a/milfs/images/audios/27.mp3 and /dev/null differ
diff --git a/milfs/images/audios/31.mp3 b/milfs/images/audios/31.mp3
deleted file mode 100644
index 0dd9310..0000000
Binary files a/milfs/images/audios/31.mp3 and /dev/null differ
diff --git a/milfs/images/audios/32.mp3 b/milfs/images/audios/32.mp3
deleted file mode 100644
index 2072dfd..0000000
Binary files a/milfs/images/audios/32.mp3 and /dev/null differ
diff --git a/milfs/images/audios/audio6.mp3 b/milfs/images/audios/audio6.mp3
deleted file mode 100644
index 49512f9..0000000
Binary files a/milfs/images/audios/audio6.mp3 and /dev/null differ
diff --git a/milfs/images/audios/audio6.ogg b/milfs/images/audios/audio6.ogg
deleted file mode 100644
index 3841e9d..0000000
Binary files a/milfs/images/audios/audio6.ogg and /dev/null differ
diff --git a/milfs/images/avatar.png b/milfs/images/avatar.png
deleted file mode 100644
index 3fc854f..0000000
Binary files a/milfs/images/avatar.png and /dev/null differ
diff --git a/milfs/images/avatar_big.png b/milfs/images/avatar_big.png
deleted file mode 100644
index ac1da2a..0000000
Binary files a/milfs/images/avatar_big.png and /dev/null differ
diff --git a/milfs/images/cc.png b/milfs/images/cc.png
deleted file mode 100644
index 6b6958a..0000000
Binary files a/milfs/images/cc.png and /dev/null differ
diff --git a/milfs/images/eff_logo.jpg b/milfs/images/eff_logo.jpg
deleted file mode 100644
index d99b5c6..0000000
Binary files a/milfs/images/eff_logo.jpg and /dev/null differ
diff --git a/milfs/images/frida.gif b/milfs/images/frida.gif
deleted file mode 100644
index 80076ba..0000000
Binary files a/milfs/images/frida.gif and /dev/null differ
diff --git a/milfs/images/frida_apoyar.png b/milfs/images/frida_apoyar.png
deleted file mode 100644
index 0661851..0000000
Binary files a/milfs/images/frida_apoyar.png and /dev/null differ
diff --git a/milfs/images/frida_cuadro.gif b/milfs/images/frida_cuadro.gif
deleted file mode 100644
index 6718240..0000000
Binary files a/milfs/images/frida_cuadro.gif and /dev/null differ
diff --git a/milfs/images/frida_ingresa.png b/milfs/images/frida_ingresa.png
deleted file mode 100644
index 0482b08..0000000
Binary files a/milfs/images/frida_ingresa.png and /dev/null differ
diff --git a/milfs/images/gente.jpg b/milfs/images/gente.jpg
deleted file mode 100644
index 0d6c369..0000000
Binary files a/milfs/images/gente.jpg and /dev/null differ
diff --git a/milfs/images/iconos/aerosol.png b/milfs/images/iconos/aerosol.png
deleted file mode 100644
index d7437f1..0000000
Binary files a/milfs/images/iconos/aerosol.png and /dev/null differ
diff --git a/milfs/images/iconos/altar.png b/milfs/images/iconos/altar.png
deleted file mode 100644
index 3a04c90..0000000
Binary files a/milfs/images/iconos/altar.png and /dev/null differ
diff --git a/milfs/images/iconos/amarillo.png b/milfs/images/iconos/amarillo.png
deleted file mode 100644
index 55dda10..0000000
Binary files a/milfs/images/iconos/amarillo.png and /dev/null differ
diff --git a/milfs/images/iconos/arte.png b/milfs/images/iconos/arte.png
deleted file mode 100644
index 06f166a..0000000
Binary files a/milfs/images/iconos/arte.png and /dev/null differ
diff --git a/milfs/images/iconos/blanco.png b/milfs/images/iconos/blanco.png
deleted file mode 100644
index 84450f1..0000000
Binary files a/milfs/images/iconos/blanco.png and /dev/null differ
diff --git a/milfs/images/iconos/casa.png b/milfs/images/iconos/casa.png
deleted file mode 100644
index 4f6ca50..0000000
Binary files a/milfs/images/iconos/casa.png and /dev/null differ
diff --git a/milfs/images/iconos/convenciones.png b/milfs/images/iconos/convenciones.png
deleted file mode 100644
index 559118e..0000000
Binary files a/milfs/images/iconos/convenciones.png and /dev/null differ
diff --git a/milfs/images/iconos/cruz.png b/milfs/images/iconos/cruz.png
deleted file mode 100644
index ea7bd9c..0000000
Binary files a/milfs/images/iconos/cruz.png and /dev/null differ
diff --git a/milfs/images/iconos/edificio.png b/milfs/images/iconos/edificio.png
deleted file mode 100644
index aafc79f..0000000
Binary files a/milfs/images/iconos/edificio.png and /dev/null differ
diff --git a/milfs/images/iconos/gente.png b/milfs/images/iconos/gente.png
deleted file mode 100644
index 818e4e0..0000000
Binary files a/milfs/images/iconos/gente.png and /dev/null differ
diff --git a/milfs/images/iconos/jardin.png b/milfs/images/iconos/jardin.png
deleted file mode 100644
index ec088be..0000000
Binary files a/milfs/images/iconos/jardin.png and /dev/null differ
diff --git a/milfs/images/iconos/jardines.png b/milfs/images/iconos/jardines.png
deleted file mode 100644
index ec088be..0000000
Binary files a/milfs/images/iconos/jardines.png and /dev/null differ
diff --git a/milfs/images/iconos/lugarpararecordar.png b/milfs/images/iconos/lugarpararecordar.png
deleted file mode 100644
index 2d0efb9..0000000
Binary files a/milfs/images/iconos/lugarpararecordar.png and /dev/null differ
diff --git a/milfs/images/iconos/matera.png b/milfs/images/iconos/matera.png
deleted file mode 100644
index 9922d06..0000000
Binary files a/milfs/images/iconos/matera.png and /dev/null differ
diff --git a/milfs/images/iconos/museo.png b/milfs/images/iconos/museo.png
deleted file mode 100644
index ad9d61e..0000000
Binary files a/milfs/images/iconos/museo.png and /dev/null differ
diff --git a/milfs/images/iconos/naranja.png b/milfs/images/iconos/naranja.png
deleted file mode 100644
index 9a2a1e4..0000000
Binary files a/milfs/images/iconos/naranja.png and /dev/null differ
diff --git a/milfs/images/iconos/negro.png b/milfs/images/iconos/negro.png
deleted file mode 100644
index f3cbced..0000000
Binary files a/milfs/images/iconos/negro.png and /dev/null differ
diff --git a/milfs/images/iconos/pin.png b/milfs/images/iconos/pin.png
deleted file mode 100644
index ecf6a06..0000000
Binary files a/milfs/images/iconos/pin.png and /dev/null differ
diff --git a/milfs/images/iconos/pinOrange.png b/milfs/images/iconos/pinOrange.png
deleted file mode 100644
index 95276f6..0000000
Binary files a/milfs/images/iconos/pinOrange.png and /dev/null differ
diff --git a/milfs/images/iconos/placa.png b/milfs/images/iconos/placa.png
deleted file mode 100644
index 189dcf9..0000000
Binary files a/milfs/images/iconos/placa.png and /dev/null differ
diff --git a/milfs/images/iconos/planton.png b/milfs/images/iconos/planton.png
deleted file mode 100644
index 087069b..0000000
Binary files a/milfs/images/iconos/planton.png and /dev/null differ
diff --git a/milfs/images/iconos/rectangulo.png b/milfs/images/iconos/rectangulo.png
deleted file mode 100644
index 2e1d2d8..0000000
Binary files a/milfs/images/iconos/rectangulo.png and /dev/null differ
diff --git a/milfs/images/iconos/rojo.png b/milfs/images/iconos/rojo.png
deleted file mode 100644
index 26aa865..0000000
Binary files a/milfs/images/iconos/rojo.png and /dev/null differ
diff --git a/milfs/images/iconos/sha.png b/milfs/images/iconos/sha.png
deleted file mode 100644
index 800d689..0000000
Binary files a/milfs/images/iconos/sha.png and /dev/null differ
diff --git a/milfs/images/iconos/verde.png b/milfs/images/iconos/verde.png
deleted file mode 100644
index 775dd84..0000000
Binary files a/milfs/images/iconos/verde.png and /dev/null differ
diff --git a/milfs/images/iron.jpg b/milfs/images/iron.jpg
deleted file mode 100644
index c94eb40..0000000
Binary files a/milfs/images/iron.jpg and /dev/null differ
diff --git a/milfs/images/loading.gif b/milfs/images/loading.gif
deleted file mode 100644
index fc02d0d..0000000
Binary files a/milfs/images/loading.gif and /dev/null differ
diff --git a/milfs/images/logo-karisma.jpg b/milfs/images/logo-karisma.jpg
deleted file mode 100644
index 7d70b0e..0000000
Binary files a/milfs/images/logo-karisma.jpg and /dev/null differ
diff --git a/milfs/images/logo.png b/milfs/images/logo.png
deleted file mode 100644
index 82ac074..0000000
Binary files a/milfs/images/logo.png and /dev/null differ
diff --git a/milfs/images/logo_grande.png b/milfs/images/logo_grande.png
deleted file mode 100644
index fe542bc..0000000
Binary files a/milfs/images/logo_grande.png and /dev/null differ
diff --git a/milfs/images/logo_tupale.png b/milfs/images/logo_tupale.png
deleted file mode 100644
index fbfc067..0000000
Binary files a/milfs/images/logo_tupale.png and /dev/null differ
diff --git a/milfs/images/oscuro40.png b/milfs/images/oscuro40.png
deleted file mode 100644
index fafe371..0000000
Binary files a/milfs/images/oscuro40.png and /dev/null differ
diff --git a/milfs/images/pin.png b/milfs/images/pin.png
deleted file mode 100644
index fc23037..0000000
Binary files a/milfs/images/pin.png and /dev/null differ
diff --git a/milfs/images/pixel.png b/milfs/images/pixel.png
deleted file mode 100644
index 953fcf2..0000000
Binary files a/milfs/images/pixel.png and /dev/null differ
diff --git a/milfs/images/profile.jpg b/milfs/images/profile.jpg
deleted file mode 100644
index 9c921ed..0000000
Binary files a/milfs/images/profile.jpg and /dev/null differ
diff --git a/milfs/images/secure/index.php b/milfs/images/secure/index.php
deleted file mode 100644
index 3efecf3..0000000
--- a/milfs/images/secure/index.php
+++ /dev/null
@@ -1,46 +0,0 @@
-'image/jpeg',
- 'png'=>'image/png',
- 'mid'=>'audio/x-midi',
- 'wav'=>'audio/x-wav'
- );
-
- if(@$mime[substr($file,-3)] =='') {
- header('Location: ../pixel.png');
-
- exit();
- }
- $stat=stat($file);
- header('Content-Type: '.$mime[substr($file,-3)]);
- header('Content-Length: '.$stat[7]);
- header('Last-Modified: '.gmdate('D, d M Y H:i:s',$stat[9]).' GMT');
- readfile($file);
- exit();
-}
-header('Pragma: no-cache');
-header('Cache-Control: no-cache, no-store, must-revalidate');
-include($file.'.php');
-?>
diff --git a/milfs/images/seguridad.gif b/milfs/images/seguridad.gif
deleted file mode 100644
index f55d7e8..0000000
Binary files a/milfs/images/seguridad.gif and /dev/null differ
diff --git a/milfs/images/seguridad.jpg b/milfs/images/seguridad.jpg
deleted file mode 100644
index 021675a..0000000
Binary files a/milfs/images/seguridad.jpg and /dev/null differ
diff --git a/milfs/images/sinimagen.jpg b/milfs/images/sinimagen.jpg
deleted file mode 100644
index 3700ef7..0000000
Binary files a/milfs/images/sinimagen.jpg and /dev/null differ
diff --git a/milfs/images/sinimagen_150.jpg b/milfs/images/sinimagen_150.jpg
deleted file mode 100644
index 2fbbf59..0000000
Binary files a/milfs/images/sinimagen_150.jpg and /dev/null differ
diff --git a/milfs/images/sinimagen_300.jpg b/milfs/images/sinimagen_300.jpg
deleted file mode 100644
index 812d6e3..0000000
Binary files a/milfs/images/sinimagen_300.jpg and /dev/null differ
diff --git a/milfs/images/sinimagen_600.jpg b/milfs/images/sinimagen_600.jpg
deleted file mode 100644
index d18bcc6..0000000
Binary files a/milfs/images/sinimagen_600.jpg and /dev/null differ
diff --git a/milfs/images/sinimagen_full.jpg b/milfs/images/sinimagen_full.jpg
deleted file mode 100644
index d18bcc6..0000000
Binary files a/milfs/images/sinimagen_full.jpg and /dev/null differ
diff --git a/milfs/images/transparente40.png b/milfs/images/transparente40.png
deleted file mode 100644
index 94ae095..0000000
Binary files a/milfs/images/transparente40.png and /dev/null differ
diff --git a/milfs/images/transparente50.png b/milfs/images/transparente50.png
deleted file mode 100644
index ba3b13a..0000000
Binary files a/milfs/images/transparente50.png and /dev/null differ
diff --git a/milfs/in.php b/milfs/in.php
deleted file mode 100644
index a628f2d..0000000
--- a/milfs/in.php
+++ /dev/null
@@ -1,201 +0,0 @@
-processRequests();
-//$xajax->debugOn();
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
- I<3MILFS
-
-
-
-
-
-
-
-
-
-
-
-
- xajax_formulario_modal('$_REQUEST[id]','','$_REQUEST[c]','$_REQUEST[t]')";}
-
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
- echo "
";
- */
-
-
-
-
-
-
-
-/*formulario_consultar('','');
-if($_REQUEST[id] !=''){$onload ="";}
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/includes/bootsrap_class_list.php b/milfs/includes/bootsrap_class_list.php
deleted file mode 100644
index cc0650e..0000000
--- a/milfs/includes/bootsrap_class_list.php
+++ /dev/null
@@ -1,352 +0,0 @@
-active
-affix
-alert-danger
-alert-dismissable
-alert-info
-alert-link
-alert-success
-alert-warning
-alert
-arrow
-badge
-bottom
-breadcrumb
-btn-block
-btn-danger
-btn-default
-btn-group-justified
-btn-group-vertical
-btn-group
-btn-info
-btn-lg
-btn-link
-btn-primary
-btn-success
-btn-warning
-btn-xs
-btn
-caption
-caret
-carousel-caption
-carousel-control
-carousel-indicators
-carousel-inner
-carousel
-checkbox-inline
-checkbox
-close
-col-lg-1
-col-lg-10
-col-lg-11
-col-lg-12
-col-lg-2
-col-lg-3
-col-lg-4
-col-lg-5
-col-lg-6
-col-lg-7
-col-lg-8
-col-lg-9
-col-lg-offset-0
-col-lg-offset-1
-col-lg-offset-10
-col-lg-offset-11
-col-lg-offset-2
-col-lg-offset-3
-col-lg-offset-4
-col-lg-offset-5
-col-lg-offset-6
-col-lg-offset-7
-col-lg-offset-8
-col-lg-offset-9
-col-lg-pull-0
-col-lg-pull-1
-col-lg-pull-10
-col-lg-pull-11
-col-lg-pull-2
-col-lg-pull-3
-col-lg-pull-4
-col-lg-pull-5
-col-lg-pull-6
-col-lg-pull-7
-col-lg-pull-8
-col-lg-pull-9
-col-lg-push-0
-col-lg-push-1
-col-lg-push-10
-col-lg-push-11
-col-lg-push-2
-col-lg-push-3
-col-lg-push-4
-col-lg-push-5
-col-lg-push-6
-col-lg-push-7
-col-lg-push-8
-col-lg-push-9
-col-md-1
-col-md-10
-col-md-11
-col-md-12
-col-md-2
-col-md-3
-col-md-4
-col-md-5
-col-md-6
-col-md-7
-col-md-8
-col-md-9
-col-md-offset-0
-col-md-offset-1
-col-md-offset-10
-col-md-offset-11
-col-md-offset-2
-col-md-offset-3
-col-md-offset-4
-col-md-offset-5
-col-md-offset-6
-col-md-offset-7
-col-md-offset-8
-col-md-offset-9
-col-md-pull-0
-col-md-pull-1
-col-md-pull-10
-col-md-pull-11
-col-md-pull-2
-col-md-pull-3
-col-md-pull-4
-col-md-pull-5
-col-md-pull-6
-col-md-pull-7
-col-md-pull-8
-col-md-pull-9
-col-md-push-0
-col-md-push-1
-col-md-push-10
-col-md-push-11
-col-md-push-2
-col-md-push-3
-col-md-push-4
-col-md-push-5
-col-md-push-6
-col-md-push-7
-col-md-push-8
-col-md-push-9
-col-sm-1
-col-sm-10
-col-sm-11
-col-sm-12
-col-sm-2
-col-sm-3
-col-sm-4
-col-sm-5
-col-sm-6
-col-sm-7
-col-sm-8
-col-sm-9
-col-sm-offset-1
-col-sm-offset-10
-col-sm-offset-11
-col-sm-offset-2
-col-sm-offset-3
-col-sm-offset-4
-col-sm-offset-5
-col-sm-offset-6
-col-sm-offset-7
-col-sm-offset-8
-col-sm-offset-9
-col-sm-pull-1
-col-sm-pull-10
-col-sm-pull-11
-col-sm-pull-2
-col-sm-pull-3
-col-sm-pull-4
-col-sm-pull-5
-col-sm-pull-6
-col-sm-pull-7
-col-sm-pull-8
-col-sm-pull-9
-col-sm-push-1
-col-sm-push-10
-col-sm-push-11
-col-sm-push-2
-col-sm-push-3
-col-sm-push-4
-col-sm-push-5
-col-sm-push-6
-col-sm-push-7
-col-sm-push-8
-col-sm-push-9
-col-xs-1
-col-xs-10
-col-xs-11
-col-xs-12
-col-xs-2
-col-xs-3
-col-xs-4
-col-xs-5
-col-xs-6
-col-xs-7
-col-xs-8
-col-xs-9
-col
-collapse
-collapsing
-container
-control-label
-divider
-dropdown-backdrop
-
-
-dropdown-toggle
-dropdown
-fade
-form-control-static
-form-control
-form-group
-glyphicon-chevron-right
-glyphicon
-h1
-h2
-h3
-h4
-h5
-h6
-help-block
-hidden-lg
-hidden-md
-hidden-print
-hidden-sm
-hidden-xs
-hidden
-hide
-icon-bar
-icon-next
-img-circle
-img-responsive
-img-rounded
-img-thumbnail
-in
-initialism
-input-group-addon
-input-group-btn
-input-group
-input-lg
-input-sm
-invisible
-item
-jumbotron
-label-danger
-label-default
-label-info
-label-primary
-label-success
-label-warning
-label
-lead
-left
-list-group-item-heading
-list-group-item-text
-list-group-item
-list-group
-list-inline
-list-unstyled
-media-body
-media-heading
-media-list
-media-object
-media
-modal-backdrop
-modal-body
-modal-content
-modal-dialog
-
-
-modal-open
-modal-title
-modal
-nav-divider
-nav-justified
-nav-tabs-justified
-nav-tabs
-nav
-navbar-brand
-navbar-btn
-navbar-collapse
-navbar-default
-navbar-fixed-bottom
-navbar-fixed-top
-navbar-form
-
-navbar-inverse
-navbar-left
-navbar-link
-navbar-nav
-navbar-right
-navbar-static-top
-navbar-text
-navbar-toggle
-navbar
-next
-
-
-
-panel-body
-panel-danger
-panel-default
-
-panel-heading
-panel-info
-panel-primary
-panel-success
-panel-title
-panel-warning
-panel
-pill-pane
-popover-content
-popover-title
-popover
-pre-scrollable
-prettyprint
-prev
-progress-bar-danger
-progress-bar-info
-progress-bar-success
-progress-bar-warning
-progress-bar
-progress
-pull-left
-pull-right
-right
-row
-show
-sr-only
-table-bordered
-table-responsive
-table
-text-center
-text-danger
-text-hide
-text-info
-text-left
-text-muted
-text-primary
-text-right
-text-success
-text-warning
-thumbnail
-tooltip-arrow
-tooltip-inner
-tooltip
-top
-visible-lg
-visible-md
-visible-print
-visible-sm
-visible-xs
-well-lg
-well-sm
-well
-";
-?>
\ No newline at end of file
diff --git a/milfs/includes/datos.php b/milfs/includes/datos.php
deleted file mode 100644
index cddb974..0000000
--- a/milfs/includes/datos.php
+++ /dev/null
@@ -1,19 +0,0 @@
-
diff --git a/milfs/includes/includes.php b/milfs/includes/includes.php
deleted file mode 100644
index f8a93ba..0000000
--- a/milfs/includes/includes.php
+++ /dev/null
@@ -1,56 +0,0 @@
-parent.resultadoUpload(1, " '.$size.'"); ';
-else{
- echo generar_miniatura_alto($name,"150");
- echo generar_miniatura_alto($name,"300");
- echo generar_miniatura_alto($name,"600");
-echo " ";
-}
-}
-else echo " ";
-
-}
-else{
-echo ' ';
-}
-
-function generar_miniatura($file,$width) {
//$archivo = $file;
-$archivo = "../../../images_secure/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[0] / $file_info[1];
// Calculamos las nuevas dimensiones
$newwidth = $width;
$newheight = round($newwidth / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"../../../images_secure/".$width."/$file", 80);
-//imagejpeg($thumb,null, 80);
-}
-function generar_miniatura_alto($file,$alto) {
//$archivo = $file;
-$archivo = "../../../images_secure/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[1]/$file_info[0];
// Calculamos las nuevas dimensiones
-$newheight = $alto;
$newwidth = round($newheight / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"../../../images_secure/".$alto."/$file", 80);
-//imagejpeg($thumb,null, 80);
-}
-?>
-
diff --git a/milfs/includes/markdown.php b/milfs/includes/markdown.php
deleted file mode 100644
index 0edba0f..0000000
--- a/milfs/includes/markdown.php
+++ /dev/null
@@ -1,3347 +0,0 @@
-
-#
-# Original Markdown
-# Copyright (c) 2004-2006 John Gruber
-#
-#
-
-
-define( 'MARKDOWN_VERSION', "1.0.2" ); # 29 Nov 2013
-define( 'MARKDOWNEXTRA_VERSION', "1.2.8" ); # 29 Nov 2013
-
-
-#
-# Global default settings:
-#
-
-# Change to ">" for HTML output
-@define( 'MARKDOWN_EMPTY_ELEMENT_SUFFIX', " />");
-
-# Define the width of a tab for code blocks.
-@define( 'MARKDOWN_TAB_WIDTH', 4 );
-
-# Optional title attribute for footnote links and backlinks.
-@define( 'MARKDOWN_FN_LINK_TITLE', "" );
-@define( 'MARKDOWN_FN_BACKLINK_TITLE', "" );
-
-# Optional class attribute for footnote links and backlinks.
-@define( 'MARKDOWN_FN_LINK_CLASS', "" );
-@define( 'MARKDOWN_FN_BACKLINK_CLASS', "" );
-
-# Optional class prefix for fenced code block.
-@define( 'MARKDOWN_CODE_CLASS_PREFIX', "" );
-
-# Class attribute for code blocks goes on the `code` tag;
-# setting this to true will put attributes on the `pre` tag instead.
-@define( 'MARKDOWN_CODE_ATTR_ON_PRE', false );
-
-
-#
-# WordPress settings:
-#
-
-# Change to false to remove Markdown from posts and/or comments.
-@define( 'MARKDOWN_WP_POSTS', true );
-@define( 'MARKDOWN_WP_COMMENTS', true );
-
-
-
-### Standard Function Interface ###
-
-@define( 'MARKDOWN_PARSER_CLASS', 'MarkdownExtra_Parser' );
-
-function Markdown($text) {
-#
-# Initialize the parser and return the result of its transform method.
-#
- # Setup static parser variable.
- static $parser;
- if (!isset($parser)) {
- $parser_class = MARKDOWN_PARSER_CLASS;
- $parser = new $parser_class;
- }
-
- # Transform text using parser.
- return $parser->transform($text);
-}
-
-
-### WordPress Plugin Interface ###
-
-/*
-Plugin Name: Markdown Extra
-Plugin Name: Markdown
-Plugin URI: http://michelf.ca/projects/php-markdown/
-Description: Markdown syntax allows you to write using an easy-to-read, easy-to-write plain text format. Based on the original Perl version by John Gruber . More...
-Version: 1.2.8
-Author: Michel Fortin
-Author URI: http://michelf.ca/
-*/
-
-if (isset($wp_version)) {
- # More details about how it works here:
- #
-
- # Post content and excerpts
- # - Remove WordPress paragraph generator.
- # - Run Markdown on excerpt, then remove all tags.
- # - Add paragraph tag around the excerpt, but remove it for the excerpt rss.
- if (MARKDOWN_WP_POSTS) {
- remove_filter('the_content', 'wpautop');
- remove_filter('the_content_rss', 'wpautop');
- remove_filter('the_excerpt', 'wpautop');
- add_filter('the_content', 'mdwp_MarkdownPost', 6);
- add_filter('the_content_rss', 'mdwp_MarkdownPost', 6);
- add_filter('get_the_excerpt', 'mdwp_MarkdownPost', 6);
- add_filter('get_the_excerpt', 'trim', 7);
- add_filter('the_excerpt', 'mdwp_add_p');
- add_filter('the_excerpt_rss', 'mdwp_strip_p');
-
- remove_filter('content_save_pre', 'balanceTags', 50);
- remove_filter('excerpt_save_pre', 'balanceTags', 50);
- add_filter('the_content', 'balanceTags', 50);
- add_filter('get_the_excerpt', 'balanceTags', 9);
- }
-
- # Add a footnote id prefix to posts when inside a loop.
- function mdwp_MarkdownPost($text) {
- static $parser;
- if (!$parser) {
- $parser_class = MARKDOWN_PARSER_CLASS;
- $parser = new $parser_class;
- }
- if (is_single() || is_page() || is_feed()) {
- $parser->fn_id_prefix = "";
- } else {
- $parser->fn_id_prefix = get_the_ID() . ".";
- }
- return $parser->transform($text);
- }
-
- # Comments
- # - Remove WordPress paragraph generator.
- # - Remove WordPress auto-link generator.
- # - Scramble important tags before passing them to the kses filter.
- # - Run Markdown on excerpt then remove paragraph tags.
- if (MARKDOWN_WP_COMMENTS) {
- remove_filter('comment_text', 'wpautop', 30);
- remove_filter('comment_text', 'make_clickable');
- add_filter('pre_comment_content', 'Markdown', 6);
- add_filter('pre_comment_content', 'mdwp_hide_tags', 8);
- add_filter('pre_comment_content', 'mdwp_show_tags', 12);
- add_filter('get_comment_text', 'Markdown', 6);
- add_filter('get_comment_excerpt', 'Markdown', 6);
- add_filter('get_comment_excerpt', 'mdwp_strip_p', 7);
-
- global $mdwp_hidden_tags, $mdwp_placeholders;
- $mdwp_hidden_tags = explode(' ',
- '
');
- $mdwp_placeholders = explode(' ', str_rot13(
- 'pEj07ZbbBZ U1kqgh4w4p pre2zmeN6K QTi31t9pre ol0MP1jzJR '.
- 'ML5IjmbRol ulANi1NsGY J7zRLJqPul liA8ctl16T K9nhooUHli'));
- }
-
- function mdwp_add_p($text) {
- if (!preg_match('{^$|^<(p|ul|ol|dl|pre|blockquote)>}i', $text)) {
- $text = ''.$text.'
';
- $text = preg_replace('{\n{2,}}', "\n\n", $text);
- }
- return $text;
- }
-
- function mdwp_strip_p($t) { return preg_replace('{?p>}i', '', $t); }
-
- function mdwp_hide_tags($text) {
- global $mdwp_hidden_tags, $mdwp_placeholders;
- return str_replace($mdwp_hidden_tags, $mdwp_placeholders, $text);
- }
- function mdwp_show_tags($text) {
- global $mdwp_hidden_tags, $mdwp_placeholders;
- return str_replace($mdwp_placeholders, $mdwp_hidden_tags, $text);
- }
-}
-
-
-### bBlog Plugin Info ###
-
-function identify_modifier_markdown() {
- return array(
- 'name' => 'markdown',
- 'type' => 'modifier',
- 'nicename' => 'PHP Markdown Extra',
- 'description' => 'A text-to-HTML conversion tool for web writers',
- 'authors' => 'Michel Fortin and John Gruber',
- 'licence' => 'GPL',
- 'version' => MARKDOWNEXTRA_VERSION,
- 'help' => 'Markdown syntax allows you to write using an easy-to-read, easy-to-write plain text format. Based on the original Perl version by John Gruber . More... ',
- );
-}
-
-
-### Smarty Modifier Interface ###
-
-function smarty_modifier_markdown($text) {
- return Markdown($text);
-}
-
-
-### Textile Compatibility Mode ###
-
-# Rename this file to "classTextile.php" and it can replace Textile everywhere.
-
-if (strcasecmp(substr(__FILE__, -16), "classTextile.php") == 0) {
- # Try to include PHP SmartyPants. Should be in the same directory.
- @include_once 'smartypants.php';
- # Fake Textile class. It calls Markdown instead.
- class Textile {
- function TextileThis($text, $lite='', $encode='') {
- if ($lite == '' && $encode == '') $text = Markdown($text);
- if (function_exists('SmartyPants')) $text = SmartyPants($text);
- return $text;
- }
- # Fake restricted version: restrictions are not supported for now.
- function TextileRestricted($text, $lite='', $noimage='') {
- return $this->TextileThis($text, $lite);
- }
- # Workaround to ensure compatibility with TextPattern 4.0.3.
- function blockLite($text) { return $text; }
- }
-}
-
-
-
-#
-# Markdown Parser Class
-#
-
-class Markdown_Parser {
-
- ### Configuration Variables ###
-
- # Change to ">" for HTML output.
- var $empty_element_suffix = MARKDOWN_EMPTY_ELEMENT_SUFFIX;
- var $tab_width = MARKDOWN_TAB_WIDTH;
-
- # Change to `true` to disallow markup or entities.
- var $no_markup = false;
- var $no_entities = false;
-
- # Predefined urls and titles for reference links and images.
- var $predef_urls = array();
- var $predef_titles = array();
-
-
- ### Parser Implementation ###
-
- # Regex to match balanced [brackets].
- # Needed to insert a maximum bracked depth while converting to PHP.
- var $nested_brackets_depth = 6;
- var $nested_brackets_re;
-
- var $nested_url_parenthesis_depth = 4;
- var $nested_url_parenthesis_re;
-
- # Table of hash values for escaped characters:
- var $escape_chars = '\`*_{}[]()>#+-.!';
- var $escape_chars_re;
-
-
- function Markdown_Parser() {
- #
- # Constructor function. Initialize appropriate member variables.
- #
- $this->_initDetab();
- $this->prepareItalicsAndBold();
-
- $this->nested_brackets_re =
- str_repeat('(?>[^\[\]]+|\[', $this->nested_brackets_depth).
- str_repeat('\])*', $this->nested_brackets_depth);
-
- $this->nested_url_parenthesis_re =
- str_repeat('(?>[^()\s]+|\(', $this->nested_url_parenthesis_depth).
- str_repeat('(?>\)))*', $this->nested_url_parenthesis_depth);
-
- $this->escape_chars_re = '['.preg_quote($this->escape_chars).']';
-
- # Sort document, block, and span gamut in ascendent priority order.
- asort($this->document_gamut);
- asort($this->block_gamut);
- asort($this->span_gamut);
- }
-
-
- # Internal hashes used during transformation.
- var $urls = array();
- var $titles = array();
- var $html_hashes = array();
-
- # Status flag to avoid invalid nesting.
- var $in_anchor = false;
-
-
- function setup() {
- #
- # Called before the transformation process starts to setup parser
- # states.
- #
- # Clear global hashes.
- $this->urls = $this->predef_urls;
- $this->titles = $this->predef_titles;
- $this->html_hashes = array();
-
- $this->in_anchor = false;
- }
-
- function teardown() {
- #
- # Called after the transformation process to clear any variable
- # which may be taking up memory unnecessarly.
- #
- $this->urls = array();
- $this->titles = array();
- $this->html_hashes = array();
- }
-
-
- function transform($text) {
- #
- # Main function. Performs some preprocessing on the input text
- # and pass it through the document gamut.
- #
- $this->setup();
-
- # Remove UTF-8 BOM and marker character in input, if present.
- $text = preg_replace('{^\xEF\xBB\xBF|\x1A}', '', $text);
-
- # Standardize line endings:
- # DOS to Unix and Mac to Unix
- $text = preg_replace('{\r\n?}', "\n", $text);
-
- # Make sure $text ends with a couple of newlines:
- $text .= "\n\n";
-
- # Convert all tabs to spaces.
- $text = $this->detab($text);
-
- # Turn block-level HTML blocks into hash entries
- $text = $this->hashHTMLBlocks($text);
-
- # Strip any lines consisting only of spaces and tabs.
- # This makes subsequent regexen easier to write, because we can
- # match consecutive blank lines with /\n+/ instead of something
- # contorted like /[ ]*\n+/ .
- $text = preg_replace('/^[ ]+$/m', '', $text);
-
- # Run document gamut methods.
- foreach ($this->document_gamut as $method => $priority) {
- $text = $this->$method($text);
- }
-
- $this->teardown();
-
- return $text . "\n";
- }
-
- var $document_gamut = array(
- # Strip link definitions, store in hashes.
- "stripLinkDefinitions" => 20,
-
- "runBasicBlockGamut" => 30,
- );
-
-
- function stripLinkDefinitions($text) {
- #
- # Strips link definitions from text, stores the URLs and titles in
- # hash references.
- #
- $less_than_tab = $this->tab_width - 1;
-
- # Link defs are in the form: ^[id]: url "optional title"
- $text = preg_replace_callback('{
- ^[ ]{0,'.$less_than_tab.'}\[(.+)\][ ]?: # id = $1
- [ ]*
- \n? # maybe *one* newline
- [ ]*
- (?:
- <(.+?)> # url = $2
- |
- (\S+?) # url = $3
- )
- [ ]*
- \n? # maybe one newline
- [ ]*
- (?:
- (?<=\s) # lookbehind for whitespace
- ["(]
- (.*?) # title = $4
- [")]
- [ ]*
- )? # title is optional
- (?:\n+|\Z)
- }xm',
- array(&$this, '_stripLinkDefinitions_callback'),
- $text);
- return $text;
- }
- function _stripLinkDefinitions_callback($matches) {
- $link_id = strtolower($matches[1]);
- $url = $matches[2] == '' ? $matches[3] : $matches[2];
- $this->urls[$link_id] = $url;
- $this->titles[$link_id] =& $matches[4];
- return ''; # String that will replace the block
- }
-
-
- function hashHTMLBlocks($text) {
- if ($this->no_markup) return $text;
-
- $less_than_tab = $this->tab_width - 1;
-
- # Hashify HTML blocks:
- # We only want to do this for block-level HTML tags, such as headers,
- # lists, and tables. That's because we still want to wrap
s around
- # "paragraphs" that are wrapped in non-block-level tags, such as anchors,
- # phrase emphasis, and spans. The list of tags we're looking for is
- # hard-coded:
- #
- # * List "a" is made of tags which can be both inline or block-level.
- # These will be treated block-level when the start tag is alone on
- # its line, otherwise they're not matched here and will be taken as
- # inline later.
- # * List "b" is made of tags which are always block-level;
- #
- $block_tags_a_re = 'ins|del';
- $block_tags_b_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|'.
- 'script|noscript|form|fieldset|iframe|math|svg|'.
- 'article|section|nav|aside|hgroup|header|footer|'.
- 'figure';
-
- # Regular expression for the content of a block tag.
- $nested_tags_level = 4;
- $attr = '
- (?> # optional tag attributes
- \s # starts with whitespace
- (?>
- [^>"/]+ # text outside quotes
- |
- /+(?!>) # slash not followed by ">"
- |
- "[^"]*" # text inside double quotes (tolerate ">")
- |
- \'[^\']*\' # text inside single quotes (tolerate ">")
- )*
- )?
- ';
- $content =
- str_repeat('
- (?>
- [^<]+ # content without tag
- |
- <\2 # nested opening tag
- '.$attr.' # attributes
- (?>
- />
- |
- >', $nested_tags_level). # end of opening tag
- '.*?'. # last level nested tag content
- str_repeat('
- \2\s*> # closing nested tag
- )
- |
- <(?!/\2\s*> # other tags with a different name
- )
- )*',
- $nested_tags_level);
- $content2 = str_replace('\2', '\3', $content);
-
- # First, look for nested blocks, e.g.:
- #
- #
- # tags for inner block must be indented.
- #
- #
- #
- # The outermost tags must start at the left margin for this to match, and
- # the inner nested divs must be indented.
- # We need to do this before the next, more liberal match, because the next
- # match will start at the first `` and stop at the first `
`.
- $text = preg_replace_callback('{(?>
- (?>
- (?<=\n\n) # Starting after a blank line
- | # or
- \A\n? # the beginning of the doc
- )
- ( # save in $1
-
- # Match from `\n` to ` \n`, handling nested tags
- # in between.
-
- [ ]{0,'.$less_than_tab.'}
- <('.$block_tags_b_re.')# start tag = $2
- '.$attr.'> # attributes followed by > and \n
- '.$content.' # content, support nesting
- \2> # the matching end tag
- [ ]* # trailing spaces/tabs
- (?=\n+|\Z) # followed by a newline or end of document
-
- | # Special version for tags of group a.
-
- [ ]{0,'.$less_than_tab.'}
- <('.$block_tags_a_re.')# start tag = $3
- '.$attr.'>[ ]*\n # attributes followed by >
- '.$content2.' # content, support nesting
- \3> # the matching end tag
- [ ]* # trailing spaces/tabs
- (?=\n+|\Z) # followed by a newline or end of document
-
- | # Special case just for . It was easier to make a special
- # case than to make the other regex more complicated.
-
- [ ]{0,'.$less_than_tab.'}
- <(hr) # start tag = $2
- '.$attr.' # attributes
- /?> # the matching end tag
- [ ]*
- (?=\n{2,}|\Z) # followed by a blank line or end of document
-
- | # Special case for standalone HTML comments:
-
- [ ]{0,'.$less_than_tab.'}
- (?s:
-
- )
- [ ]*
- (?=\n{2,}|\Z) # followed by a blank line or end of document
-
- | # PHP and ASP-style processor instructions ( and <%)
-
- [ ]{0,'.$less_than_tab.'}
- (?s:
- <([?%]) # $2
- .*?
- \2>
- )
- [ ]*
- (?=\n{2,}|\Z) # followed by a blank line or end of document
-
- )
- )}Sxmi',
- array(&$this, '_hashHTMLBlocks_callback'),
- $text);
-
- return $text;
- }
- function _hashHTMLBlocks_callback($matches) {
- $text = $matches[1];
- $key = $this->hashBlock($text);
- return "\n\n$key\n\n";
- }
-
-
- function hashPart($text, $boundary = 'X') {
- #
- # Called whenever a tag must be hashed when a function insert an atomic
- # element in the text stream. Passing $text to through this function gives
- # a unique text-token which will be reverted back when calling unhash.
- #
- # The $boundary argument specify what character should be used to surround
- # the token. By convension, "B" is used for block elements that needs not
- # to be wrapped into paragraph tags at the end, ":" is used for elements
- # that are word separators and "X" is used in the general case.
- #
- # Swap back any tag hash found in $text so we do not have to `unhash`
- # multiple times at the end.
- $text = $this->unhash($text);
-
- # Then hash the block.
- static $i = 0;
- $key = "$boundary\x1A" . ++$i . $boundary;
- $this->html_hashes[$key] = $text;
- return $key; # String that will replace the tag.
- }
-
-
- function hashBlock($text) {
- #
- # Shortcut function for hashPart with block-level boundaries.
- #
- return $this->hashPart($text, 'B');
- }
-
-
- var $block_gamut = array(
- #
- # These are all the transformations that form block-level
- # tags like paragraphs, headers, and list items.
- #
- "doHeaders" => 10,
- "doHorizontalRules" => 20,
-
- "doLists" => 40,
- "doCodeBlocks" => 50,
- "doBlockQuotes" => 60,
- );
-
- function runBlockGamut($text) {
- #
- # Run block gamut tranformations.
- #
- # We need to escape raw HTML in Markdown source before doing anything
- # else. This need to be done for each block, and not only at the
- # begining in the Markdown function since hashed blocks can be part of
- # list items and could have been indented. Indented blocks would have
- # been seen as a code block in a previous pass of hashHTMLBlocks.
- $text = $this->hashHTMLBlocks($text);
-
- return $this->runBasicBlockGamut($text);
- }
-
- function runBasicBlockGamut($text) {
- #
- # Run block gamut tranformations, without hashing HTML blocks. This is
- # useful when HTML blocks are known to be already hashed, like in the first
- # whole-document pass.
- #
- foreach ($this->block_gamut as $method => $priority) {
- $text = $this->$method($text);
- }
-
- # Finally form paragraph and restore hashed blocks.
- $text = $this->formParagraphs($text);
-
- return $text;
- }
-
-
- function doHorizontalRules($text) {
- # Do Horizontal Rules:
- return preg_replace(
- '{
- ^[ ]{0,3} # Leading space
- ([-*_]) # $1: First marker
- (?> # Repeated marker group
- [ ]{0,2} # Zero, one, or two spaces.
- \1 # Marker character
- ){2,} # Group repeated at least twice
- [ ]* # Tailing spaces
- $ # End of line.
- }mx',
- "\n".$this->hashBlock(" empty_element_suffix")."\n",
- $text);
- }
-
-
- var $span_gamut = array(
- #
- # These are all the transformations that occur *within* block-level
- # tags like paragraphs, headers, and list items.
- #
- # Process character escapes, code spans, and inline HTML
- # in one shot.
- "parseSpan" => -30,
-
- # Process anchor and image tags. Images must come first,
- # because ![foo][f] looks like an anchor.
- "doImages" => 10,
- "doAnchors" => 20,
-
- # Make links out of things like ` `
- # Must come after doAnchors, because you can use < and >
- # delimiters in inline links like [this]().
- "doAutoLinks" => 30,
- "encodeAmpsAndAngles" => 40,
-
- "doItalicsAndBold" => 50,
- "doHardBreaks" => 60,
- );
-
- function runSpanGamut($text) {
- #
- # Run span gamut tranformations.
- #
- foreach ($this->span_gamut as $method => $priority) {
- $text = $this->$method($text);
- }
-
- return $text;
- }
-
-
- function doHardBreaks($text) {
- # Do hard breaks:
- return preg_replace_callback('/ {2,}\n/',
- array(&$this, '_doHardBreaks_callback'), $text);
- }
- function _doHardBreaks_callback($matches) {
- return $this->hashPart(" empty_element_suffix\n");
- }
-
-
- function doAnchors($text) {
- #
- # Turn Markdown link shortcuts into XHTML tags.
- #
- if ($this->in_anchor) return $text;
- $this->in_anchor = true;
-
- #
- # First, handle reference-style links: [link text] [id]
- #
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- \[
- ('.$this->nested_brackets_re.') # link text = $2
- \]
-
- [ ]? # one optional space
- (?:\n[ ]*)? # one optional newline followed by spaces
-
- \[
- (.*?) # id = $3
- \]
- )
- }xs',
- array(&$this, '_doAnchors_reference_callback'), $text);
-
- #
- # Next, inline-style links: [link text](url "optional title")
- #
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- \[
- ('.$this->nested_brackets_re.') # link text = $2
- \]
- \( # literal paren
- [ \n]*
- (?:
- <(.+?)> # href = $3
- |
- ('.$this->nested_url_parenthesis_re.') # href = $4
- )
- [ \n]*
- ( # $5
- ([\'"]) # quote char = $6
- (.*?) # Title = $7
- \6 # matching quote
- [ \n]* # ignore any spaces/tabs between closing quote and )
- )? # title is optional
- \)
- )
- }xs',
- array(&$this, '_doAnchors_inline_callback'), $text);
-
- #
- # Last, handle reference-style shortcuts: [link text]
- # These must come last in case you've also got [link text][1]
- # or [link text](/foo)
- #
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- \[
- ([^\[\]]+) # link text = $2; can\'t contain [ or ]
- \]
- )
- }xs',
- array(&$this, '_doAnchors_reference_callback'), $text);
-
- $this->in_anchor = false;
- return $text;
- }
- function _doAnchors_reference_callback($matches) {
- $whole_match = $matches[1];
- $link_text = $matches[2];
- $link_id =& $matches[3];
-
- if ($link_id == "") {
- # for shortcut links like [this][] or [this].
- $link_id = $link_text;
- }
-
- # lower-case and turn embedded newlines into spaces
- $link_id = strtolower($link_id);
- $link_id = preg_replace('{[ ]?\n}', ' ', $link_id);
-
- if (isset($this->urls[$link_id])) {
- $url = $this->urls[$link_id];
- $url = $this->encodeAttribute($url);
-
- $result = " titles[$link_id] ) ) {
- $title = $this->titles[$link_id];
- $title = $this->encodeAttribute($title);
- $result .= " title=\"$title\"";
- }
-
- $link_text = $this->runSpanGamut($link_text);
- $result .= ">$link_text ";
- $result = $this->hashPart($result);
- }
- else {
- $result = $whole_match;
- }
- return $result;
- }
- function _doAnchors_inline_callback($matches) {
- $whole_match = $matches[1];
- $link_text = $this->runSpanGamut($matches[2]);
- $url = $matches[3] == '' ? $matches[4] : $matches[3];
- $title =& $matches[7];
-
- $url = $this->encodeAttribute($url);
-
- $result = "encodeAttribute($title);
- $result .= " title=\"$title\"";
- }
-
- $link_text = $this->runSpanGamut($link_text);
- $result .= ">$link_text ";
-
- return $this->hashPart($result);
- }
-
-
- function doImages($text) {
- #
- # Turn Markdown image shortcuts into tags.
- #
- #
- # First, handle reference-style labeled images: ![alt text][id]
- #
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- !\[
- ('.$this->nested_brackets_re.') # alt text = $2
- \]
-
- [ ]? # one optional space
- (?:\n[ ]*)? # one optional newline followed by spaces
-
- \[
- (.*?) # id = $3
- \]
-
- )
- }xs',
- array(&$this, '_doImages_reference_callback'), $text);
-
- #
- # Next, handle inline images: ![alt text](url "optional title")
- # Don't forget: encode * and _
- #
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- !\[
- ('.$this->nested_brackets_re.') # alt text = $2
- \]
- \s? # One optional whitespace character
- \( # literal paren
- [ \n]*
- (?:
- <(\S*)> # src url = $3
- |
- ('.$this->nested_url_parenthesis_re.') # src url = $4
- )
- [ \n]*
- ( # $5
- ([\'"]) # quote char = $6
- (.*?) # title = $7
- \6 # matching quote
- [ \n]*
- )? # title is optional
- \)
- )
- }xs',
- array(&$this, '_doImages_inline_callback'), $text);
-
- return $text;
- }
- function _doImages_reference_callback($matches) {
- $whole_match = $matches[1];
- $alt_text = $matches[2];
- $link_id = strtolower($matches[3]);
-
- if ($link_id == "") {
- $link_id = strtolower($alt_text); # for shortcut links like ![this][].
- }
-
- $alt_text = $this->encodeAttribute($alt_text);
- if (isset($this->urls[$link_id])) {
- $url = $this->encodeAttribute($this->urls[$link_id]);
- $result = " titles[$link_id])) {
- $title = $this->titles[$link_id];
- $title = $this->encodeAttribute($title);
- $result .= " title=\"$title\"";
- }
- $result .= $this->empty_element_suffix;
- $result = $this->hashPart($result);
- }
- else {
- # If there's no such link ID, leave intact:
- $result = $whole_match;
- }
-
- return $result;
- }
- function _doImages_inline_callback($matches) {
- $whole_match = $matches[1];
- $alt_text = $matches[2];
- $url = $matches[3] == '' ? $matches[4] : $matches[3];
- $title =& $matches[7];
-
- $alt_text = $this->encodeAttribute($alt_text);
- $url = $this->encodeAttribute($url);
- $result = " encodeAttribute($title);
- $result .= " title=\"$title\""; # $title already quoted
- }
- $result .= $this->empty_element_suffix;
-
- return $this->hashPart($result);
- }
-
-
- function doHeaders($text) {
- # Setext-style headers:
- # Header 1
- # ========
- #
- # Header 2
- # --------
- #
- $text = preg_replace_callback('{ ^(.+?)[ ]*\n(=+|-+)[ ]*\n+ }mx',
- array(&$this, '_doHeaders_callback_setext'), $text);
-
- # atx-style headers:
- # # Header 1
- # ## Header 2
- # ## Header 2 with closing hashes ##
- # ...
- # ###### Header 6
- #
- $text = preg_replace_callback('{
- ^(\#{1,6}) # $1 = string of #\'s
- [ ]*
- (.+?) # $2 = Header text
- [ ]*
- \#* # optional closing #\'s (not counted)
- \n+
- }xm',
- array(&$this, '_doHeaders_callback_atx'), $text);
-
- return $text;
- }
- function _doHeaders_callback_setext($matches) {
- # Terrible hack to check we haven't found an empty list item.
- if ($matches[2] == '-' && preg_match('{^-(?: |$)}', $matches[1]))
- return $matches[0];
-
- $level = $matches[2]{0} == '=' ? 1 : 2;
- $block = "".$this->runSpanGamut($matches[1])." ";
- return "\n" . $this->hashBlock($block) . "\n\n";
- }
- function _doHeaders_callback_atx($matches) {
- $level = strlen($matches[1]);
- $block = "".$this->runSpanGamut($matches[2])." ";
- return "\n" . $this->hashBlock($block) . "\n\n";
- }
-
-
- function doLists($text) {
- #
- # Form HTML ordered (numbered) and unordered (bulleted) lists.
- #
- $less_than_tab = $this->tab_width - 1;
-
- # Re-usable patterns to match list item bullets and number markers:
- $marker_ul_re = '[*+-]';
- $marker_ol_re = '\d+[\.]';
- $marker_any_re = "(?:$marker_ul_re|$marker_ol_re)";
-
- $markers_relist = array(
- $marker_ul_re => $marker_ol_re,
- $marker_ol_re => $marker_ul_re,
- );
-
- foreach ($markers_relist as $marker_re => $other_marker_re) {
- # Re-usable pattern to match any entirel ul or ol list:
- $whole_list_re = '
- ( # $1 = whole list
- ( # $2
- ([ ]{0,'.$less_than_tab.'}) # $3 = number of spaces
- ('.$marker_re.') # $4 = first list item marker
- [ ]+
- )
- (?s:.+?)
- ( # $5
- \z
- |
- \n{2,}
- (?=\S)
- (?! # Negative lookahead for another list item marker
- [ ]*
- '.$marker_re.'[ ]+
- )
- |
- (?= # Lookahead for another kind of list
- \n
- \3 # Must have the same indentation
- '.$other_marker_re.'[ ]+
- )
- )
- )
- '; // mx
-
- # We use a different prefix before nested lists than top-level lists.
- # See extended comment in _ProcessListItems().
-
- if ($this->list_level) {
- $text = preg_replace_callback('{
- ^
- '.$whole_list_re.'
- }mx',
- array(&$this, '_doLists_callback'), $text);
- }
- else {
- $text = preg_replace_callback('{
- (?:(?<=\n)\n|\A\n?) # Must eat the newline
- '.$whole_list_re.'
- }mx',
- array(&$this, '_doLists_callback'), $text);
- }
- }
-
- return $text;
- }
- function _doLists_callback($matches) {
- # Re-usable patterns to match list item bullets and number markers:
- $marker_ul_re = '[*+-]';
- $marker_ol_re = '\d+[\.]';
- $marker_any_re = "(?:$marker_ul_re|$marker_ol_re)";
-
- $list = $matches[1];
- $list_type = preg_match("/$marker_ul_re/", $matches[4]) ? "ul" : "ol";
-
- $marker_any_re = ( $list_type == "ul" ? $marker_ul_re : $marker_ol_re );
-
- $list .= "\n";
- $result = $this->processListItems($list, $marker_any_re);
-
- $result = $this->hashBlock("<$list_type>\n" . $result . "$list_type>");
- return "\n". $result ."\n\n";
- }
-
- var $list_level = 0;
-
- function processListItems($list_str, $marker_any_re) {
- #
- # Process the contents of a single ordered or unordered list, splitting it
- # into individual list items.
- #
- # The $this->list_level global keeps track of when we're inside a list.
- # Each time we enter a list, we increment it; when we leave a list,
- # we decrement. If it's zero, we're not in a list anymore.
- #
- # We do this because when we're not inside a list, we want to treat
- # something like this:
- #
- # I recommend upgrading to version
- # 8. Oops, now this line is treated
- # as a sub-list.
- #
- # As a single paragraph, despite the fact that the second line starts
- # with a digit-period-space sequence.
- #
- # Whereas when we're inside a list (or sub-list), that line will be
- # treated as the start of a sub-list. What a kludge, huh? This is
- # an aspect of Markdown's syntax that's hard to parse perfectly
- # without resorting to mind-reading. Perhaps the solution is to
- # change the syntax rules such that sub-lists must start with a
- # starting cardinal number; e.g. "1." or "a.".
-
- $this->list_level++;
-
- # trim trailing blank lines:
- $list_str = preg_replace("/\n{2,}\\z/", "\n", $list_str);
-
- $list_str = preg_replace_callback('{
- (\n)? # leading line = $1
- (^[ ]*) # leading whitespace = $2
- ('.$marker_any_re.' # list marker and space = $3
- (?:[ ]+|(?=\n)) # space only required if item is not empty
- )
- ((?s:.*?)) # list item text = $4
- (?:(\n+(?=\n))|\n) # tailing blank line = $5
- (?= \n* (\z | \2 ('.$marker_any_re.') (?:[ ]+|(?=\n))))
- }xm',
- array(&$this, '_processListItems_callback'), $list_str);
-
- $this->list_level--;
- return $list_str;
- }
- function _processListItems_callback($matches) {
- $item = $matches[4];
- $leading_line =& $matches[1];
- $leading_space =& $matches[2];
- $marker_space = $matches[3];
- $tailing_blank_line =& $matches[5];
-
- if ($leading_line || $tailing_blank_line ||
- preg_match('/\n{2,}/', $item))
- {
- # Replace marker with the appropriate whitespace indentation
- $item = $leading_space . str_repeat(' ', strlen($marker_space)) . $item;
- $item = $this->runBlockGamut($this->outdent($item)."\n");
- }
- else {
- # Recursion for sub-lists:
- $item = $this->doLists($this->outdent($item));
- $item = preg_replace('/\n+$/', '', $item);
- $item = $this->runSpanGamut($item);
- }
-
- return "" . $item . " \n";
- }
-
-
- function doCodeBlocks($text) {
- #
- # Process Markdown `` blocks.
- #
- $text = preg_replace_callback('{
- (?:\n\n|\A\n?)
- ( # $1 = the code block -- one or more lines, starting with a space/tab
- (?>
- [ ]{'.$this->tab_width.'} # Lines must start with a tab or a tab-width of spaces
- .*\n+
- )+
- )
- ((?=^[ ]{0,'.$this->tab_width.'}\S)|\Z) # Lookahead for non-space at line-start, or end of doc
- }xm',
- array(&$this, '_doCodeBlocks_callback'), $text);
-
- return $text;
- }
- function _doCodeBlocks_callback($matches) {
- $codeblock = $matches[1];
-
- $codeblock = $this->outdent($codeblock);
- $codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES);
-
- # trim leading newlines and trailing newlines
- $codeblock = preg_replace('/\A\n+|\n+\z/', '', $codeblock);
-
- $codeblock = "$codeblock\n
";
- return "\n\n".$this->hashBlock($codeblock)."\n\n";
- }
-
-
- function makeCodeSpan($code) {
- #
- # Create a code span markup for $code. Called from handleSpanToken.
- #
- $code = htmlspecialchars(trim($code), ENT_NOQUOTES);
- return $this->hashPart("$code
");
- }
-
-
- var $em_relist = array(
- '' => '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? '(?:(? '(?<=\S|^)(? '(?<=\S|^)(?em_relist as $em => $em_re) {
- foreach ($this->strong_relist as $strong => $strong_re) {
- # Construct list of allowed token expressions.
- $token_relist = array();
- if (isset($this->em_strong_relist["$em$strong"])) {
- $token_relist[] = $this->em_strong_relist["$em$strong"];
- }
- $token_relist[] = $em_re;
- $token_relist[] = $strong_re;
-
- # Construct master expression from list.
- $token_re = '{('. implode('|', $token_relist) .')}';
- $this->em_strong_prepared_relist["$em$strong"] = $token_re;
- }
- }
- }
-
- function doItalicsAndBold($text) {
- $token_stack = array('');
- $text_stack = array('');
- $em = '';
- $strong = '';
- $tree_char_em = false;
-
- while (1) {
- #
- # Get prepared regular expression for seraching emphasis tokens
- # in current context.
- #
- $token_re = $this->em_strong_prepared_relist["$em$strong"];
-
- #
- # Each loop iteration search for the next emphasis token.
- # Each token is then passed to handleSpanToken.
- #
- $parts = preg_split($token_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE);
- $text_stack[0] .= $parts[0];
- $token =& $parts[1];
- $text =& $parts[2];
-
- if (empty($token)) {
- # Reached end of text span: empty stack without emitting.
- # any more emphasis.
- while ($token_stack[0]) {
- $text_stack[1] .= array_shift($token_stack);
- $text_stack[0] .= array_shift($text_stack);
- }
- break;
- }
-
- $token_len = strlen($token);
- if ($tree_char_em) {
- # Reached closing marker while inside a three-char emphasis.
- if ($token_len == 3) {
- # Three-char closing marker, close em and strong.
- array_shift($token_stack);
- $span = array_shift($text_stack);
- $span = $this->runSpanGamut($span);
- $span = "$span ";
- $text_stack[0] .= $this->hashPart($span);
- $em = '';
- $strong = '';
- } else {
- # Other closing marker: close one em or strong and
- # change current token state to match the other
- $token_stack[0] = str_repeat($token{0}, 3-$token_len);
- $tag = $token_len == 2 ? "strong" : "em";
- $span = $text_stack[0];
- $span = $this->runSpanGamut($span);
- $span = "<$tag>$span$tag>";
- $text_stack[0] = $this->hashPart($span);
- $$tag = ''; # $$tag stands for $em or $strong
- }
- $tree_char_em = false;
- } else if ($token_len == 3) {
- if ($em) {
- # Reached closing marker for both em and strong.
- # Closing strong marker:
- for ($i = 0; $i < 2; ++$i) {
- $shifted_token = array_shift($token_stack);
- $tag = strlen($shifted_token) == 2 ? "strong" : "em";
- $span = array_shift($text_stack);
- $span = $this->runSpanGamut($span);
- $span = "<$tag>$span$tag>";
- $text_stack[0] .= $this->hashPart($span);
- $$tag = ''; # $$tag stands for $em or $strong
- }
- } else {
- # Reached opening three-char emphasis marker. Push on token
- # stack; will be handled by the special condition above.
- $em = $token{0};
- $strong = "$em$em";
- array_unshift($token_stack, $token);
- array_unshift($text_stack, '');
- $tree_char_em = true;
- }
- } else if ($token_len == 2) {
- if ($strong) {
- # Unwind any dangling emphasis marker:
- if (strlen($token_stack[0]) == 1) {
- $text_stack[1] .= array_shift($token_stack);
- $text_stack[0] .= array_shift($text_stack);
- }
- # Closing strong marker:
- array_shift($token_stack);
- $span = array_shift($text_stack);
- $span = $this->runSpanGamut($span);
- $span = "$span ";
- $text_stack[0] .= $this->hashPart($span);
- $strong = '';
- } else {
- array_unshift($token_stack, $token);
- array_unshift($text_stack, '');
- $strong = $token;
- }
- } else {
- # Here $token_len == 1
- if ($em) {
- if (strlen($token_stack[0]) == 1) {
- # Closing emphasis marker:
- array_shift($token_stack);
- $span = array_shift($text_stack);
- $span = $this->runSpanGamut($span);
- $span = "$span ";
- $text_stack[0] .= $this->hashPart($span);
- $em = '';
- } else {
- $text_stack[0] .= $token;
- }
- } else {
- array_unshift($token_stack, $token);
- array_unshift($text_stack, '');
- $em = $token;
- }
- }
- }
- return $text_stack[0];
- }
-
-
- function doBlockQuotes($text) {
- $text = preg_replace_callback('/
- ( # Wrap whole match in $1
- (?>
- ^[ ]*>[ ]? # ">" at the start of a line
- .+\n # rest of the first line
- (.+\n)* # subsequent consecutive lines
- \n* # blanks
- )+
- )
- /xm',
- array(&$this, '_doBlockQuotes_callback'), $text);
-
- return $text;
- }
- function _doBlockQuotes_callback($matches) {
- $bq = $matches[1];
- # trim one level of quoting - trim whitespace-only lines
- $bq = preg_replace('/^[ ]*>[ ]?|^[ ]+$/m', '', $bq);
- $bq = $this->runBlockGamut($bq); # recurse
-
- $bq = preg_replace('/^/m', " ", $bq);
- # These leading spaces cause problem with content,
- # so we need to fix that:
- $bq = preg_replace_callback('{(\s*.+? )}sx',
- array(&$this, '_doBlockQuotes_callback2'), $bq);
-
- return "\n". $this->hashBlock("\n$bq\n ")."\n\n";
- }
- function _doBlockQuotes_callback2($matches) {
- $pre = $matches[1];
- $pre = preg_replace('/^ /m', '', $pre);
- return $pre;
- }
-
-
- function formParagraphs($text) {
- #
- # Params:
- # $text - string to process with html tags
- #
- # Strip leading and trailing lines:
- $text = preg_replace('/\A\n+|\n+\z/', '', $text);
-
- $grafs = preg_split('/\n{2,}/', $text, -1, PREG_SPLIT_NO_EMPTY);
-
- #
- # Wrap
tags and unhashify HTML blocks
- #
- foreach ($grafs as $key => $value) {
- if (!preg_match('/^B\x1A[0-9]+B$/', $value)) {
- # Is a paragraph.
- $value = $this->runSpanGamut($value);
- $value = preg_replace('/^([ ]*)/', "
", $value);
- $value .= "
";
- $grafs[$key] = $this->unhash($value);
- }
- else {
- # Is a block.
- # Modify elements of @grafs in-place...
- $graf = $value;
- $block = $this->html_hashes[$graf];
- $graf = $block;
-// if (preg_match('{
-// \A
-// ( # $1 = tag
-//
]*
-// \b
-// markdown\s*=\s* ([\'"]) # $2 = attr quote char
-// 1
-// \2
-// [^>]*
-// >
-// )
-// ( # $3 = contents
-// .*
-// )
-// (
) # $4 = closing tag
-// \z
-// }xs', $block, $matches))
-// {
-// list(, $div_open, , $div_content, $div_close) = $matches;
-//
-// # We can't call Markdown(), because that resets the hash;
-// # that initialization code should be pulled into its own sub, though.
-// $div_content = $this->hashHTMLBlocks($div_content);
-//
-// # Run document gamut methods on the content.
-// foreach ($this->document_gamut as $method => $priority) {
-// $div_content = $this->$method($div_content);
-// }
-//
-// $div_open = preg_replace(
-// '{\smarkdown\s*=\s*([\'"]).+?\1}', '', $div_open);
-//
-// $graf = $div_open . "\n" . $div_content . "\n" . $div_close;
-// }
- $grafs[$key] = $graf;
- }
- }
-
- return implode("\n\n", $grafs);
- }
-
-
- function encodeAttribute($text) {
- #
- # Encode text for a double-quoted HTML attribute. This function
- # is *not* suitable for attributes enclosed in single quotes.
- #
- $text = $this->encodeAmpsAndAngles($text);
- $text = str_replace('"', '"', $text);
- return $text;
- }
-
-
- function encodeAmpsAndAngles($text) {
- #
- # Smart processing for ampersands and angle brackets that need to
- # be encoded. Valid character entities are left alone unless the
- # no-entities mode is set.
- #
- if ($this->no_entities) {
- $text = str_replace('&', '&', $text);
- } else {
- # Ampersand-encoding based entirely on Nat Irons's Amputator
- # MT plugin:
- $text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/',
- '&', $text);;
- }
- # Encode remaining <'s
- $text = str_replace('<', '<', $text);
-
- return $text;
- }
-
-
- function doAutoLinks($text) {
- $text = preg_replace_callback('{<((https?|ftp|dict):[^\'">\s]+)>}i',
- array(&$this, '_doAutoLinks_url_callback'), $text);
-
- # Email addresses:
- $text = preg_replace_callback('{
- <
- (?:mailto:)?
- (
- (?:
- [-!#$%&\'*+/=?^_`.{|}~\w\x80-\xFF]+
- |
- ".*?"
- )
- \@
- (?:
- [-a-z0-9\x80-\xFF]+(\.[-a-z0-9\x80-\xFF]+)*\.[a-z]+
- |
- \[[\d.a-fA-F:]+\] # IPv4 & IPv6
- )
- )
- >
- }xi',
- array(&$this, '_doAutoLinks_email_callback'), $text);
- $text = preg_replace_callback('{<(tel:([^\'">\s]+))>}i',array(&$this, '_doAutoLinks_tel_callback'), $text);
-
- return $text;
- }
- function _doAutoLinks_tel_callback($matches) {
- $url = $this->encodeAttribute($matches[1]);
- $tel = $this->encodeAttribute($matches[2]);
- $link = "$tel ";
- return $this->hashPart($link);
- }
- function _doAutoLinks_url_callback($matches) {
- $url = $this->encodeAttribute($matches[1]);
- $link = "$url ";
- return $this->hashPart($link);
- }
- function _doAutoLinks_email_callback($matches) {
- $address = $matches[1];
- $link = $this->encodeEmailAddress($address);
- return $this->hashPart($link);
- }
-
-
- function encodeEmailAddress($addr) {
- #
- # Input: an email address, e.g. "foo@example.com"
- #
- # Output: the email address as a mailto link, with each character
- # of the address encoded as either a decimal or hex entity, in
- # the hopes of foiling most address harvesting spam bots. E.g.:
- #
- # foo@exampl
- # e.com
- #
- # Based by a filter by Matthew Wickline, posted to BBEdit-Talk.
- # With some optimizations by Milian Wolff.
- #
- $addr = "mailto:" . $addr;
- $chars = preg_split('/(? $char) {
- $ord = ord($char);
- # Ignore non-ascii chars.
- if ($ord < 128) {
- $r = ($seed * (1 + $key)) % 100; # Pseudo-random function.
- # roughly 10% raw, 45% hex, 45% dec
- # '@' *must* be encoded. I insist.
- if ($r > 90 && $char != '@') /* do nothing */;
- else if ($r < 45) $chars[$key] = ''.dechex($ord).';';
- else $chars[$key] = ''.$ord.';';
- }
- }
-
- $addr = implode('', $chars);
- $text = implode('', array_slice($chars, 7)); # text without `mailto:`
- $addr = "$text ";
-
- return $addr;
- }
-
-
- function parseSpan($str) {
- #
- # Take the string $str and parse it into tokens, hashing embeded HTML,
- # escaped characters and handling code spans.
- #
- $output = '';
-
- $span_re = '{
- (
- \\\\'.$this->escape_chars_re.'
- |
- (?no_markup ? '' : '
- |
- # comment
- |
- <\?.*?\?> | <%.*?%> # processing instruction
- |
- <[!$]?[-a-zA-Z0-9:_]+ # regular tags
- (?>
- \s
- (?>[^"\'>]+|"[^"]*"|\'[^\']*\')*
- )?
- >
- |
- <[-a-zA-Z0-9:_]+\s*/> # xml-style empty tag
- |
- [-a-zA-Z0-9:_]+\s*> # closing tag
- ').'
- )
- }xs';
-
- while (1) {
- #
- # Each loop iteration seach for either the next tag, the next
- # openning code span marker, or the next escaped character.
- # Each token is then passed to handleSpanToken.
- #
- $parts = preg_split($span_re, $str, 2, PREG_SPLIT_DELIM_CAPTURE);
-
- # Create token from text preceding tag.
- if ($parts[0] != "") {
- $output .= $parts[0];
- }
-
- # Check if we reach the end.
- if (isset($parts[1])) {
- $output .= $this->handleSpanToken($parts[1], $parts[2]);
- $str = $parts[2];
- }
- else {
- break;
- }
- }
-
- return $output;
- }
-
-
- function handleSpanToken($token, &$str) {
- #
- # Handle $token provided by parseSpan by determining its nature and
- # returning the corresponding value that should replace it.
- #
- switch ($token{0}) {
- case "\\":
- return $this->hashPart("". ord($token{1}). ";");
- case "`":
- # Search for end marker in remaining text.
- if (preg_match('/^(.*?[^`])'.preg_quote($token).'(?!`)(.*)$/sm',
- $str, $matches))
- {
- $str = $matches[2];
- $codespan = $this->makeCodeSpan($matches[1]);
- return $this->hashPart($codespan);
- }
- return $token; // return as text since no ending marker found.
- default:
- return $this->hashPart($token);
- }
- }
-
-
- function outdent($text) {
- #
- # Remove one level of line-leading tabs or spaces
- #
- return preg_replace('/^(\t|[ ]{1,'.$this->tab_width.'})/m', '', $text);
- }
-
-
- # String length function for detab. `_initDetab` will create a function to
- # hanlde UTF-8 if the default function does not exist.
- var $utf8_strlen = 'mb_strlen';
-
- function detab($text) {
- #
- # Replace tabs with the appropriate amount of space.
- #
- # For each line we separate the line in blocks delemited by
- # tab characters. Then we reconstruct every line by adding the
- # appropriate number of space between each blocks.
-
- $text = preg_replace_callback('/^.*\t.*$/m',
- array(&$this, '_detab_callback'), $text);
-
- return $text;
- }
- function _detab_callback($matches) {
- $line = $matches[0];
- $strlen = $this->utf8_strlen; # strlen function for UTF-8.
-
- # Split in blocks.
- $blocks = explode("\t", $line);
- # Add each blocks to the line.
- $line = $blocks[0];
- unset($blocks[0]); # Do not add first block twice.
- foreach ($blocks as $block) {
- # Calculate amount of space, insert spaces, insert block.
- $amount = $this->tab_width -
- $strlen($line, 'UTF-8') % $this->tab_width;
- $line .= str_repeat(" ", $amount) . $block;
- }
- return $line;
- }
- function _initDetab() {
- #
- # Check for the availability of the function in the `utf8_strlen` property
- # (initially `mb_strlen`). If the function is not available, create a
- # function that will loosely count the number of UTF-8 characters with a
- # regular expression.
- #
- if (function_exists($this->utf8_strlen)) return;
- $this->utf8_strlen = create_function('$text', 'return preg_match_all(
- "/[\\\\x00-\\\\xBF]|[\\\\xC0-\\\\xFF][\\\\x80-\\\\xBF]*/",
- $text, $m);');
- }
-
-
- function unhash($text) {
- #
- # Swap back in all the tags hashed by _HashHTMLBlocks.
- #
- return preg_replace_callback('/(.)\x1A[0-9]+\1/',
- array(&$this, '_unhash_callback'), $text);
- }
- function _unhash_callback($matches) {
- return $this->html_hashes[$matches[0]];
- }
-
-}
-
-
-#
-# Markdown Extra Parser Class
-#
-
-class MarkdownExtra_Parser extends Markdown_Parser {
-
- ### Configuration Variables ###
-
- # Prefix for footnote ids.
- var $fn_id_prefix = "";
-
- # Optional title attribute for footnote links and backlinks.
- var $fn_link_title = MARKDOWN_FN_LINK_TITLE;
- var $fn_backlink_title = MARKDOWN_FN_BACKLINK_TITLE;
-
- # Optional class attribute for footnote links and backlinks.
- var $fn_link_class = MARKDOWN_FN_LINK_CLASS;
- var $fn_backlink_class = MARKDOWN_FN_BACKLINK_CLASS;
-
- # Optional class prefix for fenced code block.
- var $code_class_prefix = MARKDOWN_CODE_CLASS_PREFIX;
- # Class attribute for code blocks goes on the `code` tag;
- # setting this to true will put attributes on the `pre` tag instead.
- var $code_attr_on_pre = MARKDOWN_CODE_ATTR_ON_PRE;
-
- # Predefined abbreviations.
- var $predef_abbr = array();
-
-
- ### Parser Implementation ###
-
- function MarkdownExtra_Parser() {
- #
- # Constructor function. Initialize the parser object.
- #
- # Add extra escapable characters before parent constructor
- # initialize the table.
- $this->escape_chars .= ':|';
-
- # Insert extra document, block, and span transformations.
- # Parent constructor will do the sorting.
- $this->document_gamut += array(
- "doFencedCodeBlocks" => 5,
- "stripFootnotes" => 15,
- "stripAbbreviations" => 25,
- "appendFootnotes" => 50,
- );
- $this->block_gamut += array(
- "doFencedCodeBlocks" => 5,
- "doTables" => 15,
- "doDefLists" => 45,
- );
- $this->span_gamut += array(
- "doFootnotes" => 5,
- "doAbbreviations" => 70,
- );
-
- parent::Markdown_Parser();
- }
-
-
- # Extra variables used during extra transformations.
- var $footnotes = array();
- var $footnotes_ordered = array();
- var $footnotes_ref_count = array();
- var $footnotes_numbers = array();
- var $abbr_desciptions = array();
- var $abbr_word_re = '';
-
- # Give the current footnote number.
- var $footnote_counter = 1;
-
-
- function setup() {
- #
- # Setting up Extra-specific variables.
- #
- parent::setup();
-
- $this->footnotes = array();
- $this->footnotes_ordered = array();
- $this->footnotes_ref_count = array();
- $this->footnotes_numbers = array();
- $this->abbr_desciptions = array();
- $this->abbr_word_re = '';
- $this->footnote_counter = 1;
-
- foreach ($this->predef_abbr as $abbr_word => $abbr_desc) {
- if ($this->abbr_word_re)
- $this->abbr_word_re .= '|';
- $this->abbr_word_re .= preg_quote($abbr_word);
- $this->abbr_desciptions[$abbr_word] = trim($abbr_desc);
- }
- }
-
- function teardown() {
- #
- # Clearing Extra-specific variables.
- #
- $this->footnotes = array();
- $this->footnotes_ordered = array();
- $this->footnotes_ref_count = array();
- $this->footnotes_numbers = array();
- $this->abbr_desciptions = array();
- $this->abbr_word_re = '';
-
- parent::teardown();
- }
-
-
- ### Extra Attribute Parser ###
-
- # Expression to use to catch attributes (includes the braces)
- var $id_class_attr_catch_re = '\{((?:[ ]*[#.][-_:a-zA-Z0-9]+){1,})[ ]*\}';
- # Expression to use when parsing in a context when no capture is desired
- var $id_class_attr_nocatch_re = '\{(?:[ ]*[#.][-_:a-zA-Z0-9]+){1,}[ ]*\}';
-
- function doExtraAttributes($tag_name, $attr) {
- #
- # Parse attributes caught by the $this->id_class_attr_catch_re expression
- # and return the HTML-formatted list of attributes.
- #
- # Currently supported attributes are .class and #id.
- #
- if (empty($attr)) return "";
-
- # Split on components
- preg_match_all('/[#.][-_:a-zA-Z0-9]+/', $attr, $matches);
- $elements = $matches[0];
-
- # handle classes and ids (only first id taken into account)
- $classes = array();
- $id = false;
- foreach ($elements as $element) {
- if ($element{0} == '.') {
- $classes[] = substr($element, 1);
- } else if ($element{0} == '#') {
- if ($id === false) $id = substr($element, 1);
- }
- }
-
- # compose attributes as string
- $attr_str = "";
- if (!empty($id)) {
- $attr_str .= ' id="'.$id.'"';
- }
- if (!empty($classes)) {
- $attr_str .= ' class="'.implode(" ", $classes).'"';
- }
- return $attr_str;
- }
-
-
- function stripLinkDefinitions($text) {
- #
- # Strips link definitions from text, stores the URLs and titles in
- # hash references.
- #
- $less_than_tab = $this->tab_width - 1;
-
- # Link defs are in the form: ^[id]: url "optional title"
- $text = preg_replace_callback('{
- ^[ ]{0,'.$less_than_tab.'}\[(.+)\][ ]?: # id = $1
- [ ]*
- \n? # maybe *one* newline
- [ ]*
- (?:
- <(.+?)> # url = $2
- |
- (\S+?) # url = $3
- )
- [ ]*
- \n? # maybe one newline
- [ ]*
- (?:
- (?<=\s) # lookbehind for whitespace
- ["(]
- (.*?) # title = $4
- [")]
- [ ]*
- )? # title is optional
- (?:[ ]* '.$this->id_class_attr_catch_re.' )? # $5 = extra id & class attr
- (?:\n+|\Z)
- }xm',
- array(&$this, '_stripLinkDefinitions_callback'),
- $text);
- return $text;
- }
- function _stripLinkDefinitions_callback($matches) {
- $link_id = strtolower($matches[1]);
- $url = $matches[2] == '' ? $matches[3] : $matches[2];
- $this->urls[$link_id] = $url;
- $this->titles[$link_id] =& $matches[4];
- $this->ref_attr[$link_id] = $this->doExtraAttributes("", $dummy =& $matches[5]);
- return ''; # String that will replace the block
- }
-
-
- ### HTML Block Parser ###
-
- # Tags that are always treated as block tags:
- var $block_tags_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|form|fieldset|iframe|hr|legend|article|section|nav|aside|hgroup|header|footer|figcaption';
-
- # Tags treated as block tags only if the opening tag is alone on its line:
- var $context_block_tags_re = 'script|noscript|ins|del|iframe|object|source|track|param|math|svg|canvas|audio|video';
-
- # Tags where markdown="1" default to span mode:
- var $contain_span_tags_re = 'p|h[1-6]|li|dd|dt|td|th|legend|address';
-
- # Tags which must not have their contents modified, no matter where
- # they appear:
- var $clean_tags_re = 'script|math|svg';
-
- # Tags that do not need to be closed.
- var $auto_close_tags_re = 'hr|img|param|source|track';
-
-
- function hashHTMLBlocks($text) {
- #
- # Hashify HTML Blocks and "clean tags".
- #
- # We only want to do this for block-level HTML tags, such as headers,
- # lists, and tables. That's because we still want to wrap s around
- # "paragraphs" that are wrapped in non-block-level tags, such as anchors,
- # phrase emphasis, and spans. The list of tags we're looking for is
- # hard-coded.
- #
- # This works by calling _HashHTMLBlocks_InMarkdown, which then calls
- # _HashHTMLBlocks_InHTML when it encounter block tags. When the markdown="1"
- # attribute is found within a tag, _HashHTMLBlocks_InHTML calls back
- # _HashHTMLBlocks_InMarkdown to handle the Markdown syntax within the tag.
- # These two functions are calling each other. It's recursive!
- #
- if ($this->no_markup) return $text;
-
- #
- # Call the HTML-in-Markdown hasher.
- #
- list($text, ) = $this->_hashHTMLBlocks_inMarkdown($text);
-
- return $text;
- }
- function _hashHTMLBlocks_inMarkdown($text, $indent = 0,
- $enclosing_tag_re = '', $span = false)
- {
- #
- # Parse markdown text, calling _HashHTMLBlocks_InHTML for block tags.
- #
- # * $indent is the number of space to be ignored when checking for code
- # blocks. This is important because if we don't take the indent into
- # account, something like this (which looks right) won't work as expected:
- #
- #
- #
- # Hello World. <-- Is this a Markdown code block or text?
- #
<-- Is this a Markdown code block or a real tag?
- #
- #
- # If you don't like this, just don't indent the tag on which
- # you apply the markdown="1" attribute.
- #
- # * If $enclosing_tag_re is not empty, stops at the first unmatched closing
- # tag with that name. Nested tags supported.
- #
- # * If $span is true, text inside must treated as span. So any double
- # newline will be replaced by a single newline so that it does not create
- # paragraphs.
- #
- # Returns an array of that form: ( processed text , remaining text )
- #
- if ($text === '') return array('', '');
-
- # Regex to check for the presense of newlines around a block tag.
- $newline_before_re = '/(?:^\n?|\n\n)*$/';
- $newline_after_re =
- '{
- ^ # Start of text following the tag.
- (?>[ ]*)? # Optional comment.
- [ ]*\n # Must be followed by newline.
- }xs';
-
- # Regex to match any tag.
- $block_tag_re =
- '{
- ( # $2: Capture whole tag.
- ? # Any opening or closing tag.
- (?> # Tag name.
- '.$this->block_tags_re.' |
- '.$this->context_block_tags_re.' |
- '.$this->clean_tags_re.' |
- (?!\s)'.$enclosing_tag_re.'
- )
- (?:
- (?=[\s"\'/a-zA-Z0-9]) # Allowed characters after tag name.
- (?>
- ".*?" | # Double quotes (can contain `>`)
- \'.*?\' | # Single quotes (can contain `>`)
- .+? # Anything but quotes and `>`.
- )*?
- )?
- > # End of tag.
- |
- # HTML Comment
- |
- <\?.*?\?> | <%.*?%> # Processing instruction
- |
- # CData Block
- '. ( !$span ? ' # If not in span.
- |
- # Indented code block
- (?: ^[ ]*\n | ^ | \n[ ]*\n )
- [ ]{'.($indent+4).'}[^\n]* \n
- (?>
- (?: [ ]{'.($indent+4).'}[^\n]* | [ ]* ) \n
- )*
- |
- # Fenced code block marker
- (?<= ^ | \n )
- [ ]{0,'.($indent+3).'}(?:~{3,}|`{3,})
- [ ]*
- (?:
- \.?[-_:a-zA-Z0-9]+ # standalone class name
- |
- '.$this->id_class_attr_nocatch_re.' # extra attributes
- )?
- [ ]*
- (?= \n )
- ' : '' ). ' # End (if not is span).
- |
- # Code span marker
- # Note, this regex needs to go after backtick fenced
- # code blocks but it should also be kept outside of the
- # "if not in span" condition adding backticks to the parser
- `+
- )
- }xs';
-
-
- $depth = 0; # Current depth inside the tag tree.
- $parsed = ""; # Parsed text that will be returned.
-
- #
- # Loop through every tag until we find the closing tag of the parent
- # or loop until reaching the end of text if no parent tag specified.
- #
- do {
- #
- # Split the text using the first $tag_match pattern found.
- # Text before pattern will be first in the array, text after
- # pattern will be at the end, and between will be any catches made
- # by the pattern.
- #
- $parts = preg_split($block_tag_re, $text, 2,
- PREG_SPLIT_DELIM_CAPTURE);
-
- # If in Markdown span mode, add a empty-string span-level hash
- # after each newline to prevent triggering any block element.
- if ($span) {
- $void = $this->hashPart("", ':');
- $newline = "$void\n";
- $parts[0] = $void . str_replace("\n", $newline, $parts[0]) . $void;
- }
-
- $parsed .= $parts[0]; # Text before current tag.
-
- # If end of $text has been reached. Stop loop.
- if (count($parts) < 3) {
- $text = "";
- break;
- }
-
- $tag = $parts[1]; # Tag to handle.
- $text = $parts[2]; # Remaining text after current tag.
- $tag_re = preg_quote($tag); # For use in a regular expression.
-
- #
- # Check for: Fenced code block marker.
- # Note: need to recheck the whole tag to disambiguate backtick
- # fences from code spans
- #
- if (preg_match('{^\n?([ ]{0,'.($indent+3).'})(~{3,}|`{3,})[ ]*(?:\.?[-_:a-zA-Z0-9]+|'.$this->id_class_attr_nocatch_re.')?[ ]*\n?$}', $tag, $capture)) {
- # Fenced code block marker: find matching end marker.
- $fence_indent = strlen($capture[1]); # use captured indent in re
- $fence_re = $capture[2]; # use captured fence in re
- if (preg_match('{^(?>.*\n)*?[ ]{'.($fence_indent).'}'.$fence_re.'[ ]*(?:\n|$)}', $text,
- $matches))
- {
- # End marker found: pass text unchanged until marker.
- $parsed .= $tag . $matches[0];
- $text = substr($text, strlen($matches[0]));
- }
- else {
- # No end marker: just skip it.
- $parsed .= $tag;
- }
- }
- #
- # Check for: Indented code block.
- #
- else if ($tag{0} == "\n" || $tag{0} == " ") {
- # Indented code block: pass it unchanged, will be handled
- # later.
- $parsed .= $tag;
- }
- #
- # Check for: Code span marker
- # Note: need to check this after backtick fenced code blocks
- #
- else if ($tag{0} == "`") {
- # Find corresponding end marker.
- $tag_re = preg_quote($tag);
- if (preg_match('{^(?>.+?|\n(?!\n))*?(?block_tags_re.')\b}', $tag) ||
- ( preg_match('{^<(?:'.$this->context_block_tags_re.')\b}', $tag) &&
- preg_match($newline_before_re, $parsed) &&
- preg_match($newline_after_re, $text) )
- )
- {
- # Need to parse tag and following text using the HTML parser.
- list($block_text, $text) =
- $this->_hashHTMLBlocks_inHTML($tag . $text, "hashBlock", true);
-
- # Make sure it stays outside of any paragraph by adding newlines.
- $parsed .= "\n\n$block_text\n\n";
- }
- #
- # Check for: Clean tag (like script, math)
- # HTML Comments, processing instructions.
- #
- else if (preg_match('{^<(?:'.$this->clean_tags_re.')\b}', $tag) ||
- $tag{1} == '!' || $tag{1} == '?')
- {
- # Need to parse tag and following text using the HTML parser.
- # (don't check for markdown attribute)
- list($block_text, $text) =
- $this->_hashHTMLBlocks_inHTML($tag . $text, "hashClean", false);
-
- $parsed .= $block_text;
- }
- #
- # Check for: Tag with same name as enclosing tag.
- #
- else if ($enclosing_tag_re !== '' &&
- # Same name as enclosing tag.
- preg_match('{^?(?:'.$enclosing_tag_re.')\b}', $tag))
- {
- #
- # Increase/decrease nested tag count.
- #
- if ($tag{1} == '/') $depth--;
- else if ($tag{strlen($tag)-2} != '/') $depth++;
-
- if ($depth < 0) {
- #
- # Going out of parent element. Clean up and break so we
- # return to the calling function.
- #
- $text = $tag . $text;
- break;
- }
-
- $parsed .= $tag;
- }
- else {
- $parsed .= $tag;
- }
- } while ($depth >= 0);
-
- return array($parsed, $text);
- }
- function _hashHTMLBlocks_inHTML($text, $hash_method, $md_attr) {
- #
- # Parse HTML, calling _HashHTMLBlocks_InMarkdown for block tags.
- #
- # * Calls $hash_method to convert any blocks.
- # * Stops when the first opening tag closes.
- # * $md_attr indicate if the use of the `markdown="1"` attribute is allowed.
- # (it is not inside clean tags)
- #
- # Returns an array of that form: ( processed text , remaining text )
- #
- if ($text === '') return array('', '');
-
- # Regex to match `markdown` attribute inside of a tag.
- $markdown_attr_re = '
- {
- \s* # Eat whitespace before the `markdown` attribute
- markdown
- \s*=\s*
- (?>
- (["\']) # $1: quote delimiter
- (.*?) # $2: attribute value
- \1 # matching delimiter
- |
- ([^\s>]*) # $3: unquoted attribute value
- )
- () # $4: make $3 always defined (avoid warnings)
- }xs';
-
- # Regex to match any tag.
- $tag_re = '{
- ( # $2: Capture whole tag.
- ? # Any opening or closing tag.
- [\w:$]+ # Tag name.
- (?:
- (?=[\s"\'/a-zA-Z0-9]) # Allowed characters after tag name.
- (?>
- ".*?" | # Double quotes (can contain `>`)
- \'.*?\' | # Single quotes (can contain `>`)
- .+? # Anything but quotes and `>`.
- )*?
- )?
- > # End of tag.
- |
- # HTML Comment
- |
- <\?.*?\?> | <%.*?%> # Processing instruction
- |
- # CData Block
- )
- }xs';
-
- $original_text = $text; # Save original text in case of faliure.
-
- $depth = 0; # Current depth inside the tag tree.
- $block_text = ""; # Temporary text holder for current text.
- $parsed = ""; # Parsed text that will be returned.
-
- #
- # Get the name of the starting tag.
- # (This pattern makes $base_tag_name_re safe without quoting.)
- #
- if (preg_match('/^<([\w:$]*)\b/', $text, $matches))
- $base_tag_name_re = $matches[1];
-
- #
- # Loop through every tag until we find the corresponding closing tag.
- #
- do {
- #
- # Split the text using the first $tag_match pattern found.
- # Text before pattern will be first in the array, text after
- # pattern will be at the end, and between will be any catches made
- # by the pattern.
- #
- $parts = preg_split($tag_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE);
-
- if (count($parts) < 3) {
- #
- # End of $text reached with unbalenced tag(s).
- # In that case, we return original text unchanged and pass the
- # first character as filtered to prevent an infinite loop in the
- # parent function.
- #
- return array($original_text{0}, substr($original_text, 1));
- }
-
- $block_text .= $parts[0]; # Text before current tag.
- $tag = $parts[1]; # Tag to handle.
- $text = $parts[2]; # Remaining text after current tag.
-
- #
- # Check for: Auto-close tag (like
)
- # Comments and Processing Instructions.
- #
- if (preg_match('{^?(?:'.$this->auto_close_tags_re.')\b}', $tag) ||
- $tag{1} == '!' || $tag{1} == '?')
- {
- # Just add the tag to the block as if it was text.
- $block_text .= $tag;
- }
- else {
- #
- # Increase/decrease nested tag count. Only do so if
- # the tag's name match base tag's.
- #
- if (preg_match('{^?'.$base_tag_name_re.'\b}', $tag)) {
- if ($tag{1} == '/') $depth--;
- else if ($tag{strlen($tag)-2} != '/') $depth++;
- }
-
- #
- # Check for `markdown="1"` attribute and handle it.
- #
- if ($md_attr &&
- preg_match($markdown_attr_re, $tag, $attr_m) &&
- preg_match('/^1|block|span$/', $attr_m[2] . $attr_m[3]))
- {
- # Remove `markdown` attribute from opening tag.
- $tag = preg_replace($markdown_attr_re, '', $tag);
-
- # Check if text inside this tag must be parsed in span mode.
- $this->mode = $attr_m[2] . $attr_m[3];
- $span_mode = $this->mode == 'span' || $this->mode != 'block' &&
- preg_match('{^<(?:'.$this->contain_span_tags_re.')\b}', $tag);
-
- # Calculate indent before tag.
- if (preg_match('/(?:^|\n)( *?)(?! ).*?$/', $block_text, $matches)) {
- $strlen = $this->utf8_strlen;
- $indent = $strlen($matches[1], 'UTF-8');
- } else {
- $indent = 0;
- }
-
- # End preceding block with this tag.
- $block_text .= $tag;
- $parsed .= $this->$hash_method($block_text);
-
- # Get enclosing tag name for the ParseMarkdown function.
- # (This pattern makes $tag_name_re safe without quoting.)
- preg_match('/^<([\w:$]*)\b/', $tag, $matches);
- $tag_name_re = $matches[1];
-
- # Parse the content using the HTML-in-Markdown parser.
- list ($block_text, $text)
- = $this->_hashHTMLBlocks_inMarkdown($text, $indent,
- $tag_name_re, $span_mode);
-
- # Outdent markdown text.
- if ($indent > 0) {
- $block_text = preg_replace("/^[ ]{1,$indent}/m", "",
- $block_text);
- }
-
- # Append tag content to parsed text.
- if (!$span_mode) $parsed .= "\n\n$block_text\n\n";
- else $parsed .= "$block_text";
-
- # Start over with a new block.
- $block_text = "";
- }
- else $block_text .= $tag;
- }
-
- } while ($depth > 0);
-
- #
- # Hash last block text that wasn't processed inside the loop.
- #
- $parsed .= $this->$hash_method($block_text);
-
- return array($parsed, $text);
- }
-
-
- function hashClean($text) {
- #
- # Called whenever a tag must be hashed when a function inserts a "clean" tag
- # in $text, it passes through this function and is automaticaly escaped,
- # blocking invalid nested overlap.
- #
- return $this->hashPart($text, 'C');
- }
-
-
- function doAnchors($text) {
- #
- # Turn Markdown link shortcuts into XHTML
tags.
- #
- if ($this->in_anchor) return $text;
- $this->in_anchor = true;
-
- #
- # First, handle reference-style links: [link text] [id]
- #
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- \[
- ('.$this->nested_brackets_re.') # link text = $2
- \]
-
- [ ]? # one optional space
- (?:\n[ ]*)? # one optional newline followed by spaces
-
- \[
- (.*?) # id = $3
- \]
- )
- }xs',
- array(&$this, '_doAnchors_reference_callback'), $text);
-
- #
- # Next, inline-style links: [link text](url "optional title")
- #
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- \[
- ('.$this->nested_brackets_re.') # link text = $2
- \]
- \( # literal paren
- [ \n]*
- (?:
- <(.+?)> # href = $3
- |
- ('.$this->nested_url_parenthesis_re.') # href = $4
- )
- [ \n]*
- ( # $5
- ([\'"]) # quote char = $6
- (.*?) # Title = $7
- \6 # matching quote
- [ \n]* # ignore any spaces/tabs between closing quote and )
- )? # title is optional
- \)
- (?:[ ]? '.$this->id_class_attr_catch_re.' )? # $8 = id/class attributes
- )
- }xs',
- array(&$this, '_doAnchors_inline_callback'), $text);
-
- #
- # Last, handle reference-style shortcuts: [link text]
- # These must come last in case you've also got [link text][1]
- # or [link text](/foo)
- #
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- \[
- ([^\[\]]+) # link text = $2; can\'t contain [ or ]
- \]
- )
- }xs',
- array(&$this, '_doAnchors_reference_callback'), $text);
-
- $this->in_anchor = false;
- return $text;
- }
- function _doAnchors_reference_callback($matches) {
- $whole_match = $matches[1];
- $link_text = $matches[2];
- $link_id =& $matches[3];
-
- if ($link_id == "") {
- # for shortcut links like [this][] or [this].
- $link_id = $link_text;
- }
-
- # lower-case and turn embedded newlines into spaces
- $link_id = strtolower($link_id);
- $link_id = preg_replace('{[ ]?\n}', ' ', $link_id);
-
- if (isset($this->urls[$link_id])) {
- $url = $this->urls[$link_id];
- $url = $this->encodeAttribute($url);
-
- $result = " titles[$link_id] ) ) {
- $title = $this->titles[$link_id];
- $title = $this->encodeAttribute($title);
- $result .= " title=\"$title\"";
- }
- if (isset($this->ref_attr[$link_id]))
- $result .= $this->ref_attr[$link_id];
-
- $link_text = $this->runSpanGamut($link_text);
- $result .= ">$link_text ";
- $result = $this->hashPart($result);
- }
- else {
- $result = $whole_match;
- }
- return $result;
- }
- function _doAnchors_inline_callback($matches) {
- $whole_match = $matches[1];
- $link_text = $this->runSpanGamut($matches[2]);
- $url = $matches[3] == '' ? $matches[4] : $matches[3];
- $title =& $matches[7];
- $attr = $this->doExtraAttributes("a", $dummy =& $matches[8]);
-
-
- $url = $this->encodeAttribute($url);
-
- $result = "
encodeAttribute($title);
- $result .= " title=\"$title\"";
- }
- $result .= $attr;
-
- $link_text = $this->runSpanGamut($link_text);
- $result .= ">$link_text ";
-
- return $this->hashPart($result);
- }
-
-
- function doImages($text) {
- #
- # Turn Markdown image shortcuts into
tags.
- #
- #
- # First, handle reference-style labeled images: ![alt text][id]
- #
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- !\[
- ('.$this->nested_brackets_re.') # alt text = $2
- \]
-
- [ ]? # one optional space
- (?:\n[ ]*)? # one optional newline followed by spaces
-
- \[
- (.*?) # id = $3
- \]
-
- )
- }xs',
- array(&$this, '_doImages_reference_callback'), $text);
-
- #
- # Next, handle inline images: ![alt text](url "optional title")
- # Don't forget: encode * and _
- #
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- !\[
- ('.$this->nested_brackets_re.') # alt text = $2
- \]
- \s? # One optional whitespace character
- \( # literal paren
- [ \n]*
- (?:
- <(\S*)> # src url = $3
- |
- ('.$this->nested_url_parenthesis_re.') # src url = $4
- )
- [ \n]*
- ( # $5
- ([\'"]) # quote char = $6
- (.*?) # title = $7
- \6 # matching quote
- [ \n]*
- )? # title is optional
- \)
- (?:[ ]? '.$this->id_class_attr_catch_re.' )? # $8 = id/class attributes
- )
- }xs',
- array(&$this, '_doImages_inline_callback'), $text);
-
- return $text;
- }
- function _doImages_reference_callback($matches) {
- $whole_match = $matches[1];
- $alt_text = $matches[2];
- $link_id = strtolower($matches[3]);
-
- if ($link_id == "") {
- $link_id = strtolower($alt_text); # for shortcut links like ![this][].
- }
-
- $alt_text = $this->encodeAttribute($alt_text);
- if (isset($this->urls[$link_id])) {
- $url = $this->encodeAttribute($this->urls[$link_id]);
- $result = "
titles[$link_id])) {
- $title = $this->titles[$link_id];
- $title = $this->encodeAttribute($title);
- $result .= " title=\"$title\"";
- }
- if (isset($this->ref_attr[$link_id]))
- $result .= $this->ref_attr[$link_id];
- $result .= $this->empty_element_suffix;
- $result = $this->hashPart($result);
- }
- else {
- # If there's no such link ID, leave intact:
- $result = $whole_match;
- }
-
- return $result;
- }
- function _doImages_inline_callback($matches) {
- $whole_match = $matches[1];
- $alt_text = $matches[2];
- $url = $matches[3] == '' ? $matches[4] : $matches[3];
- $title =& $matches[7];
- $attr = $this->doExtraAttributes("img", $dummy =& $matches[8]);
-
- $alt_text = $this->encodeAttribute($alt_text);
- $url = $this->encodeAttribute($url);
- $result = "
encodeAttribute($title);
- $result .= " title=\"$title\""; # $title already quoted
- }
- $result .= $attr;
- $result .= $this->empty_element_suffix;
-
- return $this->hashPart($result);
- }
-
-
- function doHeaders($text) {
- #
- # Redefined to add id and class attribute support.
- #
- # Setext-style headers:
- # Header 1 {#header1}
- # ========
- #
- # Header 2 {#header2 .class1 .class2}
- # --------
- #
- $text = preg_replace_callback(
- '{
- (^.+?) # $1: Header text
- (?:[ ]+ '.$this->id_class_attr_catch_re.' )? # $3 = id/class attributes
- [ ]*\n(=+|-+)[ ]*\n+ # $3: Header footer
- }mx',
- array(&$this, '_doHeaders_callback_setext'), $text);
-
- # atx-style headers:
- # # Header 1 {#header1}
- # ## Header 2 {#header2}
- # ## Header 2 with closing hashes ## {#header3.class1.class2}
- # ...
- # ###### Header 6 {.class2}
- #
- $text = preg_replace_callback('{
- ^(\#{1,6}) # $1 = string of #\'s
- [ ]*
- (.+?) # $2 = Header text
- [ ]*
- \#* # optional closing #\'s (not counted)
- (?:[ ]+ '.$this->id_class_attr_catch_re.' )? # $3 = id/class attributes
- [ ]*
- \n+
- }xm',
- array(&$this, '_doHeaders_callback_atx'), $text);
-
- return $text;
- }
- function _doHeaders_callback_setext($matches) {
- if ($matches[3] == '-' && preg_match('{^- }', $matches[1]))
- return $matches[0];
- $level = $matches[3]{0} == '=' ? 1 : 2;
- $attr = $this->doExtraAttributes("h$level", $dummy =& $matches[2]);
- $block = "
".$this->runSpanGamut($matches[1])." ";
- return "\n" . $this->hashBlock($block) . "\n\n";
- }
- function _doHeaders_callback_atx($matches) {
- $level = strlen($matches[1]);
- $attr = $this->doExtraAttributes("h$level", $dummy =& $matches[3]);
- $block = "
".$this->runSpanGamut($matches[2])." ";
- return "\n" . $this->hashBlock($block) . "\n\n";
- }
-
-
- function doTables($text) {
- #
- # Form HTML tables.
- #
- $less_than_tab = $this->tab_width - 1;
- #
- # Find tables with leading pipe.
- #
- # | Header 1 | Header 2
- # | -------- | --------
- # | Cell 1 | Cell 2
- # | Cell 3 | Cell 4
- #
- $text = preg_replace_callback('
- {
- ^ # Start of a line
- [ ]{0,'.$less_than_tab.'} # Allowed whitespace.
- [|] # Optional leading pipe (present)
- (.+) \n # $1: Header row (at least one pipe)
-
- [ ]{0,'.$less_than_tab.'} # Allowed whitespace.
- [|] ([ ]*[-:]+[-| :]*) \n # $2: Header underline
-
- ( # $3: Cells
- (?>
- [ ]* # Allowed whitespace.
- [|] .* \n # Row content.
- )*
- )
- (?=\n|\Z) # Stop at final double newline.
- }xm',
- array(&$this, '_doTable_leadingPipe_callback'), $text);
-
- #
- # Find tables without leading pipe.
- #
- # Header 1 | Header 2
- # -------- | --------
- # Cell 1 | Cell 2
- # Cell 3 | Cell 4
- #
- $text = preg_replace_callback('
- {
- ^ # Start of a line
- [ ]{0,'.$less_than_tab.'} # Allowed whitespace.
- (\S.*[|].*) \n # $1: Header row (at least one pipe)
-
- [ ]{0,'.$less_than_tab.'} # Allowed whitespace.
- ([-:]+[ ]*[|][-| :]*) \n # $2: Header underline
-
- ( # $3: Cells
- (?>
- .* [|] .* \n # Row content
- )*
- )
- (?=\n|\Z) # Stop at final double newline.
- }xm',
- array(&$this, '_DoTable_callback'), $text);
-
- return $text;
- }
- function _doTable_leadingPipe_callback($matches) {
- $head = $matches[1];
- $underline = $matches[2];
- $content = $matches[3];
-
- # Remove leading pipe for each row.
- $content = preg_replace('/^ *[|]/m', '', $content);
-
- return $this->_doTable_callback(array($matches[0], $head, $underline, $content));
- }
- function _doTable_callback($matches) {
- $head = $matches[1];
- $underline = $matches[2];
- $content = $matches[3];
-
- # Remove any tailing pipes for each line.
- $head = preg_replace('/[|] *$/m', '', $head);
- $underline = preg_replace('/[|] *$/m', '', $underline);
- $content = preg_replace('/[|] *$/m', '', $content);
-
- # Reading alignement from header underline.
- $separators = preg_split('/ *[|] */', $underline);
- foreach ($separators as $n => $s) {
- if (preg_match('/^ *-+: *$/', $s)) $attr[$n] = ' align="right"';
- else if (preg_match('/^ *:-+: *$/', $s))$attr[$n] = ' align="center"';
- else if (preg_match('/^ *:-+ *$/', $s)) $attr[$n] = ' align="left"';
- else $attr[$n] = '';
- }
-
- # Parsing span elements, including code spans, character escapes,
- # and inline HTML tags, so that pipes inside those gets ignored.
- $head = $this->parseSpan($head);
- $headers = preg_split('/ *[|] */', $head);
- $col_count = count($headers);
- $attr = array_pad($attr, $col_count, '');
-
- # Write column headers.
- $text = "
\n";
- $text .= "\n";
- $text .= "\n";
- foreach ($headers as $n => $header)
- $text .= " ".$this->runSpanGamut(trim($header))." \n";
- $text .= " \n";
- $text .= " \n";
-
- # Split content by row.
- $rows = explode("\n", trim($content, "\n"));
-
- $text .= "\n";
- foreach ($rows as $row) {
- # Parsing span elements, including code spans, character escapes,
- # and inline HTML tags, so that pipes inside those gets ignored.
- $row = $this->parseSpan($row);
-
- # Split row by cell.
- $row_cells = preg_split('/ *[|] */', $row, $col_count);
- $row_cells = array_pad($row_cells, $col_count, '');
-
- $text .= "\n";
- foreach ($row_cells as $n => $cell)
- $text .= " ".$this->runSpanGamut(trim($cell))." \n";
- $text .= " \n";
- }
- $text .= " \n";
- $text .= "
";
-
- return $this->hashBlock($text) . "\n";
- }
-
-
- function doDefLists($text) {
- #
- # Form HTML definition lists.
- #
- $less_than_tab = $this->tab_width - 1;
-
- # Re-usable pattern to match any entire dl list:
- $whole_list_re = '(?>
- ( # $1 = whole list
- ( # $2
- [ ]{0,'.$less_than_tab.'}
- ((?>.*\S.*\n)+) # $3 = defined term
- \n?
- [ ]{0,'.$less_than_tab.'}:[ ]+ # colon starting definition
- )
- (?s:.+?)
- ( # $4
- \z
- |
- \n{2,}
- (?=\S)
- (?! # Negative lookahead for another term
- [ ]{0,'.$less_than_tab.'}
- (?: \S.*\n )+? # defined term
- \n?
- [ ]{0,'.$less_than_tab.'}:[ ]+ # colon starting definition
- )
- (?! # Negative lookahead for another definition
- [ ]{0,'.$less_than_tab.'}:[ ]+ # colon starting definition
- )
- )
- )
- )'; // mx
-
- $text = preg_replace_callback('{
- (?>\A\n?|(?<=\n\n))
- '.$whole_list_re.'
- }mx',
- array(&$this, '_doDefLists_callback'), $text);
-
- return $text;
- }
- function _doDefLists_callback($matches) {
- # Re-usable patterns to match list item bullets and number markers:
- $list = $matches[1];
-
- # Turn double returns into triple returns, so that we can make a
- # paragraph for the last item in a list, if necessary:
- $result = trim($this->processDefListItems($list));
- $result = "
\n" . $result . "\n ";
- return $this->hashBlock($result) . "\n\n";
- }
-
-
- function processDefListItems($list_str) {
- #
- # Process the contents of a single definition list, splitting it
- # into individual term and definition list items.
- #
- $less_than_tab = $this->tab_width - 1;
-
- # trim trailing blank lines:
- $list_str = preg_replace("/\n{2,}\\z/", "\n", $list_str);
-
- # Process definition terms.
- $list_str = preg_replace_callback('{
- (?>\A\n?|\n\n+) # leading line
- ( # definition terms = $1
- [ ]{0,'.$less_than_tab.'} # leading whitespace
- (?!\:[ ]|[ ]) # negative lookahead for a definition
- # mark (colon) or more whitespace.
- (?> \S.* \n)+? # actual term (not whitespace).
- )
- (?=\n?[ ]{0,3}:[ ]) # lookahead for following line feed
- # with a definition mark.
- }xm',
- array(&$this, '_processDefListItems_callback_dt'), $list_str);
-
- # Process actual definitions.
- $list_str = preg_replace_callback('{
- \n(\n+)? # leading line = $1
- ( # marker space = $2
- [ ]{0,'.$less_than_tab.'} # whitespace before colon
- \:[ ]+ # definition mark (colon)
- )
- ((?s:.+?)) # definition text = $3
- (?= \n+ # stop at next definition mark,
- (?: # next term or end of text
- [ ]{0,'.$less_than_tab.'} \:[ ] |
-
| \z
- )
- )
- }xm',
- array(&$this, '_processDefListItems_callback_dd'), $list_str);
-
- return $list_str;
- }
- function _processDefListItems_callback_dt($matches) {
- $terms = explode("\n", trim($matches[1]));
- $text = '';
- foreach ($terms as $term) {
- $term = $this->runSpanGamut(trim($term));
- $text .= "\n" . $term . " ";
- }
- return $text . "\n";
- }
- function _processDefListItems_callback_dd($matches) {
- $leading_line = $matches[1];
- $marker_space = $matches[2];
- $def = $matches[3];
-
- if ($leading_line || preg_match('/\n{2,}/', $def)) {
- # Replace marker with the appropriate whitespace indentation
- $def = str_repeat(' ', strlen($marker_space)) . $def;
- $def = $this->runBlockGamut($this->outdent($def . "\n\n"));
- $def = "\n". $def ."\n";
- }
- else {
- $def = rtrim($def);
- $def = $this->runSpanGamut($this->outdent($def));
- }
-
- return "\n " . $def . " \n";
- }
-
-
- function doFencedCodeBlocks($text) {
- #
- # Adding the fenced code block syntax to regular Markdown:
- #
- # ~~~
- # Code block
- # ~~~
- #
- $less_than_tab = $this->tab_width;
-
- $text = preg_replace_callback('{
- (?:\n|\A)
- # 1: Opening marker
- (
- (?:~{3,}|`{3,}) # 3 or more tildes/backticks.
- )
- [ ]*
- (?:
- \.?([-_:a-zA-Z0-9]+) # 2: standalone class name
- |
- '.$this->id_class_attr_catch_re.' # 3: Extra attributes
- )?
- [ ]* \n # Whitespace and newline following marker.
-
- # 4: Content
- (
- (?>
- (?!\1 [ ]* \n) # Not a closing marker.
- .*\n+
- )+
- )
-
- # Closing marker.
- \1 [ ]* (?= \n )
- }xm',
- array(&$this, '_doFencedCodeBlocks_callback'), $text);
-
- return $text;
- }
- function _doFencedCodeBlocks_callback($matches) {
- $classname =& $matches[2];
- $attrs =& $matches[3];
- $codeblock = $matches[4];
- $codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES);
- $codeblock = preg_replace_callback('/^\n+/',
- array(&$this, '_doFencedCodeBlocks_newlines'), $codeblock);
-
- if ($classname != "") {
- if ($classname{0} == '.')
- $classname = substr($classname, 1);
- $attr_str = ' class="'.$this->code_class_prefix.$classname.'"';
- } else {
- $attr_str = $this->doExtraAttributes($this->code_attr_on_pre ? "pre" : "code", $attrs);
- }
- $pre_attr_str = $this->code_attr_on_pre ? $attr_str : '';
- $code_attr_str = $this->code_attr_on_pre ? '' : $attr_str;
- $codeblock = "
$codeblock
";
-
- return "\n\n".$this->hashBlock($codeblock)."\n\n";
- }
- function _doFencedCodeBlocks_newlines($matches) {
- return str_repeat("
empty_element_suffix",
- strlen($matches[0]));
- }
-
-
- #
- # Redefining emphasis markers so that emphasis by underscore does not
- # work in the middle of a word.
- #
- var $em_relist = array(
- '' => '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? tags
- #
- # Strip leading and trailing lines:
- $text = preg_replace('/\A\n+|\n+\z/', '', $text);
-
- $grafs = preg_split('/\n{2,}/', $text, -1, PREG_SPLIT_NO_EMPTY);
-
- #
- # Wrap
tags and unhashify HTML blocks
- #
- foreach ($grafs as $key => $value) {
- $value = trim($this->runSpanGamut($value));
-
- # Check if this should be enclosed in a paragraph.
- # Clean tag hashes & block tag hashes are left alone.
- $is_p = !preg_match('/^B\x1A[0-9]+B|^C\x1A[0-9]+C$/', $value);
-
- if ($is_p) {
- $value = "
$value
";
- }
- $grafs[$key] = $value;
- }
-
- # Join grafs in one text, then unhash HTML tags.
- $text = implode("\n\n", $grafs);
-
- # Finish by removing any tag hashes still present in $text.
- $text = $this->unhash($text);
-
- return $text;
- }
-
-
- ### Footnotes
-
- function stripFootnotes($text) {
- #
- # Strips link definitions from text, stores the URLs and titles in
- # hash references.
- #
- $less_than_tab = $this->tab_width - 1;
-
- # Link defs are in the form: [^id]: url "optional title"
- $text = preg_replace_callback('{
- ^[ ]{0,'.$less_than_tab.'}\[\^(.+?)\][ ]?: # note_id = $1
- [ ]*
- \n? # maybe *one* newline
- ( # text = $2 (no blank lines allowed)
- (?:
- .+ # actual text
- |
- \n # newlines but
- (?!\[\^.+?\]:\s)# negative lookahead for footnote marker.
- (?!\n+[ ]{0,3}\S)# ensure line is not blank and followed
- # by non-indented content
- )*
- )
- }xm',
- array(&$this, '_stripFootnotes_callback'),
- $text);
- return $text;
- }
- function _stripFootnotes_callback($matches) {
- $note_id = $this->fn_id_prefix . $matches[1];
- $this->footnotes[$note_id] = $this->outdent($matches[2]);
- return ''; # String that will replace the block
- }
-
-
- function doFootnotes($text) {
- #
- # Replace footnote references in $text [^id] with a special text-token
- # which will be replaced by the actual footnote marker in appendFootnotes.
- #
- if (!$this->in_anchor) {
- $text = preg_replace('{\[\^(.+?)\]}', "F\x1Afn:\\1\x1A:", $text);
- }
- return $text;
- }
-
-
- function appendFootnotes($text) {
- #
- # Append footnote list to text.
- #
- $text = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}',
- array(&$this, '_appendFootnotes_callback'), $text);
-
- if (!empty($this->footnotes_ordered)) {
- $text .= "\n\n";
- $text .= "";
- }
- return $text;
- }
- function _appendFootnotes_callback($matches) {
- $node_id = $this->fn_id_prefix . $matches[1];
-
- # Create footnote marker only if it has a corresponding footnote *and*
- # the footnote hasn't been used by another marker.
- if (isset($this->footnotes[$node_id])) {
- $num =& $this->footnotes_numbers[$node_id];
- if (!isset($num)) {
- # Transfer footnote content to the ordered list and give it its
- # number
- $this->footnotes_ordered[$node_id] = $this->footnotes[$node_id];
- $this->footnotes_ref_count[$node_id] = 1;
- $num = $this->footnote_counter++;
- $ref_count_mark = '';
- } else {
- $ref_count_mark = $this->footnotes_ref_count[$node_id] += 1;
- }
-
- $attr = " rel=\"footnote\"";
- if ($this->fn_link_class != "") {
- $class = $this->fn_link_class;
- $class = $this->encodeAttribute($class);
- $attr .= " class=\"$class\"";
- }
- if ($this->fn_link_title != "") {
- $title = $this->fn_link_title;
- $title = $this->encodeAttribute($title);
- $attr .= " title=\"$title\"";
- }
-
- $attr = str_replace("%%", $num, $attr);
- $node_id = $this->encodeAttribute($node_id);
-
- return
- "
".
- "$num ".
- " ";
- }
-
- return "[^".$matches[1]."]";
- }
-
-
- ### Abbreviations ###
-
- function stripAbbreviations($text) {
- #
- # Strips abbreviations from text, stores titles in hash references.
- #
- $less_than_tab = $this->tab_width - 1;
-
- # Link defs are in the form: [id]*: url "optional title"
- $text = preg_replace_callback('{
- ^[ ]{0,'.$less_than_tab.'}\*\[(.+?)\][ ]?: # abbr_id = $1
- (.*) # text = $2 (no blank lines allowed)
- }xm',
- array(&$this, '_stripAbbreviations_callback'),
- $text);
- return $text;
- }
- function _stripAbbreviations_callback($matches) {
- $abbr_word = $matches[1];
- $abbr_desc = $matches[2];
- if ($this->abbr_word_re)
- $this->abbr_word_re .= '|';
- $this->abbr_word_re .= preg_quote($abbr_word);
- $this->abbr_desciptions[$abbr_word] = trim($abbr_desc);
- return ''; # String that will replace the block
- }
-
-
- function doAbbreviations($text) {
- #
- # Find defined abbreviations in text and wrap them in
elements.
- #
- if ($this->abbr_word_re) {
- // cannot use the /x modifier because abbr_word_re may
- // contain significant spaces:
- $text = preg_replace_callback('{'.
- '(?abbr_word_re.')'.
- '(?![\w\x1A])'.
- '}',
- array(&$this, '_doAbbreviations_callback'), $text);
- }
- return $text;
- }
- function _doAbbreviations_callback($matches) {
- $abbr = $matches[0];
- if (isset($this->abbr_desciptions[$abbr])) {
- $desc = $this->abbr_desciptions[$abbr];
- if (empty($desc)) {
- return $this->hashPart("$abbr ");
- } else {
- $desc = $this->encodeAttribute($desc);
- return $this->hashPart("$abbr ");
- }
- } else {
- return $matches[0];
- }
- }
-
-}
-
-
-/*
-
-PHP Markdown Extra
-==================
-
-Description
------------
-
-This is a PHP port of the original Markdown formatter written in Perl
-by John Gruber. This special "Extra" version of PHP Markdown features
-further enhancements to the syntax for making additional constructs
-such as tables and definition list.
-
-Markdown is a text-to-HTML filter; it translates an easy-to-read /
-easy-to-write structured text format into HTML. Markdown's text format
-is mostly similar to that of plain text email, and supports features such
-as headers, *emphasis*, code blocks, blockquotes, and links.
-
-Markdown's syntax is designed not as a generic markup language, but
-specifically to serve as a front-end to (X)HTML. You can use span-level
-HTML tags anywhere in a Markdown document, and you can use block level
-HTML tags (like and
as well).
-
-For more information about Markdown's syntax, see:
-
-
-
-
-Bugs
-----
-
-To file bug reports please send email to:
-
-
-
-Please include with your report: (1) the example input; (2) the output you
-expected; (3) the output Markdown actually produced.
-
-
-Version History
----------------
-
-See the readme file for detailed release notes for this version.
-
-
-Copyright and License
----------------------
-
-PHP Markdown & Extra
-Copyright (c) 2004-2013 Michel Fortin
-
-All rights reserved.
-
-Based on Markdown
-Copyright (c) 2003-2006 John Gruber
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-* Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-* Neither the name "Markdown" nor the names of its contributors may
- be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-This software is provided by the copyright holders and contributors "as
-is" and any express or implied warranties, including, but not limited
-to, the implied warranties of merchantability and fitness for a
-particular purpose are disclaimed. In no event shall the copyright owner
-or contributors be liable for any direct, indirect, incidental, special,
-exemplary, or consequential damages (including, but not limited to,
-procurement of substitute goods or services; loss of use, data, or
-profits; or business interruption) however caused and on any theory of
-liability, whether in contract, strict liability, or tort (including
-negligence or otherwise) arising in any way out of the use of this
-software, even if advised of the possibility of such damage.
-
-*/
-?>
diff --git a/milfs/includes/mysql b/milfs/includes/mysql
deleted file mode 100644
index bf366fb..0000000
--- a/milfs/includes/mysql
+++ /dev/null
@@ -1,16 +0,0 @@
--- MySQL dump 10.13 Distrib 5.5.47, for debian-linux-gnu (x86_64)
---
--- Host: localhost Database: milfs
--- ------------------------------------------------------
--- Server version 5.5.47-0+deb8u1
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
-/*!40103 SET TIME_ZONE='+00:00' */;
-/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
diff --git a/milfs/includes/parametrizacion.php b/milfs/includes/parametrizacion.php
deleted file mode 100644
index 4f0ba8f..0000000
--- a/milfs/includes/parametrizacion.php
+++ /dev/null
@@ -1,23 +0,0 @@
-
diff --git a/milfs/includes/simple_html_dom.php b/milfs/includes/simple_html_dom.php
deleted file mode 100644
index bc2cf0a..0000000
--- a/milfs/includes/simple_html_dom.php
+++ /dev/null
@@ -1,1721 +0,0 @@
-size is the "real" number of bytes the dom was created from.
- * but for most purposes, it's a really good estimation.
- * Paperg - Added the forceTagsClosed to the dom constructor. Forcing tags closed is great for malformed html, but it CAN lead to parsing errors.
- * Allow the user to tell us how much they trust the html.
- * Paperg add the text and plaintext to the selectors for the find syntax. plaintext implies text in the innertext of a node. text implies that the tag is a text node.
- * This allows for us to find tags based on the text they contain.
- * Create find_ancestor_tag to see if a tag is - at any level - inside of another specific tag.
- * Paperg: added parse_charset so that we know about the character set of the source document.
- * NOTE: If the user's system has a routine called get_last_retrieve_url_contents_content_type availalbe, we will assume it's returning the content-type header from the
- * last transfer or curl_exec, and we will parse that and use it in preference to any other method of charset detection.
- *
- * Found infinite loop in the case of broken html in restore_noise. Rewrote to protect from that.
- * PaperG (John Schlick) Added get_display_size for "IMG" tags.
- *
- * Licensed under The MIT License
- * Redistributions of files must retain the above copyright notice.
- *
- * @author S.C. Chen
- * @author John Schlick
- * @author Rus Carroll
- * @version 1.5 ($Rev: 196 $)
- * @package PlaceLocalInclude
- * @subpackage simple_html_dom
- */
-
-/**
- * All of the Defines for the classes below.
- * @author S.C. Chen
- */
-define('HDOM_TYPE_ELEMENT', 1);
-define('HDOM_TYPE_COMMENT', 2);
-define('HDOM_TYPE_TEXT', 3);
-define('HDOM_TYPE_ENDTAG', 4);
-define('HDOM_TYPE_ROOT', 5);
-define('HDOM_TYPE_UNKNOWN', 6);
-define('HDOM_QUOTE_DOUBLE', 0);
-define('HDOM_QUOTE_SINGLE', 1);
-define('HDOM_QUOTE_NO', 3);
-define('HDOM_INFO_BEGIN', 0);
-define('HDOM_INFO_END', 1);
-define('HDOM_INFO_QUOTE', 2);
-define('HDOM_INFO_SPACE', 3);
-define('HDOM_INFO_TEXT', 4);
-define('HDOM_INFO_INNER', 5);
-define('HDOM_INFO_OUTER', 6);
-define('HDOM_INFO_ENDSPACE',7);
-define('DEFAULT_TARGET_CHARSET', 'UTF-8');
-define('DEFAULT_BR_TEXT', "\r\n");
-define('DEFAULT_SPAN_TEXT', " ");
-define('MAX_FILE_SIZE', 600000);
-// helper functions
-// -----------------------------------------------------------------------------
-// get html dom from file
-// $maxlen is defined in the code as PHP_STREAM_COPY_ALL which is defined as -1.
-function file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
-{
- // We DO force the tags to be terminated.
- $dom = new simple_html_dom(null, $lowercase, $forceTagsClosed, $target_charset, $stripRN, $defaultBRText, $defaultSpanText);
- // For sourceforge users: uncomment the next line and comment the retreive_url_contents line 2 lines down if it is not already done.
- $contents = file_get_contents($url, $use_include_path, $context, $offset);
- // Paperg - use our own mechanism for getting the contents as we want to control the timeout.
- //$contents = retrieve_url_contents($url);
- if (empty($contents) || strlen($contents) > MAX_FILE_SIZE)
- {
- return false;
- }
- // The second parameter can force the selectors to all be lowercase.
- $dom->load($contents, $lowercase, $stripRN);
- return $dom;
-}
-
-// get html dom from string
-function str_get_html($str, $lowercase=true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
-{
- $dom = new simple_html_dom(null, $lowercase, $forceTagsClosed, $target_charset, $stripRN, $defaultBRText, $defaultSpanText);
- if (empty($str) || strlen($str) > MAX_FILE_SIZE)
- {
- $dom->clear();
- return false;
- }
- $dom->load($str, $lowercase, $stripRN);
- return $dom;
-}
-
-// dump html dom tree
-function dump_html_tree($node, $show_attr=true, $deep=0)
-{
- $node->dump($node);
-}
-
-
-/**
- * simple html dom node
- * PaperG - added ability for "find" routine to lowercase the value of the selector.
- * PaperG - added $tag_start to track the start position of the tag in the total byte index
- *
- * @package PlaceLocalInclude
- */
-class simple_html_dom_node
-{
- public $nodetype = HDOM_TYPE_TEXT;
- public $tag = 'text';
- public $attr = array();
- public $children = array();
- public $nodes = array();
- public $parent = null;
- // The "info" array - see HDOM_INFO_... for what each element contains.
- public $_ = array();
- public $tag_start = 0;
- private $dom = null;
-
- function __construct($dom)
- {
- $this->dom = $dom;
- $dom->nodes[] = $this;
- }
-
- function __destruct()
- {
- $this->clear();
- }
-
- function __toString()
- {
- return $this->outertext();
- }
-
- // clean up memory due to php5 circular references memory leak...
- function clear()
- {
- $this->dom = null;
- $this->nodes = null;
- $this->parent = null;
- $this->children = null;
- }
-
- // dump node's tree
- function dump($show_attr=true, $deep=0)
- {
- $lead = str_repeat(' ', $deep);
-
- echo $lead.$this->tag;
- if ($show_attr && count($this->attr)>0)
- {
- echo '(';
- foreach ($this->attr as $k=>$v)
- echo "[$k]=>\"".$this->$k.'", ';
- echo ')';
- }
- echo "\n";
-
- if ($this->nodes)
- {
- foreach ($this->nodes as $c)
- {
- $c->dump($show_attr, $deep+1);
- }
- }
- }
-
-
- // Debugging function to dump a single dom node with a bunch of information about it.
- function dump_node($echo=true)
- {
-
- $string = $this->tag;
- if (count($this->attr)>0)
- {
- $string .= '(';
- foreach ($this->attr as $k=>$v)
- {
- $string .= "[$k]=>\"".$this->$k.'", ';
- }
- $string .= ')';
- }
- if (count($this->_)>0)
- {
- $string .= ' $_ (';
- foreach ($this->_ as $k=>$v)
- {
- if (is_array($v))
- {
- $string .= "[$k]=>(";
- foreach ($v as $k2=>$v2)
- {
- $string .= "[$k2]=>\"".$v2.'", ';
- }
- $string .= ")";
- } else {
- $string .= "[$k]=>\"".$v.'", ';
- }
- }
- $string .= ")";
- }
-
- if (isset($this->text))
- {
- $string .= " text: (" . $this->text . ")";
- }
-
- $string .= " HDOM_INNER_INFO: '";
- if (isset($node->_[HDOM_INFO_INNER]))
- {
- $string .= $node->_[HDOM_INFO_INNER] . "'";
- }
- else
- {
- $string .= ' NULL ';
- }
-
- $string .= " children: " . count($this->children);
- $string .= " nodes: " . count($this->nodes);
- $string .= " tag_start: " . $this->tag_start;
- $string .= "\n";
-
- if ($echo)
- {
- echo $string;
- return;
- }
- else
- {
- return $string;
- }
- }
-
- // returns the parent of node
- // If a node is passed in, it will reset the parent of the current node to that one.
- function parent($parent=null)
- {
- // I am SURE that this doesn't work properly.
- // It fails to unset the current node from it's current parents nodes or children list first.
- if ($parent !== null)
- {
- $this->parent = $parent;
- $this->parent->nodes[] = $this;
- $this->parent->children[] = $this;
- }
-
- return $this->parent;
- }
-
- // verify that node has children
- function has_child()
- {
- return !empty($this->children);
- }
-
- // returns children of node
- function children($idx=-1)
- {
- if ($idx===-1)
- {
- return $this->children;
- }
- if (isset($this->children[$idx])) return $this->children[$idx];
- return null;
- }
-
- // returns the first child of node
- function first_child()
- {
- if (count($this->children)>0)
- {
- return $this->children[0];
- }
- return null;
- }
-
- // returns the last child of node
- function last_child()
- {
- if (($count=count($this->children))>0)
- {
- return $this->children[$count-1];
- }
- return null;
- }
-
- // returns the next sibling of node
- function next_sibling()
- {
- if ($this->parent===null)
- {
- return null;
- }
-
- $idx = 0;
- $count = count($this->parent->children);
- while ($idx<$count && $this!==$this->parent->children[$idx])
- {
- ++$idx;
- }
- if (++$idx>=$count)
- {
- return null;
- }
- return $this->parent->children[$idx];
- }
-
- // returns the previous sibling of node
- function prev_sibling()
- {
- if ($this->parent===null) return null;
- $idx = 0;
- $count = count($this->parent->children);
- while ($idx<$count && $this!==$this->parent->children[$idx])
- ++$idx;
- if (--$idx<0) return null;
- return $this->parent->children[$idx];
- }
-
- // function to locate a specific ancestor tag in the path to the root.
- function find_ancestor_tag($tag)
- {
- global $debugObject;
- if (is_object($debugObject)) { $debugObject->debugLogEntry(1); }
-
- // Start by including ourselves in the comparison.
- $returnDom = $this;
-
- while (!is_null($returnDom))
- {
- if (is_object($debugObject)) { $debugObject->debugLog(2, "Current tag is: " . $returnDom->tag); }
-
- if ($returnDom->tag == $tag)
- {
- break;
- }
- $returnDom = $returnDom->parent;
- }
- return $returnDom;
- }
-
- // get dom node's inner html
- function innertext()
- {
- if (isset($this->_[HDOM_INFO_INNER])) return $this->_[HDOM_INFO_INNER];
- if (isset($this->_[HDOM_INFO_TEXT])) return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]);
-
- $ret = '';
- foreach ($this->nodes as $n)
- $ret .= $n->outertext();
- return $ret;
- }
-
- // get dom node's outer text (with tag)
- function outertext()
- {
- global $debugObject;
- if (is_object($debugObject))
- {
- $text = '';
- if ($this->tag == 'text')
- {
- if (!empty($this->text))
- {
- $text = " with text: " . $this->text;
- }
- }
- $debugObject->debugLog(1, 'Innertext of tag: ' . $this->tag . $text);
- }
-
- if ($this->tag==='root') return $this->innertext();
-
- // trigger callback
- if ($this->dom && $this->dom->callback!==null)
- {
- call_user_func_array($this->dom->callback, array($this));
- }
-
- if (isset($this->_[HDOM_INFO_OUTER])) return $this->_[HDOM_INFO_OUTER];
- if (isset($this->_[HDOM_INFO_TEXT])) return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]);
-
- // render begin tag
- if ($this->dom && $this->dom->nodes[$this->_[HDOM_INFO_BEGIN]])
- {
- $ret = $this->dom->nodes[$this->_[HDOM_INFO_BEGIN]]->makeup();
- } else {
- $ret = "";
- }
-
- // render inner text
- if (isset($this->_[HDOM_INFO_INNER]))
- {
- // If it's a br tag... don't return the HDOM_INNER_INFO that we may or may not have added.
- if ($this->tag != "br")
- {
- $ret .= $this->_[HDOM_INFO_INNER];
- }
- } else {
- if ($this->nodes)
- {
- foreach ($this->nodes as $n)
- {
- $ret .= $this->convert_text($n->outertext());
- }
- }
- }
-
- // render end tag
- if (isset($this->_[HDOM_INFO_END]) && $this->_[HDOM_INFO_END]!=0)
- $ret .= ''.$this->tag.'>';
- return $ret;
- }
-
- // get dom node's plain text
- function text()
- {
- if (isset($this->_[HDOM_INFO_INNER])) return $this->_[HDOM_INFO_INNER];
- switch ($this->nodetype)
- {
- case HDOM_TYPE_TEXT: return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]);
- case HDOM_TYPE_COMMENT: return '';
- case HDOM_TYPE_UNKNOWN: return '';
- }
- if (strcasecmp($this->tag, 'script')===0) return '';
- if (strcasecmp($this->tag, 'style')===0) return '';
-
- $ret = '';
- // In rare cases, (always node type 1 or HDOM_TYPE_ELEMENT - observed for some span tags, and some p tags) $this->nodes is set to NULL.
- // NOTE: This indicates that there is a problem where it's set to NULL without a clear happening.
- // WHY is this happening?
- if (!is_null($this->nodes))
- {
- foreach ($this->nodes as $n)
- {
- $ret .= $this->convert_text($n->text());
- }
-
- // If this node is a span... add a space at the end of it so multiple spans don't run into each other. This is plaintext after all.
- if ($this->tag == "span")
- {
- $ret .= $this->dom->default_span_text;
- }
-
-
- }
- return $ret;
- }
-
- function xmltext()
- {
- $ret = $this->innertext();
- $ret = str_ireplace('', '', $ret);
- return $ret;
- }
-
- // build node's text with tag
- function makeup()
- {
- // text, comment, unknown
- if (isset($this->_[HDOM_INFO_TEXT])) return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]);
-
- $ret = '<'.$this->tag;
- $i = -1;
-
- foreach ($this->attr as $key=>$val)
- {
- ++$i;
-
- // skip removed attribute
- if ($val===null || $val===false)
- continue;
-
- $ret .= $this->_[HDOM_INFO_SPACE][$i][0];
- //no value attr: nowrap, checked selected...
- if ($val===true)
- $ret .= $key;
- else {
- switch ($this->_[HDOM_INFO_QUOTE][$i])
- {
- case HDOM_QUOTE_DOUBLE: $quote = '"'; break;
- case HDOM_QUOTE_SINGLE: $quote = '\''; break;
- default: $quote = '';
- }
- $ret .= $key.$this->_[HDOM_INFO_SPACE][$i][1].'='.$this->_[HDOM_INFO_SPACE][$i][2].$quote.$val.$quote;
- }
- }
- $ret = $this->dom->restore_noise($ret);
- return $ret . $this->_[HDOM_INFO_ENDSPACE] . '>';
- }
-
- // find elements by css selector
- //PaperG - added ability for find to lowercase the value of the selector.
- function find($selector, $idx=null, $lowercase=false)
- {
- $selectors = $this->parse_selector($selector);
- if (($count=count($selectors))===0) return array();
- $found_keys = array();
-
- // find each selector
- for ($c=0; $c<$count; ++$c)
- {
- // The change on the below line was documented on the sourceforge code tracker id 2788009
- // used to be: if (($levle=count($selectors[0]))===0) return array();
- if (($levle=count($selectors[$c]))===0) return array();
- if (!isset($this->_[HDOM_INFO_BEGIN])) return array();
-
- $head = array($this->_[HDOM_INFO_BEGIN]=>1);
-
- // handle descendant selectors, no recursive!
- for ($l=0; $l<$levle; ++$l)
- {
- $ret = array();
- foreach ($head as $k=>$v)
- {
- $n = ($k===-1) ? $this->dom->root : $this->dom->nodes[$k];
- //PaperG - Pass this optional parameter on to the seek function.
- $n->seek($selectors[$c][$l], $ret, $lowercase);
- }
- $head = $ret;
- }
-
- foreach ($head as $k=>$v)
- {
- if (!isset($found_keys[$k]))
- $found_keys[$k] = 1;
- }
- }
-
- // sort keys
- ksort($found_keys);
-
- $found = array();
- foreach ($found_keys as $k=>$v)
- $found[] = $this->dom->nodes[$k];
-
- // return nth-element or array
- if (is_null($idx)) return $found;
- else if ($idx<0) $idx = count($found) + $idx;
- return (isset($found[$idx])) ? $found[$idx] : null;
- }
-
- // seek for given conditions
- // PaperG - added parameter to allow for case insensitive testing of the value of a selector.
- protected function seek($selector, &$ret, $lowercase=false)
- {
- global $debugObject;
- if (is_object($debugObject)) { $debugObject->debugLogEntry(1); }
-
- list($tag, $key, $val, $exp, $no_key) = $selector;
-
- // xpath index
- if ($tag && $key && is_numeric($key))
- {
- $count = 0;
- foreach ($this->children as $c)
- {
- if ($tag==='*' || $tag===$c->tag) {
- if (++$count==$key) {
- $ret[$c->_[HDOM_INFO_BEGIN]] = 1;
- return;
- }
- }
- }
- return;
- }
-
- $end = (!empty($this->_[HDOM_INFO_END])) ? $this->_[HDOM_INFO_END] : 0;
- if ($end==0) {
- $parent = $this->parent;
- while (!isset($parent->_[HDOM_INFO_END]) && $parent!==null) {
- $end -= 1;
- $parent = $parent->parent;
- }
- $end += $parent->_[HDOM_INFO_END];
- }
-
- for ($i=$this->_[HDOM_INFO_BEGIN]+1; $i<$end; ++$i) {
- $node = $this->dom->nodes[$i];
-
- $pass = true;
-
- if ($tag==='*' && !$key) {
- if (in_array($node, $this->children, true))
- $ret[$i] = 1;
- continue;
- }
-
- // compare tag
- if ($tag && $tag!=$node->tag && $tag!=='*') {$pass=false;}
- // compare key
- if ($pass && $key) {
- if ($no_key) {
- if (isset($node->attr[$key])) $pass=false;
- } else {
- if (($key != "plaintext") && !isset($node->attr[$key])) $pass=false;
- }
- }
- // compare value
- if ($pass && $key && $val && $val!=='*') {
- // If they have told us that this is a "plaintext" search then we want the plaintext of the node - right?
- if ($key == "plaintext") {
- // $node->plaintext actually returns $node->text();
- $nodeKeyValue = $node->text();
- } else {
- // this is a normal search, we want the value of that attribute of the tag.
- $nodeKeyValue = $node->attr[$key];
- }
- if (is_object($debugObject)) {$debugObject->debugLog(2, "testing node: " . $node->tag . " for attribute: " . $key . $exp . $val . " where nodes value is: " . $nodeKeyValue);}
-
- //PaperG - If lowercase is set, do a case insensitive test of the value of the selector.
- if ($lowercase) {
- $check = $this->match($exp, strtolower($val), strtolower($nodeKeyValue));
- } else {
- $check = $this->match($exp, $val, $nodeKeyValue);
- }
- if (is_object($debugObject)) {$debugObject->debugLog(2, "after match: " . ($check ? "true" : "false"));}
-
- // handle multiple class
- if (!$check && strcasecmp($key, 'class')===0) {
- foreach (explode(' ',$node->attr[$key]) as $k) {
- // Without this, there were cases where leading, trailing, or double spaces lead to our comparing blanks - bad form.
- if (!empty($k)) {
- if ($lowercase) {
- $check = $this->match($exp, strtolower($val), strtolower($k));
- } else {
- $check = $this->match($exp, $val, $k);
- }
- if ($check) break;
- }
- }
- }
- if (!$check) $pass = false;
- }
- if ($pass) $ret[$i] = 1;
- unset($node);
- }
- // It's passed by reference so this is actually what this function returns.
- if (is_object($debugObject)) {$debugObject->debugLog(1, "EXIT - ret: ", $ret);}
- }
-
- protected function match($exp, $pattern, $value) {
- global $debugObject;
- if (is_object($debugObject)) {$debugObject->debugLogEntry(1);}
-
- switch ($exp) {
- case '=':
- return ($value===$pattern);
- case '!=':
- return ($value!==$pattern);
- case '^=':
- return preg_match("/^".preg_quote($pattern,'/')."/", $value);
- case '$=':
- return preg_match("/".preg_quote($pattern,'/')."$/", $value);
- case '*=':
- if ($pattern[0]=='/') {
- return preg_match($pattern, $value);
- }
- return preg_match("/".$pattern."/i", $value);
- }
- return false;
- }
-
- protected function parse_selector($selector_string) {
- global $debugObject;
- if (is_object($debugObject)) {$debugObject->debugLogEntry(1);}
-
- // pattern of CSS selectors, modified from mootools
- // Paperg: Add the colon to the attrbute, so that it properly finds like google does.
- // Note: if you try to look at this attribute, yo MUST use getAttribute since $dom->x:y will fail the php syntax check.
-// Notice the \[ starting the attbute? and the @? following? This implies that an attribute can begin with an @ sign that is not captured.
-// This implies that an html attribute specifier may start with an @ sign that is NOT captured by the expression.
-// farther study is required to determine of this should be documented or removed.
-// $pattern = "/([\w-:\*]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?(!?[\w-]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is";
- $pattern = "/([\w-:\*]*)(?:\#([\w-]+)|\.([\w-]+))?(?:\[@?(!?[\w-:]+)(?:([!*^$]?=)[\"']?(.*?)[\"']?)?\])?([\/, ]+)/is";
- preg_match_all($pattern, trim($selector_string).' ', $matches, PREG_SET_ORDER);
- if (is_object($debugObject)) {$debugObject->debugLog(2, "Matches Array: ", $matches);}
-
- $selectors = array();
- $result = array();
- //print_r($matches);
-
- foreach ($matches as $m) {
- $m[0] = trim($m[0]);
- if ($m[0]==='' || $m[0]==='/' || $m[0]==='//') continue;
- // for browser generated xpath
- if ($m[1]==='tbody') continue;
-
- list($tag, $key, $val, $exp, $no_key) = array($m[1], null, null, '=', false);
- if (!empty($m[2])) {$key='id'; $val=$m[2];}
- if (!empty($m[3])) {$key='class'; $val=$m[3];}
- if (!empty($m[4])) {$key=$m[4];}
- if (!empty($m[5])) {$exp=$m[5];}
- if (!empty($m[6])) {$val=$m[6];}
-
- // convert to lowercase
- if ($this->dom->lowercase) {$tag=strtolower($tag); $key=strtolower($key);}
- //elements that do NOT have the specified attribute
- if (isset($key[0]) && $key[0]==='!') {$key=substr($key, 1); $no_key=true;}
-
- $result[] = array($tag, $key, $val, $exp, $no_key);
- if (trim($m[7])===',') {
- $selectors[] = $result;
- $result = array();
- }
- }
- if (count($result)>0)
- $selectors[] = $result;
- return $selectors;
- }
-
- function __get($name) {
- if (isset($this->attr[$name]))
- {
- return $this->convert_text($this->attr[$name]);
- }
- switch ($name) {
- case 'outertext': return $this->outertext();
- case 'innertext': return $this->innertext();
- case 'plaintext': return $this->text();
- case 'xmltext': return $this->xmltext();
- default: return array_key_exists($name, $this->attr);
- }
- }
-
- function __set($name, $value) {
- switch ($name) {
- case 'outertext': return $this->_[HDOM_INFO_OUTER] = $value;
- case 'innertext':
- if (isset($this->_[HDOM_INFO_TEXT])) return $this->_[HDOM_INFO_TEXT] = $value;
- return $this->_[HDOM_INFO_INNER] = $value;
- }
- if (!isset($this->attr[$name])) {
- $this->_[HDOM_INFO_SPACE][] = array(' ', '', '');
- $this->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_DOUBLE;
- }
- $this->attr[$name] = $value;
- }
-
- function __isset($name) {
- switch ($name) {
- case 'outertext': return true;
- case 'innertext': return true;
- case 'plaintext': return true;
- }
- //no value attr: nowrap, checked selected...
- return (array_key_exists($name, $this->attr)) ? true : isset($this->attr[$name]);
- }
-
- function __unset($name) {
- if (isset($this->attr[$name]))
- unset($this->attr[$name]);
- }
-
- // PaperG - Function to convert the text from one character set to another if the two sets are not the same.
- function convert_text($text)
- {
- global $debugObject;
- if (is_object($debugObject)) {$debugObject->debugLogEntry(1);}
-
- $converted_text = $text;
-
- $sourceCharset = "";
- $targetCharset = "";
-
- if ($this->dom)
- {
- $sourceCharset = strtoupper($this->dom->_charset);
- $targetCharset = strtoupper($this->dom->_target_charset);
- }
- if (is_object($debugObject)) {$debugObject->debugLog(3, "source charset: " . $sourceCharset . " target charaset: " . $targetCharset);}
-
- if (!empty($sourceCharset) && !empty($targetCharset) && (strcasecmp($sourceCharset, $targetCharset) != 0))
- {
- // Check if the reported encoding could have been incorrect and the text is actually already UTF-8
- if ((strcasecmp($targetCharset, 'UTF-8') == 0) && ($this->is_utf8($text)))
- {
- $converted_text = $text;
- }
- else
- {
- $converted_text = iconv($sourceCharset, $targetCharset, $text);
- }
- }
-
- // Lets make sure that we don't have that silly BOM issue with any of the utf-8 text we output.
- if ($targetCharset == 'UTF-8')
- {
- if (substr($converted_text, 0, 3) == "\xef\xbb\xbf")
- {
- $converted_text = substr($converted_text, 3);
- }
- if (substr($converted_text, -3) == "\xef\xbb\xbf")
- {
- $converted_text = substr($converted_text, 0, -3);
- }
- }
-
- return $converted_text;
- }
-
- /**
- * Returns true if $string is valid UTF-8 and false otherwise.
- *
- * @param mixed $str String to be tested
- * @return boolean
- */
- static function is_utf8($str)
- {
- $c=0; $b=0;
- $bits=0;
- $len=strlen($str);
- for($i=0; $i<$len; $i++)
- {
- $c=ord($str[$i]);
- if($c > 128)
- {
- if(($c >= 254)) return false;
- elseif($c >= 252) $bits=6;
- elseif($c >= 248) $bits=5;
- elseif($c >= 240) $bits=4;
- elseif($c >= 224) $bits=3;
- elseif($c >= 192) $bits=2;
- else return false;
- if(($i+$bits) > $len) return false;
- while($bits > 1)
- {
- $i++;
- $b=ord($str[$i]);
- if($b < 128 || $b > 191) return false;
- $bits--;
- }
- }
- }
- return true;
- }
- /*
- function is_utf8($string)
- {
- //this is buggy
- return (utf8_encode(utf8_decode($string)) == $string);
- }
- */
-
- /**
- * Function to try a few tricks to determine the displayed size of an img on the page.
- * NOTE: This will ONLY work on an IMG tag. Returns FALSE on all other tag types.
- *
- * @author John Schlick
- * @version April 19 2012
- * @return array an array containing the 'height' and 'width' of the image on the page or -1 if we can't figure it out.
- */
- function get_display_size()
- {
- global $debugObject;
-
- $width = -1;
- $height = -1;
-
- if ($this->tag !== 'img')
- {
- return false;
- }
-
- // See if there is aheight or width attribute in the tag itself.
- if (isset($this->attr['width']))
- {
- $width = $this->attr['width'];
- }
-
- if (isset($this->attr['height']))
- {
- $height = $this->attr['height'];
- }
-
- // Now look for an inline style.
- if (isset($this->attr['style']))
- {
- // Thanks to user gnarf from stackoverflow for this regular expression.
- $attributes = array();
- preg_match_all("/([\w-]+)\s*:\s*([^;]+)\s*;?/", $this->attr['style'], $matches, PREG_SET_ORDER);
- foreach ($matches as $match) {
- $attributes[$match[1]] = $match[2];
- }
-
- // If there is a width in the style attributes:
- if (isset($attributes['width']) && $width == -1)
- {
- // check that the last two characters are px (pixels)
- if (strtolower(substr($attributes['width'], -2)) == 'px')
- {
- $proposed_width = substr($attributes['width'], 0, -2);
- // Now make sure that it's an integer and not something stupid.
- if (filter_var($proposed_width, FILTER_VALIDATE_INT))
- {
- $width = $proposed_width;
- }
- }
- }
-
- // If there is a width in the style attributes:
- if (isset($attributes['height']) && $height == -1)
- {
- // check that the last two characters are px (pixels)
- if (strtolower(substr($attributes['height'], -2)) == 'px')
- {
- $proposed_height = substr($attributes['height'], 0, -2);
- // Now make sure that it's an integer and not something stupid.
- if (filter_var($proposed_height, FILTER_VALIDATE_INT))
- {
- $height = $proposed_height;
- }
- }
- }
-
- }
-
- // Future enhancement:
- // Look in the tag to see if there is a class or id specified that has a height or width attribute to it.
-
- // Far future enhancement
- // Look at all the parent tags of this image to see if they specify a class or id that has an img selector that specifies a height or width
- // Note that in this case, the class or id will have the img subselector for it to apply to the image.
-
- // ridiculously far future development
- // If the class or id is specified in a SEPARATE css file thats not on the page, go get it and do what we were just doing for the ones on the page.
-
- $result = array('height' => $height,
- 'width' => $width);
- return $result;
- }
-
- // camel naming conventions
- function getAllAttributes() {return $this->attr;}
- function getAttribute($name) {return $this->__get($name);}
- function setAttribute($name, $value) {$this->__set($name, $value);}
- function hasAttribute($name) {return $this->__isset($name);}
- function removeAttribute($name) {$this->__set($name, null);}
- function getElementById($id) {return $this->find("#$id", 0);}
- function getElementsById($id, $idx=null) {return $this->find("#$id", $idx);}
- function getElementByTagName($name) {return $this->find($name, 0);}
- function getElementsByTagName($name, $idx=null) {return $this->find($name, $idx);}
- function parentNode() {return $this->parent();}
- function childNodes($idx=-1) {return $this->children($idx);}
- function firstChild() {return $this->first_child();}
- function lastChild() {return $this->last_child();}
- function nextSibling() {return $this->next_sibling();}
- function previousSibling() {return $this->prev_sibling();}
- function hasChildNodes() {return $this->has_child();}
- function nodeName() {return $this->tag;}
- function appendChild($node) {$node->parent($this); return $node;}
-
-}
-
-/**
- * simple html dom parser
- * Paperg - in the find routine: allow us to specify that we want case insensitive testing of the value of the selector.
- * Paperg - change $size from protected to public so we can easily access it
- * Paperg - added ForceTagsClosed in the constructor which tells us whether we trust the html or not. Default is to NOT trust it.
- *
- * @package PlaceLocalInclude
- */
-class simple_html_dom
-{
- public $root = null;
- public $nodes = array();
- public $callback = null;
- public $lowercase = false;
- // Used to keep track of how large the text was when we started.
- public $original_size;
- public $size;
- protected $pos;
- protected $doc;
- protected $char;
- protected $cursor;
- protected $parent;
- protected $noise = array();
- protected $token_blank = " \t\r\n";
- protected $token_equal = ' =/>';
- protected $token_slash = " />\r\n\t";
- protected $token_attr = ' >';
- // Note that this is referenced by a child node, and so it needs to be public for that node to see this information.
- public $_charset = '';
- public $_target_charset = '';
- protected $default_br_text = "";
- public $default_span_text = "";
-
- // use isset instead of in_array, performance boost about 30%...
- protected $self_closing_tags = array('img'=>1, 'br'=>1, 'input'=>1, 'meta'=>1, 'link'=>1, 'hr'=>1, 'base'=>1, 'embed'=>1, 'spacer'=>1);
- protected $block_tags = array('root'=>1, 'body'=>1, 'form'=>1, 'div'=>1, 'span'=>1, 'table'=>1);
- // Known sourceforge issue #2977341
- // B tags that are not closed cause us to return everything to the end of the document.
- protected $optional_closing_tags = array(
- 'tr'=>array('tr'=>1, 'td'=>1, 'th'=>1),
- 'th'=>array('th'=>1),
- 'td'=>array('td'=>1),
- 'li'=>array('li'=>1),
- 'dt'=>array('dt'=>1, 'dd'=>1),
- 'dd'=>array('dd'=>1, 'dt'=>1),
- 'dl'=>array('dd'=>1, 'dt'=>1),
- 'p'=>array('p'=>1),
- 'nobr'=>array('nobr'=>1),
- 'b'=>array('b'=>1),
- 'option'=>array('option'=>1),
- );
-
- function __construct($str=null, $lowercase=true, $forceTagsClosed=true, $target_charset=DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
- {
- if ($str)
- {
- if (preg_match("/^http:\/\//i",$str) || is_file($str))
- {
- $this->load_file($str);
- }
- else
- {
- $this->load($str, $lowercase, $stripRN, $defaultBRText, $defaultSpanText);
- }
- }
- // Forcing tags to be closed implies that we don't trust the html, but it can lead to parsing errors if we SHOULD trust the html.
- if (!$forceTagsClosed) {
- $this->optional_closing_array=array();
- }
- $this->_target_charset = $target_charset;
- }
-
- function __destruct()
- {
- $this->clear();
- }
-
- // load html from string
- function load($str, $lowercase=true, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
- {
- global $debugObject;
-
- // prepare
- $this->prepare($str, $lowercase, $stripRN, $defaultBRText, $defaultSpanText);
- // strip out comments
- $this->remove_noise("''is");
- // strip out cdata
- $this->remove_noise("''is", true);
- // Per sourceforge http://sourceforge.net/tracker/?func=detail&aid=2949097&group_id=218559&atid=1044037
- // Script tags removal now preceeds style tag removal.
- // strip out ';
-else{
-/* echo generar_miniatura_alto($name,"150");
- echo generar_miniatura_alto($name,"300");
- echo generar_miniatura_alto($name,"600");
- */
- echo generar_miniatura($name,"150");
- echo generar_miniatura($name,"300");
- echo generar_miniatura($name,"600");
- ///$name= "$name?$coordenadas"
-echo " ";
-}
-}
-else echo " ";
-
-}
-else{
-echo "";
-}
-
-function generar_miniatura($file,$width) {
//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[0] / $file_info[1];
// Calculamos las nuevas dimensiones
$newwidth = $width;
$newheight = round($newwidth / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
imagejpeg($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 80);
-imagepng($thumb,"$_SESSION[path_images_secure]/".$width."/$file", 9);
-//imagegif($thumb,"$_SESSION[path_images_secure]/".$width."/$file");
-//imagejpeg($thumb,null, 80);
-}
-function generar_miniatura_alto($file,$alto) {
//$archivo = $file;
-$archivo = "$_SESSION[path_images_secure]/full/".$file;
// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
$file_info = getimagesize($archivo);
// Obtenemos la relación de aspecto
$ratio = $file_info[1]/$file_info[0];
// Calculamos las nuevas dimensiones
-$newheight = $alto;
$newwidth = round($newheight / $ratio);
// Sacamos la extensión del archivo
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
// Dependiendo de la extensión llamamos a distintas funciones
switch ($ext) {
case "jpg":
$img = imagecreatefromjpeg($archivo);
break;
case "png":
$img = imagecreatefrompng($archivo);
break;
case "gif":
$img = imagecreatefromgif($archivo);
break;
}
// Creamos la miniatura
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
// La redimensionamos
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
//header("Content-type: image/jpeg");
-imagepng($thumb,"$_SESSION[path_images_secure]/".$alto."/$file", 80);
-imagejpeg($thumb,"$_SESSION[path_images_secure]/".$alto."/$file", 80);
-//imagejpeg($thumb,null, 80);
-}
-
-// Convertir un string "1/123" a su representación float
-function exif_float($value) {
- $pos = strpos($value, '/');
- if ($pos === false) return (float) $value;
- $a = (float) substr($value, 0, $pos);
- $b = (float) substr($value, $pos+1);
- return ($b == 0) ? ($a) : ($a / $b);
-}
-
-function leer_exif($file){
- //$file = "/var/www/html/milfs/images/gps.jpg";
- $exif = exif_read_data( $file );
-if ( !empty($exif['GPSLongitude']) && !empty($exif['GPSLatitude']) ) {
- $d = (float) $exif['GPSLongitude'][0];
- $m = exif_float($exif['GPSLongitude'][1] );
- $s = exif_float( $exif['GPSLongitude'][2] );
-
- $gps_longitude = (float) $d + $m/60 + $s/3600;
- if ( $exif['GPSLongitudeRef'] == 'W')
- $gps_longitude = -$gps_longitude;
-
- $d = $exif['GPSLatitude'][0];
- $m = exif_float($exif['GPSLatitude'][1] );
- $s = exif_float( $exif['GPSLatitude'][2] );
-
- $gps_latitude = (float) $d + $m/60 + $s/3600;
- if ( $exif['GPSLatitudeRef'] == 'S')
- $gps_latitude = -$gps_latitude;
- if($gps_latitude !='') {
- $resultado = "../mapa.php?lon=$gps_latitude&lat=$gps_longitude&zoom=18&exif=exif";
- }else{$resultado ="";}
-//$resultado = "$gps_longitude $gps_latitude";
-
- return $resultado;
-}
-}
-
-?>
-
diff --git a/milfs/includes/upload_archivo.php b/milfs/includes/upload_archivo.php
deleted file mode 100644
index 7fe3d58..0000000
--- a/milfs/includes/upload_archivo.php
+++ /dev/null
@@ -1,38 +0,0 @@
-parent.resultadoUploadArchivo(1,"'.$nombre.'","aviso_archivo"); ';
-else{
-echo ' ';
-}
-}
-else echo ' ';
-}
-else{
-echo ' ';
-}
-?>
-
diff --git a/milfs/includes/upload_generico.php b/milfs/includes/upload_generico.php
deleted file mode 100644
index fba1fac..0000000
--- a/milfs/includes/upload_generico.php
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
diff --git a/milfs/index.php b/milfs/index.php
deleted file mode 100644
index dba8af4..0000000
--- a/milfs/index.php
+++ /dev/null
@@ -1,307 +0,0 @@
-processRequests();
-
-$embebido =0;
-if (isset($_REQUEST['form'])) {
- $form = $_REQUEST['form'];
- $opciones["formato"]= $_REQUEST['formato'];
- } else {$form = "";}
- if($form !='') {$embebido = 1;}
-if (isset($_REQUEST['identificador'])) {$identificador = $_REQUEST['identificador'];} else {$identificador = "";}
- if($identificador !='') {$embebido = 1;}
-if (isset($_REQUEST['id'])) {$id = $_REQUEST['id'];} else {$id = "";}
-if (isset($_REQUEST['campo'])) {$campo = $_REQUEST['campo'];} else {$campo = "";}
-if (isset($_REQUEST['consulta'])) {$consulta = $_REQUEST['consulta'];} else {$consulta = "";}
-if (isset($_REQUEST['t'])) {$t = $_REQUEST['t'];} else {$t = "";}
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("xajax/");
- // $xajax->debugOn();
- //$xajax->statusMessagesOn();
- ?>
-
-
-
- ";}else{ echo " ";} ?>
-
-
-
-
-
-
-
-
-
- I<3MILFS
-
- xajax_formulario_listado('','contenido','$id')";}
- elseif($campo !=''){$onload ="";}
- elseif($consulta !=''){$onload ="";}
- else{}
-
- if( isset($_REQUEST['psi'])){$onload ="";}
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/js/bootstrap-markdown.js b/milfs/js/bootstrap-markdown.js
deleted file mode 100644
index d9a7b76..0000000
--- a/milfs/js/bootstrap-markdown.js
+++ /dev/null
@@ -1,1369 +0,0 @@
-/* ===================================================
- * bootstrap-markdown.js v2.7.0
- * http://github.com/toopay/bootstrap-markdown
- * ===================================================
- * Copyright 2013-2014 Taufan Aditya
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-!function ($) {
-
- "use strict"; // jshint ;_;
-
-
- /* MARKDOWN CLASS DEFINITION
- * ========================== */
-
- var Markdown = function (element, options) {
- // Class Properties
- this.$ns = 'bootstrap-markdown'
- this.$element = $(element)
- this.$editable = {el:null, type:null,attrKeys:[], attrValues:[], content:null}
- this.$options = $.extend(true, {}, $.fn.markdown.defaults, options, this.$element.data(), this.$element.data('options'))
- this.$oldContent = null
- this.$isPreview = false
- this.$isFullscreen = false
- this.$editor = null
- this.$textarea = null
- this.$handler = []
- this.$callback = []
- this.$nextTab = []
-
- this.showEditor()
- }
-
- Markdown.prototype = {
-
- constructor: Markdown
-
- , __alterButtons: function(name,alter) {
- var handler = this.$handler, isAll = (name == 'all'),that = this
-
- $.each(handler,function(k,v) {
- var halt = true
- if (isAll) {
- halt = false
- } else {
- halt = v.indexOf(name) < 0
- }
-
- if (halt == false) {
- alter(that.$editor.find('button[data-handler="'+v+'"]'))
- }
- })
- }
-
- , __buildButtons: function(buttonsArray, container) {
- var i,
- ns = this.$ns,
- handler = this.$handler,
- callback = this.$callback
-
- for (i=0;i', {
- 'class': 'btn-group'
- })
-
- for (z=0;z');
- buttonContainer.text(' ' + this.__localize(btnText)).addClass('btn-default btn-sm').addClass(btnClass);
- if(btnClass.match(/btn\-(primary|success|info|warning|danger|link)/)){
- buttonContainer.removeClass('btn-default');
- }
- buttonContainer.attr({
- 'type': 'button',
- 'title': this.__localize(button.title) + hotkeyCaption,
- 'tabindex': tabIndex,
- 'data-provider': ns,
- 'data-handler': buttonHandler,
- 'data-hotkey': hotkey
- });
- if (button.toggle == true){
- buttonContainer.attr('data-toggle', 'button');
- }
- buttonIconContainer = $(' ');
- buttonIconContainer.addClass(buttonIcon);
- buttonIconContainer.prependTo(buttonContainer);
-
- // Attach the button object
- btnGroupContainer.append(buttonContainer);
-
- // Register handler and callback
- handler.push(buttonHandler);
- callback.push(button.callback);
- }
-
- // Attach the button group into container dom
- container.append(btnGroupContainer);
- }
- }
-
- return container;
- }
- , __setListener: function() {
- // Set size and resizable Properties
- var hasRows = typeof this.$textarea.attr('rows') != 'undefined',
- maxRows = this.$textarea.val().split("\n").length > 5 ? this.$textarea.val().split("\n").length : '5',
- rowsVal = hasRows ? this.$textarea.attr('rows') : maxRows
-
- this.$textarea.attr('rows',rowsVal)
- if (this.$options.resize) {
- this.$textarea.css('resize',this.$options.resize)
- }
-
- this.$textarea
- .on('focus', $.proxy(this.focus, this))
- .on('keypress', $.proxy(this.keypress, this))
- .on('keyup', $.proxy(this.keyup, this))
- .on('change', $.proxy(this.change, this))
-
- if (this.eventSupported('keydown')) {
- this.$textarea.on('keydown', $.proxy(this.keydown, this))
- }
-
- // Re-attach markdown data
- this.$textarea.data('markdown',this)
- }
-
- , __handle: function(e) {
- var target = $(e.currentTarget),
- handler = this.$handler,
- callback = this.$callback,
- handlerName = target.attr('data-handler'),
- callbackIndex = handler.indexOf(handlerName),
- callbackHandler = callback[callbackIndex]
-
- // Trigger the focusin
- $(e.currentTarget).focus()
-
- callbackHandler(this)
-
- // Trigger onChange for each button handle
- this.change(this);
-
- // Unless it was the save handler,
- // focusin the textarea
- if (handlerName.indexOf('cmdSave') < 0) {
- this.$textarea.focus()
- }
-
- e.preventDefault()
- }
-
- , __localize: function(string) {
- var messages = $.fn.markdown.messages,
- language = this.$options.language
- if (
- typeof messages !== 'undefined' &&
- typeof messages[language] !== 'undefined' &&
- typeof messages[language][string] !== 'undefined'
- ) {
- return messages[language][string];
- }
- return string;
- }
-
- , __getIcon: function(src) {
- return typeof src == 'object' ? src[this.$options.iconlibrary] : src;
- }
-
- , setFullscreen: function(mode) {
- var $editor = this.$editor,
- $textarea = this.$textarea
-
- if (mode === true) {
- $editor.addClass('md-fullscreen-mode')
- $('body').addClass('md-nooverflow')
- this.$options.onFullscreen(this)
- } else {
- $editor.removeClass('md-fullscreen-mode')
- $('body').removeClass('md-nooverflow')
- }
-
- this.$isFullscreen = mode;
- $textarea.focus()
- }
-
- , showEditor: function() {
- var instance = this,
- textarea,
- ns = this.$ns,
- container = this.$element,
- originalHeigth = container.css('height'),
- originalWidth = container.css('width'),
- editable = this.$editable,
- handler = this.$handler,
- callback = this.$callback,
- options = this.$options,
- editor = $( '
', {
- 'class': 'md-editor',
- click: function() {
- instance.focus()
- }
- })
-
- // Prepare the editor
- if (this.$editor == null) {
- // Create the panel
- var editorHeader = $('
', {
- 'class': 'md-header btn-toolbar'
- })
-
- // Merge the main & additional button groups together
- var allBtnGroups = []
- if (options.buttons.length > 0) allBtnGroups = allBtnGroups.concat(options.buttons[0])
- if (options.additionalButtons.length > 0) allBtnGroups = allBtnGroups.concat(options.additionalButtons[0])
-
- // Reduce and/or reorder the button groups
- if (options.reorderButtonGroups.length > 0) {
- allBtnGroups = allBtnGroups
- .filter(function(btnGroup) {
- return options.reorderButtonGroups.indexOf(btnGroup.name) > -1
- })
- .sort(function(a, b) {
- if (options.reorderButtonGroups.indexOf(a.name) < options.reorderButtonGroups.indexOf(b.name)) return -1
- if (options.reorderButtonGroups.indexOf(a.name) > options.reorderButtonGroups.indexOf(b.name)) return 1
- return 0
- })
- }
-
- // Build the buttons
- if (allBtnGroups.length > 0) {
- editorHeader = this.__buildButtons([allBtnGroups], editorHeader)
- }
-
- if (options.fullscreen.enable) {
- editorHeader.append('').on('click', '.md-control-fullscreen', function(e) {
- e.preventDefault();
- instance.setFullscreen(true)
- })
- }
-
- editor.append(editorHeader)
-
- // Wrap the textarea
- if (container.is('textarea')) {
- container.before(editor)
- textarea = container
- textarea.addClass('md-input')
- editor.append(textarea)
- } else {
- var rawContent = (typeof toMarkdown == 'function') ? toMarkdown(container.html()) : container.html(),
- currentContent = $.trim(rawContent)
-
- // This is some arbitrary content that could be edited
- textarea = $(' ', {
- 'class': 'md-input',
- 'val' : currentContent
- })
-
- editor.append(textarea)
-
- // Save the editable
- editable.el = container
- editable.type = container.prop('tagName').toLowerCase()
- editable.content = container.html()
-
- $(container[0].attributes).each(function(){
- editable.attrKeys.push(this.nodeName)
- editable.attrValues.push(this.nodeValue)
- })
-
- // Set editor to blocked the original container
- container.replaceWith(editor)
- }
-
- var editorFooter = $('
', {
- 'class': 'md-footer'
- }),
- createFooter = false,
- footer = ''
- // Create the footer if savable
- if (options.savable) {
- createFooter = true;
- var saveHandler = 'cmdSave'
-
- // Register handler and callback
- handler.push(saveHandler)
- callback.push(options.onSave)
-
- editorFooter.append(' '
- +this.__localize('Save')
- +' ')
-
-
- }
-
- footer = typeof options.footer === 'function' ? options.footer(this) : options.footer
-
- if ($.trim(footer) !== '') {
- createFooter = true;
- editorFooter.append(footer);
- }
-
- if (createFooter) editor.append(editorFooter)
-
- // Set width
- if (options.width && options.width !== 'inherit') {
- if (jQuery.isNumeric(options.width)) {
- editor.css('display', 'table')
- textarea.css('width', options.width + 'px')
- } else {
- editor.addClass(options.width)
- }
- }
-
- // Set height
- if (options.height && options.height !== 'inherit') {
- if (jQuery.isNumeric(options.height)) {
- var height = options.height
- if (editorHeader) height = Math.max(0, height - editorHeader.outerHeight())
- if (editorFooter) height = Math.max(0, height - editorFooter.outerHeight())
- textarea.css('height', height + 'px')
- } else {
- editor.addClass(options.height)
- }
- }
-
- // Reference
- this.$editor = editor
- this.$textarea = textarea
- this.$editable = editable
- this.$oldContent = this.getContent()
-
- this.__setListener()
-
- // Set editor attributes, data short-hand API and listener
- this.$editor.attr('id',(new Date).getTime())
- this.$editor.on('click', '[data-provider="bootstrap-markdown"]', $.proxy(this.__handle, this))
-
- if (this.$element.is(':disabled') || this.$element.is('[readonly]')) {
- this.$editor.addClass('md-editor-disabled');
- this.disableButtons('all');
- }
-
- if (this.eventSupported('keydown') && typeof jQuery.hotkeys === 'object') {
- editorHeader.find('[data-provider="bootstrap-markdown"]').each(function() {
- var $button = $(this),
- hotkey = $button.attr('data-hotkey')
- if (hotkey.toLowerCase() !== '') {
- textarea.bind('keydown', hotkey, function() {
- $button.trigger('click')
- return false;
- })
- }
- })
- }
-
- if (options.initialstate === 'preview') {
- this.showPreview();
- } else if (options.initialstate === 'fullscreen' && options.fullscreen.enable) {
- this.setFullscreen(true)
- }
-
- } else {
- this.$editor.show()
- }
-
- if (options.autofocus) {
- this.$textarea.focus()
- this.$editor.addClass('active')
- }
-
- if (options.fullscreen.enable && options.fullscreen !== false) {
- this.$editor.append('\
- ')
-
- this.$editor.on('click', '.exit-fullscreen', function(e) {
- e.preventDefault()
- instance.setFullscreen(false)
- })
- }
-
- // hide hidden buttons from options
- this.hideButtons(options.hiddenButtons)
-
- // disable disabled buttons from options
- this.disableButtons(options.disabledButtons)
-
- // Trigger the onShow hook
- options.onShow(this)
-
- return this
- }
-
- , parseContent: function() {
- var content,
- callbackContent = this.$options.onPreview(this) // Try to get the content from callback
-
- if (typeof callbackContent == 'string') {
- // Set the content based by callback content
- content = callbackContent
- } else {
- // Set the content
- var val = this.$textarea.val();
- if(typeof markdown == 'object') {
- content = markdown.toHTML(val);
- }else if(typeof marked == 'function') {
- content = marked(val);
- } else {
- content = val;
- }
- }
-
- return content;
- }
-
- , showPreview: function() {
- var options = this.$options,
- container = this.$textarea,
- afterContainer = container.next(),
- replacementContainer = $('
',{'class':'md-preview','data-provider':'markdown-preview'}),
- content
-
- // Give flag that tell the editor enter preview mode
- this.$isPreview = true
- // Disable all buttons
- this.disableButtons('all').enableButtons('cmdPreview')
-
- content = this.parseContent()
-
- // Build preview element
- replacementContainer.html(content)
-
- if (afterContainer && afterContainer.attr('class') == 'md-footer') {
- // If there is footer element, insert the preview container before it
- replacementContainer.insertBefore(afterContainer)
- } else {
- // Otherwise, just append it after textarea
- container.parent().append(replacementContainer)
- }
-
- // Set the preview element dimensions
- replacementContainer.css({
- width: container.outerWidth() + 'px',
- height: container.outerHeight() + 'px'
- })
-
- if (this.$options.resize) {
- replacementContainer.css('resize',this.$options.resize)
- }
-
- // Hide the last-active textarea
- container.hide()
-
- // Attach the editor instances
- replacementContainer.data('markdown',this)
-
- if (this.$element.is(':disabled') || this.$element.is('[readonly]')) {
- this.$editor.addClass('md-editor-disabled');
- this.disableButtons('all');
- }
-
- return this
- }
-
- , hidePreview: function() {
- // Give flag that tell the editor quit preview mode
- this.$isPreview = false
-
- // Obtain the preview container
- var container = this.$editor.find('div[data-provider="markdown-preview"]')
-
- // Remove the preview container
- container.remove()
-
- // Enable all buttons
- this.enableButtons('all')
- // Disable configured disabled buttons
- this.disableButtons(this.$options.disabledButtons)
-
- // Back to the editor
- this.$textarea.show()
- this.__setListener()
-
- return this
- }
-
- , isDirty: function() {
- return this.$oldContent != this.getContent()
- }
-
- , getContent: function() {
- return this.$textarea.val()
- }
-
- , setContent: function(content) {
- this.$textarea.val(content)
-
- return this
- }
-
- , findSelection: function(chunk) {
- var content = this.getContent(), startChunkPosition
-
- if (startChunkPosition = content.indexOf(chunk), startChunkPosition >= 0 && chunk.length > 0) {
- var oldSelection = this.getSelection(), selection
-
- this.setSelection(startChunkPosition,startChunkPosition+chunk.length)
- selection = this.getSelection()
-
- this.setSelection(oldSelection.start,oldSelection.end)
-
- return selection
- } else {
- return null
- }
- }
-
- , getSelection: function() {
-
- var e = this.$textarea[0]
-
- return (
-
- ('selectionStart' in e && function() {
- var l = e.selectionEnd - e.selectionStart
- return { start: e.selectionStart, end: e.selectionEnd, length: l, text: e.value.substr(e.selectionStart, l) }
- }) ||
-
- /* browser not supported */
- function() {
- return null
- }
-
- )()
-
- }
-
- , setSelection: function(start,end) {
-
- var e = this.$textarea[0]
-
- return (
-
- ('selectionStart' in e && function() {
- e.selectionStart = start
- e.selectionEnd = end
- return
- }) ||
-
- /* browser not supported */
- function() {
- return null
- }
-
- )()
-
- }
-
- , replaceSelection: function(text) {
-
- var e = this.$textarea[0]
-
- return (
-
- ('selectionStart' in e && function() {
- e.value = e.value.substr(0, e.selectionStart) + text + e.value.substr(e.selectionEnd, e.value.length)
- // Set cursor to the last replacement end
- e.selectionStart = e.value.length
- return this
- }) ||
-
- /* browser not supported */
- function() {
- e.value += text
- return jQuery(e)
- }
-
- )()
-
- }
-
- , getNextTab: function() {
- // Shift the nextTab
- if (this.$nextTab.length == 0) {
- return null
- } else {
- var nextTab, tab = this.$nextTab.shift()
-
- if (typeof tab == 'function') {
- nextTab = tab()
- } else if (typeof tab == 'object' && tab.length > 0) {
- nextTab = tab
- }
-
- return nextTab
- }
- }
-
- , setNextTab: function(start,end) {
- // Push new selection into nextTab collections
- if (typeof start == 'string') {
- var that = this
- this.$nextTab.push(function(){
- return that.findSelection(start)
- })
- } else if (typeof start == 'number' && typeof end == 'number') {
- var oldSelection = this.getSelection()
-
- this.setSelection(start,end)
- this.$nextTab.push(this.getSelection())
-
- this.setSelection(oldSelection.start,oldSelection.end)
- }
-
- return
- }
-
- , __parseButtonNameParam: function(nameParam) {
- var buttons = []
-
- if (typeof nameParam == 'string') {
- buttons.push(nameParam)
- } else {
- buttons = nameParam
- }
-
- return buttons
- }
-
- , enableButtons: function(name) {
- var buttons = this.__parseButtonNameParam(name),
- that = this
-
- $.each(buttons, function(i, v) {
- that.__alterButtons(buttons[i], function (el) {
- el.removeAttr('disabled')
- });
- })
-
- return this;
- }
-
- , disableButtons: function(name) {
- var buttons = this.__parseButtonNameParam(name),
- that = this
-
- $.each(buttons, function(i, v) {
- that.__alterButtons(buttons[i], function (el) {
- el.attr('disabled','disabled')
- });
- })
-
- return this;
- }
-
- , hideButtons: function(name) {
- var buttons = this.__parseButtonNameParam(name),
- that = this
-
- $.each(buttons, function(i, v) {
- that.__alterButtons(buttons[i], function (el) {
- el.addClass('hidden');
- });
- })
-
- return this;
-
- }
-
- , showButtons: function(name) {
- var buttons = this.__parseButtonNameParam(name),
- that = this
-
- $.each(buttons, function(i, v) {
- that.__alterButtons(buttons[i], function (el) {
- el.removeClass('hidden');
- });
- })
-
- return this;
-
- }
-
- , eventSupported: function(eventName) {
- var isSupported = eventName in this.$element
- if (!isSupported) {
- this.$element.setAttribute(eventName, 'return;')
- isSupported = typeof this.$element[eventName] === 'function'
- }
- return isSupported
- }
-
- , keyup: function (e) {
- var blocked = false
- switch(e.keyCode) {
- case 40: // down arrow
- case 38: // up arrow
- case 16: // shift
- case 17: // ctrl
- case 18: // alt
- break
-
- case 9: // tab
- var nextTab
- if (nextTab = this.getNextTab(),nextTab != null) {
- // Get the nextTab if exists
- var that = this
- setTimeout(function(){
- that.setSelection(nextTab.start,nextTab.end)
- },500)
-
- blocked = true
- } else {
- // The next tab memory contains nothing...
- // check the cursor position to determine tab action
- var cursor = this.getSelection()
-
- if (cursor.start == cursor.end && cursor.end == this.getContent().length) {
- // The cursor already reach the end of the content
- blocked = false
-
- } else {
- // Put the cursor to the end
- this.setSelection(this.getContent().length,this.getContent().length)
-
- blocked = true
- }
- }
-
- break
-
- case 13: // enter
- blocked = false
- break
- case 27: // escape
- if (this.$isFullscreen) this.setFullscreen(false)
- blocked = false
- break
-
- default:
- blocked = false
- }
-
- if (blocked) {
- e.stopPropagation()
- e.preventDefault()
- }
-
- this.$options.onChange(this)
- }
-
- , change: function(e) {
- this.$options.onChange(this);
- return this;
- }
-
- , focus: function (e) {
- var options = this.$options,
- isHideable = options.hideable,
- editor = this.$editor
-
- editor.addClass('active')
-
- // Blur other markdown(s)
- $(document).find('.md-editor').each(function(){
- if ($(this).attr('id') != editor.attr('id')) {
- var attachedMarkdown
-
- if (attachedMarkdown = $(this).find('textarea').data('markdown'),
- attachedMarkdown == null) {
- attachedMarkdown = $(this).find('div[data-provider="markdown-preview"]').data('markdown')
- }
-
- if (attachedMarkdown) {
- attachedMarkdown.blur()
- }
- }
- })
-
- // Trigger the onFocus hook
- options.onFocus(this);
-
- return this
- }
-
- , blur: function (e) {
- var options = this.$options,
- isHideable = options.hideable,
- editor = this.$editor,
- editable = this.$editable
-
- if (editor.hasClass('active') || this.$element.parent().length == 0) {
- editor.removeClass('active')
-
- if (isHideable) {
-
- // Check for editable elements
- if (editable.el != null) {
- // Build the original element
- var oldElement = $('<'+editable.type+'/>'),
- content = this.getContent(),
- currentContent = (typeof markdown == 'object') ? markdown.toHTML(content) : content
-
- $(editable.attrKeys).each(function(k,v) {
- oldElement.attr(editable.attrKeys[k],editable.attrValues[k])
- })
-
- // Get the editor content
- oldElement.html(currentContent)
-
- editor.replaceWith(oldElement)
- } else {
- editor.hide()
-
- }
- }
-
- // Trigger the onBlur hook
- options.onBlur(this)
- }
-
- return this
- }
-
- }
-
- /* MARKDOWN PLUGIN DEFINITION
- * ========================== */
-
- var old = $.fn.markdown
-
- $.fn.markdown = function (option) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('markdown')
- , options = typeof option == 'object' && option
- if (!data) $this.data('markdown', (data = new Markdown(this, options)))
- })
- }
-
- $.fn.markdown.messages = {}
-
- $.fn.markdown.defaults = {
- /* Editor Properties */
- autofocus: false,
- hideable: false,
- savable:false,
- width: 'inherit',
- height: 'inherit',
- resize: 'none',
- iconlibrary: 'glyph',
- language: 'en',
- initialstate: 'editor',
-
- /* Buttons Properties */
- buttons: [
- [{
- name: 'groupFont',
- data: [{
- name: 'cmdBold',
- hotkey: 'Ctrl+B',
- title: 'Bold',
- icon: { glyph: 'glyphicon glyphicon-bold', fa: 'fa fa-bold', 'fa-3': 'icon-bold' },
- callback: function(e){
- // Give/remove ** surround the selection
- var chunk, cursor, selected = e.getSelection(), content = e.getContent()
-
- if (selected.length == 0) {
- // Give extra word
- chunk = e.__localize('strong text')
- } else {
- chunk = selected.text
- }
-
- // transform selection and set the cursor into chunked text
- if (content.substr(selected.start-2,2) == '**'
- && content.substr(selected.end,2) == '**' ) {
- e.setSelection(selected.start-2,selected.end+2)
- e.replaceSelection(chunk)
- cursor = selected.start-2
- } else {
- e.replaceSelection('**'+chunk+'**')
- cursor = selected.start+2
- }
-
- // Set the cursor
- e.setSelection(cursor,cursor+chunk.length)
- }
- },{
- name: 'cmdItalic',
- title: 'Italic',
- hotkey: 'Ctrl+I',
- icon: { glyph: 'glyphicon glyphicon-italic', fa: 'fa fa-italic', 'fa-3': 'icon-italic' },
- callback: function(e){
- // Give/remove * surround the selection
- var chunk, cursor, selected = e.getSelection(), content = e.getContent()
-
- if (selected.length == 0) {
- // Give extra word
- chunk = e.__localize('emphasized text')
- } else {
- chunk = selected.text
- }
-
- // transform selection and set the cursor into chunked text
- if (content.substr(selected.start-1,1) == '_'
- && content.substr(selected.end,1) == '_' ) {
- e.setSelection(selected.start-1,selected.end+1)
- e.replaceSelection(chunk)
- cursor = selected.start-1
- } else {
- e.replaceSelection('_'+chunk+'_')
- cursor = selected.start+1
- }
-
- // Set the cursor
- e.setSelection(cursor,cursor+chunk.length)
- }
- },{
- name: 'cmdHeading',
- title: 'Heading',
- hotkey: 'Ctrl+H',
- icon: { glyph: 'glyphicon glyphicon-header', fa: 'fa fa-font', 'fa-3': 'icon-font' },
- callback: function(e){
- // Append/remove ### surround the selection
- var chunk, cursor, selected = e.getSelection(), content = e.getContent(), pointer, prevChar
-
- if (selected.length == 0) {
- // Give extra word
- chunk = e.__localize('heading text')
- } else {
- chunk = selected.text + '\n';
- }
-
- // transform selection and set the cursor into chunked text
- if ((pointer = 4, content.substr(selected.start-pointer,pointer) == '### ')
- || (pointer = 3, content.substr(selected.start-pointer,pointer) == '###')) {
- e.setSelection(selected.start-pointer,selected.end)
- e.replaceSelection(chunk)
- cursor = selected.start-pointer
- } else if (selected.start > 0 && (prevChar = content.substr(selected.start-1,1), !!prevChar && prevChar != '\n')) {
- e.replaceSelection('\n\n### '+chunk)
- cursor = selected.start+6
- } else {
- // Empty string before element
- e.replaceSelection('### '+chunk)
- cursor = selected.start+4
- }
-
- // Set the cursor
- e.setSelection(cursor,cursor+chunk.length)
- }
- }]
- },{
- name: 'groupLink',
- data: [{
- name: 'cmdUrl',
- title: 'URL/Link',
- hotkey: 'Ctrl+L',
- icon: { glyph: 'glyphicon glyphicon-link', fa: 'fa fa-link', 'fa-3': 'icon-link' },
- callback: function(e){
- // Give [] surround the selection and prepend the link
- var chunk, cursor, selected = e.getSelection(), content = e.getContent(), link
-
- if (selected.length == 0) {
- // Give extra word
- chunk = e.__localize('enter link description here')
- } else {
- chunk = selected.text
- }
-
- link = prompt(e.__localize('Insert Hyperlink'),'http://')
-
- if (link != null && link != '' && link != 'http://' && link.substr(0,4) == 'http') {
- var sanitizedLink = $(''+link+'
').text()
-
- // transform selection and set the cursor into chunked text
- e.replaceSelection('['+chunk+']('+sanitizedLink+')')
- cursor = selected.start+1
-
- // Set the cursor
- e.setSelection(cursor,cursor+chunk.length)
- }
- }
- },{
- name: 'cmdImage',
- title: 'Image',
- hotkey: 'Ctrl+G',
- icon: { glyph: 'glyphicon glyphicon-picture', fa: 'fa fa-picture-o', 'fa-3': 'icon-picture' },
- callback: function(e){
- // Give ![] surround the selection and prepend the image link
- var chunk, cursor, selected = e.getSelection(), content = e.getContent(), link
-
- if (selected.length == 0) {
- // Give extra word
- chunk = e.__localize('enter image description here')
- } else {
- chunk = selected.text
- }
-
- link = prompt(e.__localize('Insert Image Hyperlink'),'http://')
-
- if (link != null && link != '' && link != 'http://' && link.substr(0,4) == 'http') {
- var sanitizedLink = $(''+link+'
').text()
-
- // transform selection and set the cursor into chunked text
- e.replaceSelection('!['+chunk+']('+sanitizedLink+' "'+e.__localize('enter image title here')+'")')
- cursor = selected.start+2
-
- // Set the next tab
- e.setNextTab(e.__localize('enter image title here'))
-
- // Set the cursor
- e.setSelection(cursor,cursor+chunk.length)
- }
- }
- }]
- },{
- name: 'groupMisc',
- data: [{
- name: 'cmdList',
- hotkey: 'Ctrl+U',
- title: 'Unordered List',
- icon: { glyph: 'glyphicon glyphicon-list', fa: 'fa fa-list', 'fa-3': 'icon-list-ul' },
- callback: function(e){
- // Prepend/Give - surround the selection
- var chunk, cursor, selected = e.getSelection(), content = e.getContent()
-
- // transform selection and set the cursor into chunked text
- if (selected.length == 0) {
- // Give extra word
- chunk = e.__localize('list text here')
-
- e.replaceSelection('- '+chunk)
- // Set the cursor
- cursor = selected.start+2
-
- } else {
- if (selected.text.indexOf('\n') < 0) {
- chunk = selected.text
-
- e.replaceSelection('- '+chunk)
-
- // Set the cursor
- cursor = selected.start+2
- } else {
- var list = []
-
- list = selected.text.split('\n')
- chunk = list[0]
-
- $.each(list,function(k,v) {
- list[k] = '- '+v
- })
-
- e.replaceSelection('\n\n'+list.join('\n'))
-
- // Set the cursor
- cursor = selected.start+4
- }
- }
-
- // Set the cursor
- e.setSelection(cursor,cursor+chunk.length)
- }
- },
- {
- name: 'cmdListO',
- hotkey: 'Ctrl+O',
- title: 'Ordered List',
- icon: { glyph: 'glyphicon glyphicon-th-list', fa: 'fa fa-list-ol', 'fa-3': 'icon-list-ol' },
- callback: function(e) {
-
- // Prepend/Give - surround the selection
- var chunk, cursor, selected = e.getSelection(), content = e.getContent()
-
- // transform selection and set the cursor into chunked text
- if (selected.length == 0) {
- // Give extra word
- chunk = e.__localize('list text here')
- e.replaceSelection('1. '+chunk)
- // Set the cursor
- cursor = selected.start+3
-
- } else {
- if (selected.text.indexOf('\n') < 0) {
- chunk = selected.text
-
- e.replaceSelection('1. '+chunk)
-
- // Set the cursor
- cursor = selected.start+3
- } else {
- var list = []
-
- list = selected.text.split('\n')
- chunk = list[0]
-
- $.each(list,function(k,v) {
- list[k] = '1. '+v
- })
-
- e.replaceSelection('\n\n'+list.join('\n'))
-
- // Set the cursor
- cursor = selected.start+5
- }
- }
-
- // Set the cursor
- e.setSelection(cursor,cursor+chunk.length)
- }
- },
- {
- name: 'cmdCode',
- hotkey: 'Ctrl+K',
- title: 'Code',
- icon: { glyph: 'glyphicon glyphicon-asterisk', fa: 'fa fa-code', 'fa-3': 'icon-code' },
- callback: function(e) {
-
- // Give/remove ** surround the selection
- var chunk, cursor, selected = e.getSelection(), content = e.getContent()
-
- if (selected.length == 0) {
- // Give extra word
- chunk = e.__localize('code text here')
- } else {
- chunk = selected.text
- }
-
- // transform selection and set the cursor into chunked text
- if (content.substr(selected.start-1,1) == '`'
- && content.substr(selected.end,1) == '`' ) {
- e.setSelection(selected.start-1,selected.end+1)
- e.replaceSelection(chunk)
- cursor = selected.start-1
- } else {
- e.replaceSelection('`'+chunk+'`')
- cursor = selected.start+1
- }
-
- // Set the cursor
- e.setSelection(cursor,cursor+chunk.length)
- }
- },
- {
- name: 'cmdQuote',
- hotkey: 'Ctrl+Q',
- title: 'Quote',
- icon: { glyph: 'glyphicon glyphicon-comment', fa: 'fa fa-quote-left', 'fa-3': 'icon-quote-left' },
- callback: function(e) {
- // Prepend/Give - surround the selection
- var chunk, cursor, selected = e.getSelection(), content = e.getContent()
-
- // transform selection and set the cursor into chunked text
- if (selected.length == 0) {
- // Give extra word
- chunk = e.__localize('quote here')
- e.replaceSelection('> '+chunk)
- // Set the cursor
- cursor = selected.start+2
-
- } else {
- if (selected.text.indexOf('\n') < 0) {
- chunk = selected.text
-
- e.replaceSelection('> '+chunk)
-
- // Set the cursor
- cursor = selected.start+2
- } else {
- var list = []
-
- list = selected.text.split('\n')
- chunk = list[0]
-
- $.each(list,function(k,v) {
- list[k] = '> '+v
- })
-
- e.replaceSelection('\n\n'+list.join('\n'))
-
- // Set the cursor
- cursor = selected.start+4
- }
- }
-
- // Set the cursor
- e.setSelection(cursor,cursor+chunk.length)
- }
- }]
- },{
- name: 'groupUtil',
- data: [{
- name: 'cmdPreview',
- toggle: true,
- hotkey: 'Ctrl+P',
- title: 'Preview',
- btnText: 'Preview',
- btnClass: 'btn btn-primary btn-sm',
- icon: { glyph: 'glyphicon glyphicon-search', fa: 'fa fa-search', 'fa-3': 'icon-search' },
- callback: function(e){
- // Check the preview mode and toggle based on this flag
- var isPreview = e.$isPreview,content
-
- if (isPreview == false) {
- // Give flag that tell the editor enter preview mode
- e.showPreview()
- } else {
- e.hidePreview()
- }
- }
- }]
- }]
- ],
- additionalButtons:[], // Place to hook more buttons by code
- reorderButtonGroups:[],
- hiddenButtons:[], // Default hidden buttons
- disabledButtons:[], // Default disabled buttons
- footer: '',
- fullscreen: {
- enable: true,
- icons: {
- fullscreenOn: {
- fa: 'fa fa-expand',
- glyph: 'glyphicon glyphicon-fullscreen',
- 'fa-3': 'icon-resize-full'
- },
- fullscreenOff: {
- fa: 'fa fa-compress',
- glyph: 'glyphicon glyphicon-fullscreen',
- 'fa-3': 'icon-resize-small'
- }
- }
- },
-
- /* Events hook */
- onShow: function (e) {},
- onPreview: function (e) {},
- onSave: function (e) {},
- onBlur: function (e) {},
- onFocus: function (e) {},
- onChange: function(e) {},
- onFullscreen: function(e) {}
- }
-
- $.fn.markdown.Constructor = Markdown
-
-
- /* MARKDOWN NO CONFLICT
- * ==================== */
-
- $.fn.markdown.noConflict = function () {
- $.fn.markdown = old
- return this
- }
-
- /* MARKDOWN GLOBAL FUNCTION & DATA-API
- * ==================================== */
- var initMarkdown = function(el) {
- var $this = el
-
- if ($this.data('markdown')) {
- $this.data('markdown').showEditor()
- return
- }
-
- $this.markdown()
- }
-
- var analyzeMarkdown = function(e) {
- var blurred = false,
- el,
- $docEditor = $(e.currentTarget)
-
- // Check whether it was editor childs or not
- if ((e.type == 'focusin' || e.type == 'click') && $docEditor.length == 1 && typeof $docEditor[0] == 'object'){
- el = $docEditor[0].activeElement
- if ( ! $(el).data('markdown')) {
- if (typeof $(el).parent().parent().parent().attr('class') == "undefined"
- || $(el).parent().parent().parent().attr('class').indexOf('md-editor') < 0) {
- if ( typeof $(el).parent().parent().attr('class') == "undefined"
- || $(el).parent().parent().attr('class').indexOf('md-editor') < 0) {
-
- blurred = true
- }
- } else {
- blurred = false
- }
- }
-
-
- if (blurred) {
- // Blur event
- $(document).find('.md-editor').each(function(){
- var parentMd = $(el).parent()
-
- if ($(this).attr('id') != parentMd.attr('id')) {
- var attachedMarkdown
-
- if (attachedMarkdown = $(this).find('textarea').data('markdown'),
- attachedMarkdown == null) {
- attachedMarkdown = $(this).find('div[data-provider="markdown-preview"]').data('markdown')
- }
-
- if (attachedMarkdown) {
- attachedMarkdown.blur()
- }
- }
- })
- }
-
- e.stopPropagation()
- }
- }
-
- $(document)
- .on('click.markdown.data-api', '[data-provide="markdown-editable"]', function (e) {
- initMarkdown($(this))
- e.preventDefault()
- })
- .on('click', function (e) {
- analyzeMarkdown(e)
- })
- .on('focusin', function (e) {
- analyzeMarkdown(e)
- })
- .ready(function(){
- $('textarea[data-provide="markdown"]').each(function(){
- initMarkdown($(this))
- })
- })
-
-}(window.jQuery);
diff --git a/milfs/js/bootstrap.js b/milfs/js/bootstrap.js
deleted file mode 100644
index 319a85d..0000000
--- a/milfs/js/bootstrap.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
-* Bootstrap.js by @fat & @mdo
-* plugins: bootstrap-transition.js, bootstrap-modal.js, bootstrap-dropdown.js, bootstrap-scrollspy.js, bootstrap-tab.js, bootstrap-tooltip.js, bootstrap-popover.js, bootstrap-affix.js, bootstrap-alert.js, bootstrap-button.js, bootstrap-collapse.js, bootstrap-carousel.js, bootstrap-typeahead.js
-* Copyright 2012 Twitter, Inc.
-* http://www.apache.org/licenses/LICENSE-2.0.txt
-*/
-!function(a){a(function(){a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){var b=function(b,c){this.options=c,this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};b.prototype={constructor:b,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var b=this,c=a.Event("show");this.$element.trigger(c);if(this.isShown||c.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var c=a.support.transition&&b.$element.hasClass("fade");b.$element.parent().length||b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in").attr("aria-hidden",!1),b.enforceFocus(),c?b.$element.one(a.support.transition.end,function(){b.$element.focus().trigger("shown")}):b.$element.focus().trigger("shown")})},hide:function(b){b&&b.preventDefault();var c=this;b=a.Event("hide"),this.$element.trigger(b);if(!this.isShown||b.isDefaultPrevented())return;this.isShown=!1,this.escape(),a(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),a.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var b=this;a(document).on("focusin.modal",function(a){b.$element[0]!==a.target&&!b.$element.has(a.target).length&&b.$element.focus()})},escape:function(){var a=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(b){b.which==27&&a.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),b.hideModal()},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),b.hideModal()})},hideModal:function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('
').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?a.proxy(this.$element[0].focus,this.$element[0]):a.proxy(this.hide,this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!b)return;e?this.$backdrop.one(a.support.transition.end,b):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b):b()):b&&b()}};var c=a.fn.modal;a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("modal"),f=a.extend({},a.fn.modal.defaults,d.data(),typeof c=="object"&&c);e||d.data("modal",e=new b(this,f)),typeof c=="string"?e[c]():f.show&&e.show()})},a.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f).one("hide",function(){c.focus()})})}(window.jQuery),!function(a){function d(){a(".dropdown-backdrop").remove(),a(b).each(function(){e(a(this)).removeClass("open")})}function e(b){var c=b.attr("data-target"),d;c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,"")),d=c&&a(c);if(!d||!d.length)d=b.parent();return d}var b="[data-toggle=dropdown]",c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),f,g;if(c.is(".disabled, :disabled"))return;return f=e(c),g=f.hasClass("open"),d(),g||("ontouchstart"in document.documentElement&&a('
').insertBefore(a(this)).on("click",d),f.toggleClass("open")),c.focus(),!1},keydown:function(c){var d,f,g,h,i,j;if(!/(38|40|27)/.test(c.keyCode))return;d=a(this),c.preventDefault(),c.stopPropagation();if(d.is(".disabled, :disabled"))return;h=e(d),i=h.hasClass("open");if(!i||i&&c.keyCode==27)return c.which==27&&h.find(b).focus(),d.click();f=a("[role=menu] li:not(.divider):visible a",h);if(!f.length)return;j=f.index(f.filter(":focus")),c.keyCode==38&&j>0&&j--,c.keyCode==40&&j a",this.$body=a("body"),this.refresh(),this.process()}b.prototype={constructor:b,refresh:function(){var b=this,c;this.offsets=a([]),this.targets=a([]),c=this.$body.find(this.selector).map(function(){var c=a(this),d=c.data("target")||c.attr("href"),e=/^#\w/.test(d)&&a(d);return e&&e.length&&[[e.position().top+(!a.isWindow(b.$scrollElement.get(0))&&b.$scrollElement.scrollTop()),d]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},process:function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,c=b-this.$scrollElement.height(),d=this.offsets,e=this.targets,f=this.activeTarget,g;if(a>=c)return f!=(g=e.last()[0])&&this.activate(g);for(g=d.length;g--;)f!=e[g]&&a>=d[g]&&(!d[g+1]||a<=d[g+1])&&this.activate(e[g])},activate:function(b){var c,d;this.activeTarget=b,a(this.selector).parent(".active").removeClass("active"),d=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',c=a(d).parent("li").addClass("active"),c.parent(".dropdown-menu").length&&(c=c.closest("li.dropdown").addClass("active")),c.trigger("activate")}};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("scrollspy"),f=typeof c=="object"&&c;e||d.data("scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.defaults={offset:10},a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),!function(a){var b=function(b){this.element=a(b)};b.prototype={constructor:b,show:function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target"),e,f,g;d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;e=c.find(".active:last a")[0],g=a.Event("show",{relatedTarget:e}),b.trigger(g);if(g.isDefaultPrevented())return;f=a(d),this.activate(b.parent("li"),c),this.activate(f,f.parent(),function(){b.trigger({type:"shown",relatedTarget:e})})},activate:function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g):g(),e.removeClass("in")}};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("tab");e||d.data("tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f,g,h,i;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,g=this.options.trigger.split(" ");for(i=g.length;i--;)h=g[i],h=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):h!="manual"&&(e=h=="hover"?"mouseenter":"focus",f=h=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this)));this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,this.$element.data(),b),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a.fn[this.type].defaults,d={},e;this._options&&a.each(this._options,function(a,b){c[a]!=b&&(d[a]=b)},this),e=a(b.currentTarget)[this.type](d).data(this.type);if(!e.options.delay||!e.options.delay.show)return e.show();clearTimeout(this.timeout),e.hoverState="in",this.timeout=setTimeout(function(){e.hoverState=="in"&&e.show()},e.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var b,c,d,e,f,g,h=a.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(h);if(h.isDefaultPrevented())return;b=this.tip(),this.setContent(),this.options.animation&&b.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,b[0],this.$element[0]):this.options.placement,b.detach().css({top:0,left:0,display:"block"}),this.options.container?b.appendTo(this.options.container):b.insertAfter(this.$element),c=this.getPosition(),d=b[0].offsetWidth,e=b[0].offsetHeight;switch(f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}this.applyPlacement(g,f),this.$element.trigger("shown")}},applyPlacement:function(a,b){var c=this.tip(),d=c[0].offsetWidth,e=c[0].offsetHeight,f,g,h,i;c.offset(a).addClass(b).addClass("in"),f=c[0].offsetWidth,g=c[0].offsetHeight,b=="top"&&g!=e&&(a.top=a.top+e-g,i=!0),b=="bottom"||b=="top"?(h=0,a.left<0&&(h=a.left*-2,a.left=0,c.offset(a),f=c[0].offsetWidth,g=c[0].offsetHeight),this.replaceArrow(h-d+f,f,"left")):this.replaceArrow(g-e,g,"top"),i&&c.offset(a)},replaceArrow:function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function e(){var b=setTimeout(function(){c.off(a.support.transition.end).detach()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.detach()})}var b=this,c=this.tip(),d=a.Event("hide");this.$element.trigger(d);if(d.isDefaultPrevented())return;return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?e():c.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var b=this.$element[0];return a.extend({},typeof b.getBoundingClientRect=="function"?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(b){var c=b?a(b.currentTarget)[this.type](this._options).data(this.type):this;c.tip().hasClass("in")?c.hide():c.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=(typeof c.content=="function"?c.content.call(b[0]):c.content)||b.attr("data-content"),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:''}),a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),!function(a){var b=function(b,c){this.options=a.extend({},a.fn.affix.defaults,c),this.$window=a(window).on("scroll.affix.data-api",a.proxy(this.checkPosition,this)).on("click.affix.data-api",a.proxy(function(){setTimeout(a.proxy(this.checkPosition,this),1)},this)),this.$element=a(b),this.checkPosition()};b.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var b=a(document).height(),c=this.$window.scrollTop(),d=this.$element.offset(),e=this.options.offset,f=e.bottom,g=e.top,h="affix affix-top affix-bottom",i;typeof e!="object"&&(f=g=e),typeof g=="function"&&(g=e.top()),typeof f=="function"&&(f=e.bottom()),i=this.unpin!=null&&c+this.unpin<=d.top?!1:f!=null&&d.top+this.$element.height()>=b-f?"bottom":g!=null&&c<=g?"top":!1;if(this.affixed===i)return;this.affixed=i,this.unpin=i=="bottom"?d.top-c:null,this.$element.removeClass(h).addClass("affix"+(i?"-"+i:""))};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("affix"),f=typeof c=="object"&&c;e||d.data("affix",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.defaults={offset:0},a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery),!function(a){var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed").remove()}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.alert.data-api",b,c.prototype.close)}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle")})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b,c,d,e;if(this.transitioning||this.$element.hasClass("in"))return;b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find("> .accordion-group > .in");if(d&&d.length){e=d.data("collapse");if(e&&e.transitioning)return;d.collapse("hide"),e||d.data("collapse",null)}this.$element[b](0),this.transition("addClass",a.Event("show"),"shown"),a.support.transition&&this.$element[b](this.$element[0][c])},hide:function(){var b;if(this.transitioning||!this.$element.hasClass("in"))return;b=this.dimension(),this.reset(this.$element[b]()),this.transition("removeClass",a.Event("hide"),"hidden"),this.$element[b](0)},reset:function(a){var b=this.dimension();return this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element[a!==null?"addClass":"removeClass"]("collapse"),this},transition:function(b,c,d){var e=this,f=function(){c.type=="show"&&e.reset(),e.transitioning=0,e.$element.trigger(d)};this.$element.trigger(c);if(c.isDefaultPrevented())return;this.transitioning=1,this.$element[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=a.extend({},a.fn.collapse.defaults,d.data(),typeof c=="object"&&c);e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();c[a(e).hasClass("in")?"addClass":"removeClass"]("collapsed"),a(e).collapse(f)})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.prototype={cycle:function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(b){var c=this.getActiveIndex(),d=this;if(b>this.$items.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){d.to(b)}):c==b?this.pause().cycle():this.slide(b>c?"next":"prev",a(this.$items[b]))},pause:function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this,j;this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h](),j=a.Event("slide",{relatedTarget:e[0],direction:g});if(e.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")}));if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=a.extend({},a.fn.carousel.defaults,typeof c=="object"&&c),g=typeof c=="string"?c:f.slide;e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.defaults={interval:5e3,pause:"hover"},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),c.data()),g;e.carousel(f),(g=c.attr("data-slide-to"))&&e.data("carousel").pause().to(g).cycle(),b.preventDefault()})}(window.jQuery),!function(a){var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.typeahead.defaults,c),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=a(this.options.menu),this.shown=!1,this.listen()};b.prototype={constructor:b,select:function(){var a=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(a)).change(),this.hide()},updater:function(a){return a},show:function(){var b=a.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:b.top+b.height,left:b.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){var c;return this.query=this.$element.val(),!this.query||this.query.length"+b+""})},render:function(b){var c=this;return b=a(b).map(function(b,d){return b=a(c.options.item).attr("data-value",d),b.find("a").html(c.highlighter(d)),b[0]}),b.first().addClass("active"),this.$menu.html(b),this},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0])),d.addClass("active")},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last()),c.addClass("active")},listen:function(){this.$element.on("focus",a.proxy(this.focus,this)).on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",a.proxy(this.keydown,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this)).on("mouseleave","li",a.proxy(this.mouseleave,this))},eventSupported:function(a){var b=a in this.$element;return b||(this.$element.setAttribute(a,"return;"),b=typeof this.$element[a]=="function"),b},move:function(a){if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:a.preventDefault(),this.prev();break;case 40:a.preventDefault(),this.next()}a.stopPropagation()},keydown:function(b){this.suppressKeyPressRepeat=~a.inArray(b.keyCode,[40,38,9,13,27]),this.move(b)},keypress:function(a){if(this.suppressKeyPressRepeat)return;this.move(a)},keyup:function(a){switch(a.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}a.stopPropagation(),a.preventDefault()},focus:function(a){this.focused=!0},blur:function(a){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(a){a.stopPropagation(),a.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(b){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")},mouseleave:function(a){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var c=a.fn.typeahead;a.fn.typeahead=function(c){return this.each(function(){var d=a(this),e=d.data("typeahead"),f=typeof c=="object"&&c;e||d.data("typeahead",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.typeahead.defaults={source:[],items:8,menu:'',item:' ',minLength:1},a.fn.typeahead.Constructor=b,a.fn.typeahead.noConflict=function(){return a.fn.typeahead=c,this},a(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(b){var c=a(this);if(c.data("typeahead"))return;c.typeahead(c.data())})}(window.jQuery)
\ No newline at end of file
diff --git a/milfs/js/bootstrap.min.js b/milfs/js/bootstrap.min.js
deleted file mode 100644
index b04a0e8..0000000
--- a/milfs/js/bootstrap.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * Bootstrap v3.1.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",f.resetText||d.data("resetText",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown",h),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=" li:not(.divider):visible a",i=f.find("[role=menu]"+h+", [role=listbox]"+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j ').appendTo(document.body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());c.is("a")&&b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this,d=this.tip();this.setContent(),this.options.animation&&d.addClass("fade");var e="function"==typeof this.options.placement?this.options.placement.call(this,d[0],this.$element[0]):this.options.placement,f=/\s?auto?\s?/i,g=f.test(e);g&&(e=e.replace(f,"")||"top"),d.detach().css({top:0,left:0,display:"block"}).addClass(e),this.options.container?d.appendTo(this.options.container):d.insertAfter(this.$element);var h=this.getPosition(),i=d[0].offsetWidth,j=d[0].offsetHeight;if(g){var k=this.$element.parent(),l=e,m=document.documentElement.scrollTop||document.body.scrollTop,n="body"==this.options.container?window.innerWidth:k.outerWidth(),o="body"==this.options.container?window.innerHeight:k.outerHeight(),p="body"==this.options.container?0:k.offset().left;e="bottom"==e&&h.top+h.height+j-m>o?"top":"top"==e&&h.top-m-j<0?"bottom":"right"==e&&h.right+i>n?"left":"left"==e&&h.left-i
'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery);
\ No newline at end of file
diff --git a/milfs/js/canvas-to-blob.min.js.map b/milfs/js/canvas-to-blob.min.js.map
deleted file mode 100644
index 7c47d66..0000000
--- a/milfs/js/canvas-to-blob.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["canvas-to-blob.js"],"names":["window","CanvasPrototype","HTMLCanvasElement","prototype","hasBlobConstructor","Blob","Boolean","e","hasArrayBufferViewSupport","Uint8Array","size","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","dataURIPattern","dataURLtoBlob","atob","ArrayBuffer","dataURI","matches","mediaType","isBase64","dataString","byteString","arrayBuffer","intArray","i","bb","match","Error","slice","length","decodeURIComponent","charCodeAt","type","append","getBlob","toBlob","mozGetAsFile","callback","quality","toDataURL","this","define","amd","module","exports"],"mappings":"CAgBE,SAAUA,GACV,YAEA,IAAIC,GAAkBD,EAAOE,mBACLF,EAAOE,kBAAkBC,UAC7CC,EAAqBJ,EAAOK,MAAS,WACvC,IACE,MAAOC,SAAQ,GAAID,OACnB,MAAOE,GACP,OAAO,MAGPC,EAA4BJ,GAAsBJ,EAAOS,YAC1D,WACC,IACE,MAAgD,OAAzC,GAAIJ,OAAM,GAAII,YAAW,OAAOC,KACvC,MAAOH,GACP,OAAO,MAGTI,EAAcX,EAAOW,aAAeX,EAAOY,mBAC3BZ,EAAOa,gBAAkBb,EAAOc,cAChDC,EAAiB,0CACjBC,GAAiBZ,GAAsBO,IAAgBX,EAAOiB,MAChEjB,EAAOkB,aAAelB,EAAOS,YAC7B,SAAUU,GACR,GAAIC,GACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAGF,IADAR,EAAUD,EAAQU,MAAMd,IACnBK,EACH,KAAM,IAAIU,OAAM,mBAkBlB,KAfAT,EAAYD,EAAQ,GAChBA,EAAQ,GACR,cAAgBA,EAAQ,IAAM,qBAClCE,IAAaF,EAAQ,GACrBG,EAAaJ,EAAQY,MAAMX,EAAQ,GAAGY,QAGpCR,EAFEF,EAEWL,KAAKM,GAGLU,mBAAmBV,GAGlCE,EAAc,GAAIP,aAAYM,EAAWQ,QACzCN,EAAW,GAAIjB,YAAWgB,GACrBE,EAAI,EAAGA,EAAIH,EAAWQ,OAAQL,GAAK,EACtCD,EAASC,GAAKH,EAAWU,WAAWP,EAGtC,OAAIvB,GACK,GAAIC,OACRG,EAA4BkB,EAAWD,IACvCU,KAAMd,KAGXO,EAAK,GAAIjB,GACTiB,EAAGQ,OAAOX,GACHG,EAAGS,QAAQhB,IAElBrB,GAAOE,oBAAsBD,EAAgBqC,SAC3CrC,EAAgBsC,aAClBtC,EAAgBqC,OAAS,SAAUE,EAAUL,EAAMM,GAE/CD,EADEC,GAAWxC,EAAgByC,WAAa1B,EACjCA,EAAc2B,KAAKD,UAAUP,EAAMM,IAEnCE,KAAKJ,aAAa,OAAQJ,KAG9BlC,EAAgByC,WAAa1B,IACtCf,EAAgBqC,OAAS,SAAUE,EAAUL,EAAMM,GACjDD,EAASxB,EAAc2B,KAAKD,UAAUP,EAAMM,QAI5B,kBAAXG,SAAyBA,OAAOC,IACzCD,OAAO,WACL,MAAO5B,KAEkB,gBAAX8B,SAAuBA,OAAOC,QAC9CD,OAAOC,QAAU/B,EAEjBhB,EAAOgB,cAAgBA,GAEzBhB","file":"canvas-to-blob.min.js"}
\ No newline at end of file
diff --git a/milfs/js/ekko-lightbox.min.js b/milfs/js/ekko-lightbox.min.js
deleted file mode 100644
index 161e29c..0000000
--- a/milfs/js/ekko-lightbox.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Lightbox for Bootstrap 3 by @ashleydw
- * https://github.com/ashleydw/lightbox
- *
- * License: https://github.com/ashleydw/lightbox/blob/master/LICENSE
- */
-(function(){"use strict";var a,b;a=jQuery,b=function(b,c){var d,e,f;return this.options=a.extend({title:null,footer:null,remote:null},a.fn.ekkoLightbox.defaults,c||{}),this.$element=a(b),d="",this.modal_id=this.options.modal_id?this.options.modal_id:"ekkoLightbox-"+Math.floor(1e3*Math.random()+1),f='",e='",a(document.body).append('"),this.modal=a("#"+this.modal_id),this.modal_dialog=this.modal.find(".modal-dialog").first(),this.modal_content=this.modal.find(".modal-content").first(),this.modal_body=this.modal.find(".modal-body").first(),this.modal_header=this.modal.find(".modal-header").first(),this.modal_footer=this.modal.find(".modal-footer").first(),this.lightbox_container=this.modal_body.find(".ekko-lightbox-container").first(),this.lightbox_body=this.lightbox_container.find("> div:first-child").first(),this.showLoading(),this.modal_arrows=null,this.border={top:parseFloat(this.modal_dialog.css("border-top-width"))+parseFloat(this.modal_content.css("border-top-width"))+parseFloat(this.modal_body.css("border-top-width")),right:parseFloat(this.modal_dialog.css("border-right-width"))+parseFloat(this.modal_content.css("border-right-width"))+parseFloat(this.modal_body.css("border-right-width")),bottom:parseFloat(this.modal_dialog.css("border-bottom-width"))+parseFloat(this.modal_content.css("border-bottom-width"))+parseFloat(this.modal_body.css("border-bottom-width")),left:parseFloat(this.modal_dialog.css("border-left-width"))+parseFloat(this.modal_content.css("border-left-width"))+parseFloat(this.modal_body.css("border-left-width"))},this.padding={top:parseFloat(this.modal_dialog.css("padding-top"))+parseFloat(this.modal_content.css("padding-top"))+parseFloat(this.modal_body.css("padding-top")),right:parseFloat(this.modal_dialog.css("padding-right"))+parseFloat(this.modal_content.css("padding-right"))+parseFloat(this.modal_body.css("padding-right")),bottom:parseFloat(this.modal_dialog.css("padding-bottom"))+parseFloat(this.modal_content.css("padding-bottom"))+parseFloat(this.modal_body.css("padding-bottom")),left:parseFloat(this.modal_dialog.css("padding-left"))+parseFloat(this.modal_content.css("padding-left"))+parseFloat(this.modal_body.css("padding-left"))},this.modal.on("show.bs.modal",this.options.onShow.bind(this)).on("shown.bs.modal",function(a){return function(){return a.modal_shown(),a.options.onShown.call(a)}}(this)).on("hide.bs.modal",this.options.onHide.bind(this)).on("hidden.bs.modal",function(b){return function(){return b.gallery&&a(document).off("keydown.ekkoLightbox"),b.modal.remove(),b.options.onHidden.call(b)}}(this)).modal("show",c),this.modal},b.prototype={modal_shown:function(){var b;return this.options.remote?(this.gallery=this.$element.data("gallery"),this.gallery&&("document.body"===this.options.gallery_parent_selector||""===this.options.gallery_parent_selector?this.gallery_items=a(document.body).find('*[data-gallery="'+this.gallery+'"]'):this.gallery_items=this.$element.parents(this.options.gallery_parent_selector).first().find('*[data-gallery="'+this.gallery+'"]'),this.gallery_index=this.gallery_items.index(this.$element),a(document).on("keydown.ekkoLightbox",this.navigate.bind(this)),this.options.directional_arrows&&this.gallery_items.length>1&&(this.lightbox_container.append(''),this.modal_arrows=this.lightbox_container.find("div.ekko-lightbox-nav-overlay").first(),this.lightbox_container.find("a"+this.strip_spaces(this.options.left_arrow_class)).on("click",function(a){return function(b){return b.preventDefault(),a.navigate_left()}}(this)),this.lightbox_container.find("a"+this.strip_spaces(this.options.right_arrow_class)).on("click",function(a){return function(b){return b.preventDefault(),a.navigate_right()}}(this)))),this.options.type?"image"===this.options.type?this.preloadImage(this.options.remote,!0):"youtube"===this.options.type&&(b=this.getYoutubeId(this.options.remote))?this.showYoutubeVideo(b):"vimeo"===this.options.type?this.showVimeoVideo(this.options.remote):"instagram"===this.options.type?this.showInstagramVideo(this.options.remote):"url"===this.options.type?this.loadRemoteContent(this.options.remote):"video"===this.options.type?this.showVideoIframe(this.options.remote):this.error('Could not detect remote target type. Force the type using data-type="image|youtube|vimeo|instagram|url|video"'):this.detectRemoteType(this.options.remote)):this.error("No remote target given")},strip_stops:function(a){return a.replace(/\./g,"")},strip_spaces:function(a){return a.replace(/\s/g,"")},isImage:function(a){return a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSwf:function(a){return a.match(/\.(swf)((\?|#).*)?$/i)},getYoutubeId:function(a){var b;return b=a.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/),b&&11===b[2].length?b[2]:!1},getVimeoId:function(a){return a.indexOf("vimeo")>0?a:!1},getInstagramId:function(a){return a.indexOf("instagram")>0?a:!1},navigate:function(a){if(a=a||window.event,39===a.keyCode||37===a.keyCode){if(39===a.keyCode)return this.navigate_right();if(37===a.keyCode)return this.navigate_left()}},navigateTo:function(b){var c,d;return 0>b||b>this.gallery_items.length-1?this:(this.showLoading(),this.gallery_index=b,this.$element=a(this.gallery_items.get(this.gallery_index)),this.updateTitleAndFooter(),d=this.$element.attr("data-remote")||this.$element.attr("href"),this.detectRemoteType(d,this.$element.attr("data-type")||!1),this.gallery_index+1'+this.options.loadingMessage+""),this},showYoutubeVideo:function(a){var b,c,d;return c=null!=this.$element.attr("data-norelated")||this.options.no_related?"&rel=0":"",d=this.checkDimensions(this.$element.data("width")||560),b=d/(560/315),this.showVideoIframe("//www.youtube.com/embed/"+a+"?badge=0&autoplay=1&html5=1"+c,d,b)},showVimeoVideo:function(a){var b,c;return c=this.checkDimensions(this.$element.data("width")||560),b=c/(500/281),this.showVideoIframe(a+"?autoplay=1",c,b)},showInstagramVideo:function(a){var b,c;return c=this.checkDimensions(this.$element.data("width")||612),this.resize(c),b=c+80,this.lightbox_body.html(''),this.options.onContentLoaded.call(this),this.modal_arrows?this.modal_arrows.css("display","none"):void 0},showVideoIframe:function(a,b,c){return c=c||b,this.resize(b),this.lightbox_body.html('
'),this.options.onContentLoaded.call(this),this.modal_arrows&&this.modal_arrows.css("display","none"),this},loadRemoteContent:function(b){var c,d;return d=this.$element.data("width")||560,this.resize(d),c=this.$element.data("disableExternalCheck")||!1,c||this.isExternal(b)?(this.lightbox_body.html(''),this.options.onContentLoaded.call(this)):this.lightbox_body.load(b,a.proxy(function(a){return function(){return a.$element.trigger("loaded.bs.modal")}}(this))),this.modal_arrows&&this.modal_arrows.css("display","none"),this},isExternal:function(a){var b;return b=a.match(/^([^:\/?#]+:)?(?:\/\/([^\/?#]*))?([^?#]+)?(\?[^#]*)?(#.*)?/),"string"==typeof b[1]&&b[1].length>0&&b[1].toLowerCase()!==location.protocol?!0:"string"==typeof b[2]&&b[2].length>0&&b[2].replace(new RegExp(":("+{"http:":80,"https:":443}[location.protocol]+")?$"),"")!==location.host?!0:!1},error:function(a){return this.lightbox_body.html(a),this},preloadImage:function(b,c){var d;return d=new Image,(null==c||c===!0)&&(d.onload=function(b){return function(){var c;return c=a(" "),c.attr("src",d.src),c.addClass("img-responsive"),b.lightbox_body.html(c),b.modal_arrows&&b.modal_arrows.css("display","block"),c.load(function(){return b.options.scale_height?b.scaleHeight(d.height,d.width):b.resize(d.width),b.options.onContentLoaded.call(b)})}}(this),d.onerror=function(a){return function(){return a.error("Failed to load image: "+b)}}(this)),d.src=b,d},scaleHeight:function(b,c){var d,e,f,g,h,i;return g=this.modal_header.outerHeight(!0)||0,f=this.modal_footer.outerHeight(!0)||0,this.modal_footer.is(":visible")||(f=0),this.modal_header.is(":visible")||(g=0),d=this.border.top+this.border.bottom+this.padding.top+this.padding.bottom,h=parseFloat(this.modal_dialog.css("margin-top"))+parseFloat(this.modal_dialog.css("margin-bottom")),i=a(window).height()-d-h-g-f,e=Math.min(i/b,1),this.modal_dialog.css("height","auto").css("max-height",i),this.resize(e*c)},resize:function(b){var c;return c=b+this.border.left+this.padding.left+this.padding.right+this.border.right,this.modal_dialog.css("width","auto").css("max-width",c),this.lightbox_container.find("a").css("line-height",function(){return a(this).parent().height()+"px"}),this},checkDimensions:function(a){var b,c;return c=a+this.border.left+this.padding.left+this.padding.right+this.border.right,b=document.body.clientWidth,c>b&&(a=this.modal_body.width()),a},close:function(){return this.modal.modal("hide")},addTrailingSlash:function(a){return"/"!==a.substr(-1)&&(a+="/"),a}},a.fn.ekkoLightbox=function(c){return this.each(function(){var d;return d=a(this),c=a.extend({remote:d.attr("data-remote")||d.attr("href"),gallery_parent_selector:d.attr("data-parent"),type:d.attr("data-type")},c,d.data()),new b(this,c),this})},a.fn.ekkoLightbox.defaults={gallery_parent_selector:"document.body",left_arrow_class:".glyphicon .glyphicon-chevron-left",right_arrow_class:".glyphicon .glyphicon-chevron-right",directional_arrows:!0,type:null,always_show_close:!0,no_related:!1,scale_height:!0,loadingMessage:"Loading...",onShow:function(){},onShown:function(){},onHide:function(){},onHidden:function(){},onNavigate:function(){},onContentLoaded:function(){}}}).call(this);
\ No newline at end of file
diff --git a/milfs/js/ie-emulation-modes-warning.js b/milfs/js/ie-emulation-modes-warning.js
deleted file mode 100644
index 3f97ba5..0000000
--- a/milfs/js/ie-emulation-modes-warning.js
+++ /dev/null
@@ -1,51 +0,0 @@
-// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
-// IT'S JUST JUNK FOR OUR DOCS!
-// ++++++++++++++++++++++++++++++++++++++++++
-/*!
- * Copyright 2014-2015 Twitter, Inc.
- *
- * Licensed under the Creative Commons Attribution 3.0 Unported License. For
- * details, see https://creativecommons.org/licenses/by/3.0/.
- */
-// Intended to prevent false-positive bug reports about Bootstrap not working properly in old versions of IE due to folks testing using IE's unreliable emulation modes.
-(function () {
- 'use strict';
-
- function emulatedIEMajorVersion() {
- var groups = /MSIE ([0-9.]+)/.exec(window.navigator.userAgent)
- if (groups === null) {
- return null
- }
- var ieVersionNum = parseInt(groups[1], 10)
- var ieMajorVersion = Math.floor(ieVersionNum)
- return ieMajorVersion
- }
-
- function actualNonEmulatedIEMajorVersion() {
- // Detects the actual version of IE in use, even if it's in an older-IE emulation mode.
- // IE JavaScript conditional compilation docs: https://msdn.microsoft.com/library/121hztk3%28v=vs.94%29.aspx
- // @cc_on docs: https://msdn.microsoft.com/library/8ka90k2e%28v=vs.94%29.aspx
- var jscriptVersion = new Function('/*@cc_on return @_jscript_version; @*/')() // jshint ignore:line
- if (jscriptVersion === undefined) {
- return 11 // IE11+ not in emulation mode
- }
- if (jscriptVersion < 9) {
- return 8 // IE8 (or lower; haven't tested on IE<8)
- }
- return jscriptVersion // IE9 or IE10 in any mode, or IE11 in non-IE11 mode
- }
-
- var ua = window.navigator.userAgent
- if (ua.indexOf('Opera') > -1 || ua.indexOf('Presto') > -1) {
- return // Opera, which might pretend to be IE
- }
- var emulated = emulatedIEMajorVersion()
- if (emulated === null) {
- return // Not IE
- }
- var nonEmulated = actualNonEmulatedIEMajorVersion()
-
- if (emulated !== nonEmulated) {
- window.alert('WARNING: You appear to be using IE' + nonEmulated + ' in IE' + emulated + ' emulation mode.\nIE emulation modes can behave significantly differently from ACTUAL older versions of IE.\nPLEASE DON\'T FILE BOOTSTRAP BUGS based on testing in IE emulation modes!')
- }
-})();
diff --git a/milfs/js/index.php b/milfs/js/index.php
deleted file mode 100644
index 1623781..0000000
--- a/milfs/js/index.php
+++ /dev/null
@@ -1,226 +0,0 @@
-processRequests();
-
-$embebido =0;
-if (isset($_REQUEST['form'])) {
- $form = $_REQUEST['form'];
- $opciones["formato"]= $_REQUEST['formato'];
- } else {$form = "";}
- if($form !='') {$embebido = 1;}
-if (isset($_REQUEST['identificador'])) {$identificador = $_REQUEST['identificador'];} else {$identificador = "";}
- if($identificador !='') {$embebido = 1;}
-if (isset($_REQUEST['id'])) {$id = $_REQUEST['id'];} else {$id = "";}
-if (isset($_REQUEST['c'])) {$c = $_REQUEST['c'];} else {$c = "";}
-if (isset($_REQUEST['f'])) {$f = $_REQUEST['f'];} else {$f = "";}
-if (isset($_REQUEST['t'])) {$t = $_REQUEST['t'];} else {$t = "";}
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("xajax/");
- //$xajax->debugOn();
- ?>
-
-
-
- ";}else{ echo " ";} ?>
-
-
-
-
-
-
-
-
-
- I<3MILFS
-
- xajax_formulario_modal('".$id."','','".$c."','".$t."')";}
- if( isset($_REQUEST['psi'])){$onload ="";}
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/js/jquery-2.1.4.min.js b/milfs/js/jquery-2.1.4.min.js
deleted file mode 100644
index 49990d6..0000000
--- a/milfs/js/jquery-2.1.4.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML=" ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){
-return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*\s*$/g,ia={option:[1,""," "],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1>$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1>$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)),
-void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n(" -->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ¿DÓNDE
-ESTÁN
- MIS DATOS?
-
-
-
-
-
-
-
-
-
-
-
-
-
- Los datos que se encuentran en esta página estan asociados al resultado de
- la investigación que se encuentra en
http://www.dondeestanmisdatos.info/
- lo que se encuentra en este sitio es un visualización de datos creada a
- partir de los resultados de la investigación después de ser ingresados a la
- plataforma
MILFS
-
-
- Esta plataforma nos entrega los datos en forma de una API que puede ser
- consumida en le siguiente enlace:
-
-
http://datos.labmde.org/api.php?id=19
-
- Los datos son entregados en formato
JSON
- tener este formato permite a las personas recibir
- actualización de los datos de manera automatica y utilizarlo en sus
- aplicaciones como fuente de datos, entre otras.
-
-
Especificación de los datos:
-
- El JSON, entrega un ID por cada uno de los campos y también los
- nombres si es necesario, tal como se ve en la siguiente tabla:
-
-
-
-
-
-
- ID
- Nombre del Campo
-
-
- 115
- Isp
-
-
- 125
- Ong (eff)
-
-
- 124
- Pais
-
-
- 110
- 1. el psi publica informes de transparencia
-
-
- 116
- 1.1 el informe de transparencia muestra las
- solicitudes que ha hecho el gobierno, a través de diferentes
- entidades del estado, solicitando información de los usuarios.
-
-
- 117
- 1.2 el informe de transparencia indica la frecuencia
- con la cuál la empresa entrega información de los usuarios al
- gobierno
-
-
- 118
- 1.3 el informe de transparencia señala si se ha dado
- respuesta a las solicitudes hechas por el gobierno y muestra el
- procedimiento que han tenido las mismas.
-
-
- 119
- 1.4 el informe de tranparencia evidencia el número
- de usuarios que han sido notificados en el último año en relación
- con el número de solicitudes por parte del gobierno.
-
-
- 120
- 1.5 el informe de transparencia informa el origen de
- las solicitudes para bloqueo y/o retiro de contenidos de internet
- (incluyendo pornografía infantil, infracción al derecho de autor,
- cumplimiento de sus propias políticas, etc.)
-
-
- 121
- 1.6 el informe de transparencia explica con claridad
- el manejo de los datos de los usuarios; si estos han sido
- administrados por terceros y da cuenta de las acciones llevadas a
- cabo por éstos en relación con la protección de datos de los
- usuarios. en caso de gestión por terceros informa si ellos han dado
- información al gobierno por solicitud del mismo.
-
-
- 122
- 1.7 el informe de transparencia indica cuántas veces
- ha procedido la psi a bloquear y/o retirar contenidos de internet.
-
-
- 123
- 1.8 el informe de transparencia informa sobre si ha
- habido defensa de los usuarios cuyo contenido ha sido bloqueado y/o
- retirado y los motivos para ello.
-
-
- 130
- Comentarios bloque 1
-
-
- 111
- 2.1 ¿el psi notifica al usuario cuando el gobierno
- nacional ha hecho solicitud de información de sus datos?
-
-
- 126
- 2.2 ¿el psi notifica al usuario o usuaria de manera
- oportuna cuando el gobierno nacional ha hecho una solicitud de
- información de sus datos, es decir, dando tiempo a que el usuario
- pueda interponer recursos de ser necesario?
-
-
- 131
- Comentarios bloque 2
-
-
- 112
- 3. las polÍticas de protección de datos del psi son
- públicas y de fácil acceso para los usuarios y usuarias
-
-
- 132
- Comentarios bloque 3
-
-
- 113
- 4. el psi publica manuales de cumplimiento de
- obligaciones legales que pueden afectar la intimidad de los usuarios
- y usuarias
-
-
- 133
- Comentarios bloque 4
-
-
- 127
- 5.1 ¿el psi pública los procedimientos que emplea
- para filtrar/retirar/bloquear contenidos y/o suspender/cancelar
- servicios, indicando además los soportes legales/contractuales que
- lo justifican?
-
-
- 128
- 5.2 ¿el psi específica las motivaciones que la
- llevan a hacer filtros/retiros/bloqueos de contenidos y/o
- suspensión/cancelación de servicios?
-
-
- 129
- 5.3 ¿el psi específica cómo los procedimientos para
- filtrar/retirar/bloquear contenidos y/o suspender/cancelar servicios
- tienen en cuenta el debido proceso? (como mínimo suponen:
- notificación al usuario, oportunidad de defensa, criterios de
- proporcionalidad, etcétera)
-
-
- 134
- Comentarios bloque 5
-
-
-
-
-
- Las preguntas están organizadas por grupos, y existe un campo de
- "Comentarios" por cada bloque de preguntas y en los datos se puede
- identificar a que pregunta esa asociado cada uno de los comentarios.
-
- También puede descargar los datos en formato CSV
(AQUÍ)
- Este archivo tiene como delimitador de campos el
- carácter "pipe" ( | ) y como delimitador de texto las comillas
- dobles ( " " ).
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/landing.php b/milfs/landing.php
deleted file mode 100644
index fc3f313..0000000
--- a/milfs/landing.php
+++ /dev/null
@@ -1,600 +0,0 @@
-processRequests(); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-debugOn('');
-$embebido =0;
-if( isset($_REQUEST['empresa']) OR empty($_REQUEST) OR isset($_REQUEST['set']) OR isset($_REQUEST['identificador']) ) {
-$acceso = 0;
-if( @$_REQUEST['empresa'] =="") { $id_empresa = "1";}
-else { $id_empresa = $_REQUEST['empresa'];}
-$id = remplacetas('empresa','id',"$id_empresa",'id','') ;
-if($id[0]=="") { $id_empresa = "1";}
- if(!isset($_REQUEST['set'])){
- $titulo = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
- $descripcion = remplacetas('empresa','id',"$id_empresa",'slogan','') ;
- $background_imagen = buscar_imagen('',"","","$id_empresa");
- $uri_set = "";
- $acceso = 1;
- }
- else {
- $empresa = remplacetas('form_id','id',$_REQUEST['set'],'id_empresa',"") ;
- $id_empresa = $empresa[0];
- $titulo = remplacetas('form_id','id',$_REQUEST['set'],'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$_REQUEST['set'],'descripcion',"") ;
- $background_imagen = buscar_imagen($_REQUEST['set'],"","","$id_empresa");
- $uri_set = "";
- $publico = remplacetas('form_id','id',$_REQUEST['set'],'publico',"") ;
- if($publico[0] =='1') {$acceso = 1;}
-
- }
- if( isset($_REQUEST['identificador'])){
- $empresa = remplacetas('form_datos','control',$_REQUEST['identificador'],'id_empresa',"") ;
- $id_empresa = $empresa[0];
- $form = remplacetas('form_datos','control',$_REQUEST['identificador'],'form_id',"") ;
- $titulo = remplacetas('form_id','id',$form['0'],'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$form['0'],'descripcion',"") ;
- $background_imagen = buscar_imagen("$form[0]",$_REQUEST['identificador'],"","$id_empresa");
- $uri_set = "$titulo[0] ";
- $publico = remplacetas('form_id','id',$form[0],'publico',"") ;
- if($publico[0] =='1') {$acceso = 1;}
-}
-$logo = remplacetas('empresa','id',"$id_empresa",'imagen','') ;
-$direccion = remplacetas('empresa','id',"$id_empresa",'direccion','') ;
-$telefono = remplacetas('empresa','id',"$id_empresa",'telefono','') ;
-$email = remplacetas('empresa','id',"$id_empresa",'email','') ;
-$facebook = remplacetas('empresa','id',"$id_empresa",'facebook','') ;
-$twitter = remplacetas('empresa','id',"$id_empresa",'twitter','') ;
-
-$razon_social = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
-$sigla = remplacetas('empresa','id',"$id_empresa",'sigla','') ;
-
-
-
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- I<3MILFS
-
- xajax_formulario_modal('".$id."','','".$c."','".$t."')";}
- if( isset($_REQUEST['psi'])){$onload ="";}
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xxx
-
- xxx
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/landing_20151117.php b/milfs/landing_20151117.php
deleted file mode 100644
index f49e52b..0000000
--- a/milfs/landing_20151117.php
+++ /dev/null
@@ -1,599 +0,0 @@
-processRequests(); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-debugOn('');
-$embebido =0;
-if( isset($_REQUEST['empresa']) OR empty($_REQUEST) OR isset($_REQUEST['set']) OR isset($_REQUEST['identificador']) ) {
-$acceso = 0;
-if( @$_REQUEST['empresa'] =="") { $id_empresa = "1";}
-else { $id_empresa = $_REQUEST['empresa'];}
-$id = remplacetas('empresa','id',"$id_empresa",'id','') ;
-if($id[0]=="") { $id_empresa = "1";}
- if(!isset($_REQUEST['set'])){
- $titulo = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
- $descripcion = remplacetas('empresa','id',"$id_empresa",'slogan','') ;
- $background_imagen = buscar_imagen('',"","","$id_empresa");
- $uri_set = "";
- $acceso = 1;
- }
- else {
- $empresa = remplacetas('form_id','id',$_REQUEST['set'],'id_empresa',"") ;
- $id_empresa = $empresa[0];
- $titulo = remplacetas('form_id','id',$_REQUEST['set'],'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$_REQUEST['set'],'descripcion',"") ;
- $background_imagen = buscar_imagen($_REQUEST['set'],"","","$id_empresa");
- $uri_set = "";
- $publico = remplacetas('form_id','id',$_REQUEST['set'],'publico',"") ;
- if($publico[0] =='1') {$acceso = 1;}
-
- }
- if( isset($_REQUEST['identificador'])){
- $empresa = remplacetas('form_datos','control',$_REQUEST['identificador'],'id_empresa',"") ;
- $id_empresa = $empresa[0];
- $form = remplacetas('form_datos','control',$_REQUEST['identificador'],'form_id',"") ;
- $titulo = remplacetas('form_id','id',$form['0'],'nombre',"") ;
- $descripcion = remplacetas('form_id','id',$form['0'],'descripcion',"") ;
- $background_imagen = buscar_imagen($form[0],"","","$id_empresa");
- $uri_set = "$titulo[0] ";
- $publico = remplacetas('form_id','id',$form[0],'publico',"") ;
- if($publico[0] =='1') {$acceso = 1;}
-}
-$logo = remplacetas('empresa','id',"$id_empresa",'imagen','') ;
-$direccion = remplacetas('empresa','id',"$id_empresa",'direccion','') ;
-$telefono = remplacetas('empresa','id',"$id_empresa",'telefono','') ;
-$email = remplacetas('empresa','id',"$id_empresa",'email','') ;
-$facebook = remplacetas('empresa','id',"$id_empresa",'facebook','') ;
-$twitter = remplacetas('empresa','id',"$id_empresa",'twitter','') ;
-
-$razon_social = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
-$sigla = remplacetas('empresa','id',"$id_empresa",'sigla','') ;
-
-
-
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- I<3MILFS
-
- xajax_formulario_modal('".$id."','','".$c."','".$t."')";}
- if( isset($_REQUEST['psi'])){$onload ="";}
-?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xxx
-
- xxx
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/librerias/hybridauth/Hybrid/Auth.php b/milfs/librerias/hybridauth/Hybrid/Auth.php
deleted file mode 100644
index a388ccf..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Auth.php
+++ /dev/null
@@ -1,411 +0,0 @@
-getSessionData());
- Hybrid_Logger::info("Hybrid_Auth initialize: check if any error is stored on the endpoint...");
-
- if (Hybrid_Error::hasError()) {
- $m = Hybrid_Error::getErrorMessage();
- $c = Hybrid_Error::getErrorCode();
- $p = Hybrid_Error::getErrorPrevious();
-
- Hybrid_Logger::error("Hybrid_Auth initialize: A stored Error found, Throw an new Exception and delete it from the store: Error#$c, '$m'");
-
- Hybrid_Error::clearError();
-
- // try to provide the previous if any
- // Exception::getPrevious (PHP 5 >= 5.3.0) http://php.net/manual/en/exception.getprevious.php
- if (version_compare(PHP_VERSION, '5.3.0', '>=') && ($p instanceof Exception)) {
- throw new Exception($m, $c, $p);
- } else {
- throw new Exception($m, $c);
- }
- }
-
- Hybrid_Logger::info("Hybrid_Auth initialize: no error found. initialization succeed.");
- }
-
- /**
- * Hybrid storage system accessor
- *
- * Users sessions are stored using HybridAuth storage system ( HybridAuth 2.0 handle PHP Session only) and can be accessed directly by
- * Hybrid_Auth::storage()->get($key) to retrieves the data for the given key, or calling
- * Hybrid_Auth::storage()->set($key, $value) to store the key => $value set.
- *
- * @return Hybrid_Storage
- */
- public static function storage() {
- return Hybrid_Auth::$store;
- }
-
- /**
- * Get hybridauth session data
- * @return string|null
- */
- function getSessionData() {
- return Hybrid_Auth::storage()->getSessionData();
- }
-
- /**
- * Restore hybridauth session data
- *
- * @param string $sessiondata Serialized session data
- * @retun void
- */
- function restoreSessionData($sessiondata = null) {
- Hybrid_Auth::storage()->restoreSessionData($sessiondata);
- }
-
- /**
- * Try to authenticate the user with a given provider.
- *
- * If the user is already connected we just return and instance of provider adapter,
- * ELSE, try to authenticate and authorize the user with the provider.
- *
- * $params is generally an array with required info in order for this provider and HybridAuth to work,
- * like :
- * hauth_return_to: URL to call back after authentication is done
- * openid_identifier: The OpenID identity provider identifier
- * google_service: can be "Users" for Google user accounts service or "Apps" for Google hosted Apps
- *
- * @param string $providerId ID of the provider
- * @param array $params Params
- * @return
- */
- public static function authenticate($providerId, $params = null) {
- Hybrid_Logger::info("Enter Hybrid_Auth::authenticate( $providerId )");
-
- if (!Hybrid_Auth::storage()->get("hauth_session.$providerId.is_logged_in")) {
- // if user not connected to $providerId then try setup a new adapter and start the login process for this provider
- Hybrid_Logger::info("Hybrid_Auth::authenticate( $providerId ), User not connected to the provider. Try to authenticate..");
- $provider_adapter = Hybrid_Auth::setup($providerId, $params);
- $provider_adapter->login();
- } else {
- // else, then return the adapter instance for the given provider
- Hybrid_Logger::info("Hybrid_Auth::authenticate( $providerId ), User is already connected to this provider. Return the adapter instance.");
- return Hybrid_Auth::getAdapter($providerId);
- }
- }
-
- /**
- * Return the adapter instance for an authenticated provider
- *
- * @param string $providerId ID of the provider
- * @return Hybrid_Provider_Adapter
- */
- public static function getAdapter($providerId = null) {
- Hybrid_Logger::info("Enter Hybrid_Auth::getAdapter( $providerId )");
- return Hybrid_Auth::setup($providerId);
- }
-
- /**
- * Setup an adapter for a given provider
- *
- * @param string $providerId ID of the provider
- * @param array $params Adapter params
- * @return Hybrid_Provider_Adapter
- */
- public static function setup($providerId, $params = null) {
- Hybrid_Logger::debug("Enter Hybrid_Auth::setup( $providerId )", $params);
-
- if (!$params) {
- $params = Hybrid_Auth::storage()->get("hauth_session.$providerId.id_provider_params");
-
- Hybrid_Logger::debug("Hybrid_Auth::setup( $providerId ), no params given. Trying to get the stored for this provider.", $params);
- }
-
- if (!$params) {
- $params = array();
- Hybrid_Logger::info("Hybrid_Auth::setup( $providerId ), no stored params found for this provider. Initialize a new one for new session");
- }
-
- if (is_array($params) && !isset($params["hauth_return_to"])) {
- $params["hauth_return_to"] = Hybrid_Auth::getCurrentUrl();
- Hybrid_Logger::debug("Hybrid_Auth::setup( $providerId ). HybridAuth Callback URL set to: ", $params["hauth_return_to"]);
- }
-
- # instantiate a new IDProvider Adapter
- $provider = new Hybrid_Provider_Adapter();
- $provider->factory($providerId, $params);
- return $provider;
- }
-
- /**
- * Check if the current user is connected to a given provider
- *
- * @param string $providerId ID of the provider
- * @return bool
- */
- public static function isConnectedWith($providerId) {
- return (bool) Hybrid_Auth::storage()->get("hauth_session.{$providerId}.is_logged_in");
- }
-
- /**
- * Return array listing all authenticated providers
- * @return array
- */
- public static function getConnectedProviders() {
- $idps = array();
-
- foreach (Hybrid_Auth::$config["providers"] as $idpid => $params) {
- if (Hybrid_Auth::isConnectedWith($idpid)) {
- $idps[] = $idpid;
- }
- }
-
- return $idps;
- }
-
- /**
- * Return array listing all enabled providers as well as a flag if you are connected
- *
- *
- * array(
- * 'Facebook' => array(
- * 'connected' => true
- * )
- * )
- *
- * @return array
- */
- public static function getProviders() {
- $idps = array();
-
- foreach (Hybrid_Auth::$config["providers"] as $idpid => $params) {
- if ($params['enabled']) {
- $idps[$idpid] = array('connected' => false);
-
- if (Hybrid_Auth::isConnectedWith($idpid)) {
- $idps[$idpid]['connected'] = true;
- }
- }
- }
-
- return $idps;
- }
-
- /**
- * A generic function to logout all connected provider at once
- * @return void
- */
- public static function logoutAllProviders() {
- $idps = Hybrid_Auth::getConnectedProviders();
-
- foreach ($idps as $idp) {
- $adapter = Hybrid_Auth::getAdapter($idp);
- $adapter->logout();
- }
- }
-
- /**
- * Utility function, redirect to a given URL with php header or using javascript location.href
- *
- * @param string $url URL to redirect to
- * @param string $mode PHP|JS
- */
- public static function redirect($url, $mode = "PHP") {
- Hybrid_Logger::info("Enter Hybrid_Auth::redirect( $url, $mode )");
-
- // Ensure session is saved before sending response, see https://github.com/symfony/symfony/pull/12341
- if ((PHP_VERSION_ID >= 50400 && PHP_SESSION_ACTIVE === session_status()) || (PHP_VERSION_ID < 50400 && isset($_SESSION) && session_id())) {
- session_write_close();
- }
-
- if ($mode == "PHP") {
- header("Location: $url");
- } elseif ($mode == "JS") {
- echo '';
- echo '';
- echo '';
- echo '';
- echo '';
- echo 'Redirecting, please wait...';
- echo '';
- echo '';
- }
-
- die();
- }
-
- /**
- * Utility function, return the current url
- *
- * @param bool $request_uri true to get $_SERVER['REQUEST_URI'], false for $_SERVER['PHP_SELF']
- * @return string
- */
- public static function getCurrentUrl($request_uri = true) {
- if (php_sapi_name() == 'cli') {
- return '';
- }
-
- $protocol = 'http://';
-
- if ((isset($_SERVER['HTTPS']) && ( $_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1 ))
- || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))
- {
- $protocol = 'https://';
- }
-
- $url = $protocol . $_SERVER['HTTP_HOST'];
-
- if ($request_uri) {
- $url .= $_SERVER['REQUEST_URI'];
- } else {
- $url .= $_SERVER['PHP_SELF'];
- }
-
- // return current url
- return $url;
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Endpoint.php b/milfs/librerias/hybridauth/Hybrid/Endpoint.php
deleted file mode 100644
index fbb1a40..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Endpoint.php
+++ /dev/null
@@ -1,222 +0,0 @@
-here we need to parse $_SERVER[QUERY_STRING]
- $request = $_REQUEST;
- if (strrpos($_SERVER["QUERY_STRING"], '?')) {
- $_SERVER["QUERY_STRING"] = str_replace("?", "&", $_SERVER["QUERY_STRING"]);
- parse_str($_SERVER["QUERY_STRING"], $request);
- }
- }
-
- // Setup request variable
- $this->request = $request;
-
- // If openid_policy requested, we return our policy document
- if (isset($this->request["get"]) && $this->request["get"] == "openid_policy") {
- $this->processOpenidPolicy();
- }
-
- // If openid_xrds requested, we return our XRDS document
- if (isset($this->request["get"]) && $this->request["get"] == "openid_xrds") {
- $this->processOpenidXRDS();
- }
-
- // If we get a hauth.start
- if (isset($this->request["hauth_start"]) && $this->request["hauth_start"]) {
- $this->processAuthStart();
- }
- // Else if hauth.done
- elseif (isset($this->request["hauth_done"]) && $this->request["hauth_done"]) {
- $this->processAuthDone();
- }
- // Else we advertise our XRDS document, something supposed to be done from the Realm URL page
- else {
- $this->processOpenidRealm();
- }
- }
-
- /**
- * Process the current request
- *
- * @param array $request The current request parameters. Leave as null to default to use $_REQUEST.
- * @return Hybrid_Endpoint
- */
- public static function process($request = null) {
- // Trick for PHP 5.2, because it doesn't support late static binding
- $class = function_exists('get_called_class') ? get_called_class() : __CLASS__;
- new $class($request);
- }
-
- /**
- * Process OpenID policy request
- * @return void
- */
- protected function processOpenidPolicy() {
- $output = file_get_contents(dirname(__FILE__) . "/resources/openid_policy.html");
- print $output;
- die();
- }
-
- /**
- * Process OpenID XRDS request
- * @return void
- */
- protected function processOpenidXRDS() {
- header("Content-Type: application/xrds+xml");
-
- $output = str_replace("{RETURN_TO_URL}", str_replace(
- array("<", ">", "\"", "'", "&"), array("<", ">", """, "'", "&"), Hybrid_Auth::getCurrentUrl(false)
- ), file_get_contents(dirname(__FILE__) . "/resources/openid_xrds.xml"));
- print $output;
- die();
- }
-
- /**
- * Process OpenID realm request
- * @return void
- */
- protected function processOpenidRealm() {
- $output = str_replace("{X_XRDS_LOCATION}", htmlentities(Hybrid_Auth::getCurrentUrl(false), ENT_QUOTES, 'UTF-8')
- . "?get=openid_xrds&v="
- . Hybrid_Auth::$version, file_get_contents(dirname(__FILE__) . "/resources/openid_realm.html"));
- print $output;
- die();
- }
-
- /**
- * Define: endpoint step 3
- * @return void
- * @throws Hybrid_Exception
- */
- protected function processAuthStart() {
- $this->authInit();
-
- $provider_id = trim(strip_tags($this->request["hauth_start"]));
-
- // check if page accessed directly
- if (!Hybrid_Auth::storage()->get("hauth_session.$provider_id.hauth_endpoint")) {
- Hybrid_Logger::error("Endpoint: hauth_endpoint parameter is not defined on hauth_start, halt login process!");
-
- throw new Hybrid_Exception("You cannot access this page directly.");
- }
-
- // define:hybrid.endpoint.php step 2.
- $hauth = Hybrid_Auth::setup($provider_id);
-
- // if REQUESTed hauth_idprovider is wrong, session not created, etc.
- if (!$hauth) {
- Hybrid_Logger::error("Endpoint: Invalid parameter on hauth_start!");
- throw new Hybrid_Exception("Invalid parameter! Please return to the login page and try again.");
- }
-
- try {
- Hybrid_Logger::info("Endpoint: call adapter [{$provider_id}] loginBegin()");
-
- $hauth->adapter->loginBegin();
- } catch (Exception $e) {
- Hybrid_Logger::error("Exception:" . $e->getMessage(), $e);
- Hybrid_Error::setError($e->getMessage(), $e->getCode(), $e->getTraceAsString(), $e->getPrevious());
-
- $hauth->returnToCallbackUrl();
- }
-
- die();
- }
-
- /**
- * Define: endpoint step 3.1 and 3.2
- * @return void
- * @throws Hybrid_Exception
- */
- protected function processAuthDone() {
- $this->authInit();
-
- $provider_id = trim(strip_tags($this->request["hauth_done"]));
-
- $hauth = Hybrid_Auth::setup($provider_id);
-
- if (!$hauth) {
- Hybrid_Logger::error("Endpoint: Invalid parameter on hauth_done!");
-
- $hauth->adapter->setUserUnconnected();
-
- throw new Hybrid_Exception("Invalid parameter! Please return to the login page and try again.");
- }
-
- try {
- Hybrid_Logger::info("Endpoint: call adapter [{$provider_id}] loginFinish() ");
- $hauth->adapter->loginFinish();
- } catch (Exception $e) {
- Hybrid_Logger::error("Exception:" . $e->getMessage(), $e);
- Hybrid_Error::setError($e->getMessage(), $e->getCode(), $e->getTraceAsString(), $e->getPrevious());
-
- $hauth->adapter->setUserUnconnected();
- }
-
- Hybrid_Logger::info("Endpoint: job done. return to callback url.");
-
- $hauth->returnToCallbackUrl();
- die();
- }
-
- /**
- * Initializes authentication
- * @throws Hybrid_Exception
- */
- protected function authInit() {
- if (!$this->initDone) {
- $this->initDone = true;
-
- // Init Hybrid_Auth
- try {
- if (!class_exists("Hybrid_Storage", false)) {
- require_once realpath(dirname(__FILE__)) . "/Storage.php";
- }
- if (!class_exists("Hybrid_Exception", false)) {
- require_once realpath(dirname(__FILE__)) . "/Exception.php";
- }
- if (!class_exists("Hybrid_Logger", false)) {
- require_once realpath(dirname(__FILE__)) . "/Logger.php";
- }
-
- $storage = new Hybrid_Storage();
-
- // Check if Hybrid_Auth session already exist
- if (!$storage->config("CONFIG")) {
- throw new Hybrid_Exception("You cannot access this page directly.");
- }
-
- Hybrid_Auth::initialize($storage->config("CONFIG"));
- } catch (Exception $e) {
- Hybrid_Logger::error("Endpoint: Error while trying to init Hybrid_Auth: " . $e->getMessage());
- throw new Hybrid_Exception( "Endpoint: Error while trying to init Hybrid_Auth: " . $e->getMessage(), $e->getCode(), $e );
- }
- }
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Error.php b/milfs/librerias/hybridauth/Hybrid/Error.php
deleted file mode 100644
index 7013b49..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Error.php
+++ /dev/null
@@ -1,88 +0,0 @@
-set("hauth_session.error.status", 1);
- Hybrid_Auth::storage()->set("hauth_session.error.message", $message);
- Hybrid_Auth::storage()->set("hauth_session.error.code", $code);
- Hybrid_Auth::storage()->set("hauth_session.error.trace", $trace);
- Hybrid_Auth::storage()->set("hauth_session.error.previous", $previous);
- }
-
- /**
- * Clear the last error
- * @return void
- */
- public static function clearError() {
- Hybrid_Logger::info("Enter Hybrid_Error::clearError()");
-
- Hybrid_Auth::storage()->delete("hauth_session.error.status");
- Hybrid_Auth::storage()->delete("hauth_session.error.message");
- Hybrid_Auth::storage()->delete("hauth_session.error.code");
- Hybrid_Auth::storage()->delete("hauth_session.error.trace");
- Hybrid_Auth::storage()->delete("hauth_session.error.previous");
- }
-
- /**
- * Checks to see if there is a an error.
- * @return boolean true if there is an error.
- */
- public static function hasError() {
- return (bool) Hybrid_Auth::storage()->get("hauth_session.error.status");
- }
-
- /**
- * Return error message
- * @return string
- */
- public static function getErrorMessage() {
- return Hybrid_Auth::storage()->get("hauth_session.error.message");
- }
-
- /**
- * Return error code
- * @return int
- */
- public static function getErrorCode() {
- return Hybrid_Auth::storage()->get("hauth_session.error.code");
- }
-
- /**
- * Return string detailed error backtrace as string
- * @return string
- */
- public static function getErrorTrace() {
- return Hybrid_Auth::storage()->get("hauth_session.error.trace");
- }
-
- /**
- * Detailed error backtrace as string
- * @return string
- */
- public static function getErrorPrevious() {
- return Hybrid_Auth::storage()->get("hauth_session.error.previous");
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Exception.php b/milfs/librerias/hybridauth/Hybrid/Exception.php
deleted file mode 100644
index 8c8c2d1..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Exception.php
+++ /dev/null
@@ -1,17 +0,0 @@
-format(DATE_ATOM),
- $message,
- print_r($object, true) . PHP_EOL,
- )), FILE_APPEND
- );
- }
- }
-
- /**
- * Logs an info message
- *
- * @param string $message Info message
- * @return void
- */
- public static function info($message) {
- if (in_array(Hybrid_Auth::$config["debug_mode"], array(true, 'info'), true)) {
- $dt = new DateTime('now', new DateTimeZone( 'UTC' ));
- file_put_contents(Hybrid_Auth::$config["debug_file"], implode(' -- ', array(
- "INFO",
- $_SERVER['REMOTE_ADDR'],
- $dt->format(DATE_ATOM),
- $message . PHP_EOL,
- )), FILE_APPEND);
- }
- }
-
- /**
- * Logs an error message with an object dump
- *
- * @param string $message Error message
- * @param stdClass $object Object being debugged
- * @return void
- */
- public static function error($message, $object = null) {
- if (isset(Hybrid_Auth::$config["debug_mode"]) && in_array(Hybrid_Auth::$config["debug_mode"], array(true, 'info', 'error'), true)) {
- $dt = new DateTime('now', new DateTimeZone( 'UTC' ));
- file_put_contents(Hybrid_Auth::$config["debug_file"], implode(' -- ', array(
- 'ERROR',
- $_SERVER['REMOTE_ADDR'],
- $dt->format(DATE_ATOM),
- $message,
- print_r($object, true) . PHP_EOL
- )), FILE_APPEND);
- }
- }
-
- /**
- * Dumps the data in the way suitable to be output in log files for debug purposes
- *
- * @param mixed $data
- *
- * @return string
- */
- public static function dumpData($data) {
- return var_export($data, true);
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Provider_Adapter.php b/milfs/librerias/hybridauth/Hybrid/Provider_Adapter.php
deleted file mode 100644
index 7809f6a..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Provider_Adapter.php
+++ /dev/null
@@ -1,321 +0,0 @@
-id = $id;
- $this->params = $params;
- $this->id = $this->getProviderCiId($this->id);
- $this->config = $this->getConfigById($this->id);
-
- # check the IDp id
- if (!$this->id) {
- throw new Exception("No provider ID specified.", 2);
- }
-
- # check the IDp config
- if (!$this->config) {
- throw new Exception("Unknown Provider ID, check your configuration file.", 3);
- }
-
- # check the IDp adapter is enabled
- if (!$this->config["enabled"]) {
- throw new Exception("The provider '{$this->id}' is not enabled.", 3);
- }
-
- # include the adapter wrapper
- if (isset($this->config["wrapper"]) && is_array($this->config["wrapper"])) {
- if (isset($this->config["wrapper"]["path"])) {
- require_once $this->config["wrapper"]["path"];
- }
-
- if (!class_exists($this->config["wrapper"]["class"])) {
- throw new Exception("Unable to load the adapter class.", 3);
- }
-
- $this->wrapper = $this->config["wrapper"]["class"];
- } else {
- require_once Hybrid_Auth::$config["path_providers"] . $this->id . ".php";
-
- $this->wrapper = "Hybrid_Providers_" . $this->id;
- }
-
- # create the adapter instance, and pass the current params and config
- $this->adapter = new $this->wrapper($this->id, $this->config, $this->params);
-
- return $this;
- }
-
- /**
- * Hybrid_Provider_Adapter::login(), prepare the user session and the authentication request
- * for index.php
- * @return void
- * @throw Exception
- */
- function login() {
- Hybrid_Logger::info("Enter Hybrid_Provider_Adapter::login( {$this->id} ) ");
-
- if (!$this->adapter) {
- throw new Exception("Hybrid_Provider_Adapter::login() should not directly used.");
- }
-
- // clear all unneeded params
- foreach (Hybrid_Auth::$config["providers"] as $idpid => $params) {
- Hybrid_Auth::storage()->delete("hauth_session.{$idpid}.hauth_return_to");
- Hybrid_Auth::storage()->delete("hauth_session.{$idpid}.hauth_endpoint");
- Hybrid_Auth::storage()->delete("hauth_session.{$idpid}.id_provider_params");
- }
-
- // make a fresh start
- $this->logout();
-
- # get hybridauth base url
- if (empty(Hybrid_Auth::$config["base_url"])) {
- // the base url wasn't provide, so we must use the current
- // url (which makes sense actually)
- $url = empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off' ? 'http' : 'https';
- $url .= '://' . $_SERVER['HTTP_HOST'];
- $url .= $_SERVER['REQUEST_URI'];
- $HYBRID_AUTH_URL_BASE = $url;
- } else {
- $HYBRID_AUTH_URL_BASE = Hybrid_Auth::$config["base_url"];
- }
-
- // make sure params is array
- if (!is_array($this->params)) {
- $this->params = array();
- }
-
- # we make use of session_id() as storage hash to identify the current user
- # using session_regenerate_id() will be a problem, but ..
- $this->params["hauth_token"] = session_id();
-
- # set request timestamp
- $this->params["hauth_time"] = time();
-
- # for default HybridAuth endpoint url hauth_login_start_url
- # auth.start required the IDp ID
- # auth.time optional login request timestamp
- $this->params["login_start"] = $HYBRID_AUTH_URL_BASE . ( strpos($HYBRID_AUTH_URL_BASE, '?') ? '&' : '?' ) . "hauth.start={$this->id}&hauth.time={$this->params["hauth_time"]}";
-
- # for default HybridAuth endpoint url hauth_login_done_url
- # auth.done required the IDp ID
- $this->params["login_done"] = $HYBRID_AUTH_URL_BASE . ( strpos($HYBRID_AUTH_URL_BASE, '?') ? '&' : '?' ) . "hauth.done={$this->id}";
-
- if (isset($this->params["hauth_return_to"])) {
- Hybrid_Auth::storage()->set("hauth_session.{$this->id}.hauth_return_to", $this->params["hauth_return_to"]);
- }
- if (isset($this->params["login_done"])) {
- Hybrid_Auth::storage()->set("hauth_session.{$this->id}.hauth_endpoint", $this->params["login_done"]);
- }
- Hybrid_Auth::storage()->set("hauth_session.{$this->id}.id_provider_params", $this->params);
-
- // store config to be used by the end point
- Hybrid_Auth::storage()->config("CONFIG", Hybrid_Auth::$config);
-
- // move on
- Hybrid_Logger::debug("Hybrid_Provider_Adapter::login( {$this->id} ), redirect the user to login_start URL.");
-
- Hybrid_Auth::redirect($this->params["login_start"]);
- }
-
- /**
- * Let hybridauth forget all about the user for the current provider
- * @return bool
- */
- function logout() {
- $this->adapter->logout();
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Return true if the user is connected to the current provider
- * @return bool
- */
- public function isUserConnected() {
- return $this->adapter->isUserConnected();
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Call adapter methods defined in the adapter model:
- * getUserProfile()
- * getUserContacts()
- * getUserActivity()
- * setUserStatus()
- *
- * @param string $name Method name
- * @param array $arguments Call arguments
- * @return mixed
- * @throws Exception
- */
- public function __call($name, $arguments) {
- Hybrid_Logger::info("Enter Hybrid_Provider_Adapter::$name(), Provider: {$this->id}");
-
- if (!$this->isUserConnected()) {
- throw new Exception("User not connected to the provider {$this->id}.", 7);
- }
-
- if (!method_exists($this->adapter, $name)) {
- throw new Exception("Call to undefined function Hybrid_Providers_{$this->id}::$name().");
- }
-
- $counter = count($arguments);
- if ($counter == 1) {
- return $this->adapter->$name($arguments[0]);
- } elseif ($counter == 2) {
- return $this->adapter->$name($arguments[0], $arguments[1]);
- } else {
- return $this->adapter->$name();
- }
- }
-
- /**
- * If the user is connected, then return the access_token and access_token_secret
- * if the provider api use oauth
- *
- *
- * array(
- * 'access_token' => '',
- * 'access_token_secret' => '',
- * 'refresh_token' => '',
- * 'expires_in' => '',
- * 'expires_at' => '',
- * )
- *
- * @return array
- */
- public function getAccessToken() {
- if (!$this->adapter->isUserConnected()) {
- Hybrid_Logger::error("User not connected to the provider.");
- throw new Exception("User not connected to the provider.", 7);
- }
-
- return array(
- "access_token" => $this->adapter->token("access_token"), // OAuth access token
- "access_token_secret" => $this->adapter->token("access_token_secret"), // OAuth access token secret
- "refresh_token" => $this->adapter->token("refresh_token"), // OAuth refresh token
- "expires_in" => $this->adapter->token("expires_in"), // OPTIONAL. The duration in seconds of the access token lifetime
- "expires_at" => $this->adapter->token("expires_at"), // OPTIONAL. Timestamp when the access_token expire. if not provided by the social api, then it should be calculated: expires_at = now + expires_in
- );
- }
-
- /**
- * Naive getter of the current connected IDp API client
- * @return stdClass
- * @throws Exception
- */
- function api() {
- if (!$this->adapter->isUserConnected()) {
- Hybrid_Logger::error("User not connected to the provider.");
-
- throw new Exception("User not connected to the provider.", 7);
- }
- return $this->adapter->api;
- }
-
- /**
- * Redirect the user to hauth_return_to (the callback url)
- * @return void
- */
- function returnToCallbackUrl() {
- // get the stored callback url
- $callback_url = Hybrid_Auth::storage()->get("hauth_session.{$this->id}.hauth_return_to");
-
- // remove some unneeded stored data
- Hybrid_Auth::storage()->delete("hauth_session.{$this->id}.hauth_return_to");
- Hybrid_Auth::storage()->delete("hauth_session.{$this->id}.hauth_endpoint");
- Hybrid_Auth::storage()->delete("hauth_session.{$this->id}.id_provider_params");
-
- // back to home
- Hybrid_Auth::redirect($callback_url);
- }
-
- /**
- * Return the provider config by id
- *
- * @param string $id Config key
- * @return mixed
- */
- function getConfigById($id) {
- if (isset(Hybrid_Auth::$config["providers"][$id])) {
- return Hybrid_Auth::$config["providers"][$id];
- }
- return null;
- }
-
- /**
- * Return the provider config by id; case insensitive
- *
- * @param string $id Provider id
- * @return mixed
- */
- function getProviderCiId($id) {
- foreach (Hybrid_Auth::$config["providers"] as $idpid => $params) {
- if (strtolower($idpid) == strtolower($id)) {
- return $idpid;
- }
- }
- return null;
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Provider_Model.php b/milfs/librerias/hybridauth/Hybrid/Provider_Model.php
deleted file mode 100644
index d044bd5..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Provider_Model.php
+++ /dev/null
@@ -1,244 +0,0 @@
-params = Hybrid_Auth::storage()->get("hauth_session.$providerId.id_provider_params");
- } else {
- $this->params = $params;
- }
-
- // idp id
- $this->providerId = $providerId;
-
- // set HybridAuth endpoint for this provider
- $this->endpoint = Hybrid_Auth::storage()->get("hauth_session.$providerId.hauth_endpoint");
-
- // idp config
- $this->config = $config;
-
- // new user instance
- $this->user = new Hybrid_User();
- $this->user->providerId = $providerId;
-
- // initialize the current provider adapter
- $this->initialize();
-
- Hybrid_Logger::debug("Hybrid_Provider_Model::__construct( $providerId ) initialized. dump current adapter instance: ", serialize($this));
- }
-
- /**
- * IDp wrappers initializer
- *
- * The main job of wrappers initializer is to performs (depend on the IDp api client it self):
- * - include some libs needed by this provider,
- * - check IDp key and secret,
- * - set some needed parameters (stored in $this->params) by this IDp api client
- * - create and setup an instance of the IDp api client on $this->api
- *
- * @return void
- * @throws Exception
- */
- abstract protected function initialize();
-
- /**
- * Begin login
- *
- * @return void
- * @throws Exception
- */
- abstract protected function loginBegin();
-
- /**
- * Finish login
- * @return void
- * @throws Exception
- */
- abstract protected function loginFinish();
-
- /**
- * Generic logout, just erase current provider adapter stored data to let Hybrid_Auth all forget about it
- * @return bool
- */
- function logout() {
- Hybrid_Logger::info("Enter [{$this->providerId}]::logout()");
- $this->clearTokens();
- return true;
- }
-
- /**
- * Grab the user profile from the IDp api client
- * @return Hybrid_User_Profile
- * @throw Exception
- */
- function getUserProfile() {
- Hybrid_Logger::error("HybridAuth do not provide users contacts list for {$this->providerId} yet.");
- throw new Exception("Provider does not support this feature.", 8);
- }
-
- /**
- * Load the current logged in user contacts list from the IDp api client
- * @return Hybrid_User_Contact[]
- * @throws Exception
- */
- function getUserContacts() {
- Hybrid_Logger::error("HybridAuth do not provide users contacts list for {$this->providerId} yet.");
- throw new Exception("Provider does not support this feature.", 8);
- }
-
- /**
- * Return the user activity stream
- * @return Hybrid_User_Activity[]
- * @throws Exception
- */
- function getUserActivity($stream) {
- Hybrid_Logger::error("HybridAuth do not provide user's activity stream for {$this->providerId} yet.");
- throw new Exception("Provider does not support this feature.", 8);
- }
-
- /**
- * Set user status
- * @return mixed Provider response
- * @throws Exception
- */
- function setUserStatus($status) {
- Hybrid_Logger::error("HybridAuth do not provide user's activity stream for {$this->providerId} yet.");
- throw new Exception("Provider does not support this feature.", 8);
- }
-
- /**
- * Return the user status
- * @return mixed Provider response
- * @throws Exception
- */
- function getUserStatus($statusid) {
- Hybrid_Logger::error("HybridAuth do not provide user's status for {$this->providerId} yet.");
- throw new Exception("Provider does not support this feature.", 8);
- }
-
- /**
- * Return true if the user is connected to the current provider
- * @return bool
- */
- public function isUserConnected() {
- return (bool) Hybrid_Auth::storage()->get("hauth_session.{$this->providerId}.is_logged_in");
- }
-
- /**
- * Set user to connected
- * @return void
- */
- public function setUserConnected() {
- Hybrid_Logger::info("Enter [{$this->providerId}]::setUserConnected()");
- Hybrid_Auth::storage()->set("hauth_session.{$this->providerId}.is_logged_in", 1);
- }
-
- /**
- * Set user to unconnected
- * @return void
- */
- public function setUserUnconnected() {
- Hybrid_Logger::info("Enter [{$this->providerId}]::setUserUnconnected()");
- Hybrid_Auth::storage()->set("hauth_session.{$this->providerId}.is_logged_in", 0);
- }
-
- /**
- * Get or set a token
- * @return string
- */
- public function token($token, $value = null) {
- if ($value === null) {
- return Hybrid_Auth::storage()->get("hauth_session.{$this->providerId}.token.$token");
- } else {
- Hybrid_Auth::storage()->set("hauth_session.{$this->providerId}.token.$token", $value);
- }
- }
-
- /**
- * Delete a stored token
- * @return void
- */
- public function deleteToken($token) {
- Hybrid_Auth::storage()->delete("hauth_session.{$this->providerId}.token.$token");
- }
-
- /**
- * Clear all existent tokens for this provider
- * @return void
- */
- public function clearTokens() {
- Hybrid_Auth::storage()->deleteMatch("hauth_session.{$this->providerId}.");
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Provider_Model_OAuth1.php b/milfs/librerias/hybridauth/Hybrid/Provider_Model_OAuth1.php
deleted file mode 100644
index 23fd2d3..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Provider_Model_OAuth1.php
+++ /dev/null
@@ -1,174 +0,0 @@
- "OK: Success!",
- 304 => "Not Modified: There was no new data to return.",
- 400 => "Bad Request: The request was invalid.",
- 401 => "Unauthorized.",
- 403 => "Forbidden: The request is understood, but it has been refused.",
- 404 => "Not Found: The URI requested is invalid or the resource requested does not exists.",
- 406 => "Not Acceptable.",
- 500 => "Internal Server Error: Something is broken.",
- 502 => "Bad Gateway.",
- 503 => "Service Unavailable."
- );
-
- if (!$code && $this->api) {
- $code = $this->api->http_code;
- }
-
- if (isset($http_status_codes[$code])) {
- return $code . " " . $http_status_codes[$code];
- }
- }
-
- /**
- * {@inheritdoc}
- */
- function initialize() {
- // 1 - check application credentials
- if (!$this->config["keys"]["key"] || !$this->config["keys"]["secret"]) {
- throw new Exception("Your application key and secret are required in order to connect to {$this->providerId}.", 4);
- }
-
- // 2 - include OAuth lib and client
- if (! class_exists('OAuthConsumer') ) {
- require_once Hybrid_Auth::$config["path_libraries"] . "OAuth/OAuth.php";
- }
- require_once Hybrid_Auth::$config["path_libraries"] . "OAuth/OAuth1Client.php";
-
- // 3.1 - setup access_token if any stored
- if ($this->token("access_token")) {
- $this->api = new OAuth1Client(
- $this->config["keys"]["key"], $this->config["keys"]["secret"], $this->token("access_token"), $this->token("access_token_secret")
- );
- }
-
- // 3.2 - setup request_token if any stored, in order to exchange with an access token
- elseif ($this->token("request_token")) {
- $this->api = new OAuth1Client(
- $this->config["keys"]["key"], $this->config["keys"]["secret"], $this->token("request_token"), $this->token("request_token_secret")
- );
- }
-
- // 3.3 - instanciate OAuth client with client credentials
- else {
- $this->api = new OAuth1Client($this->config["keys"]["key"], $this->config["keys"]["secret"]);
- }
-
- // Set curl proxy if exist
- if (isset(Hybrid_Auth::$config["proxy"])) {
- $this->api->curl_proxy = Hybrid_Auth::$config["proxy"];
- }
- }
-
- /**
- * {@inheritdoc}
- */
- function loginBegin() {
- $tokens = $this->api->requestToken($this->endpoint);
-
- // request tokens as received from provider
- $this->request_tokens_raw = $tokens;
-
- // check the last HTTP status code returned
- if ($this->api->http_code != 200) {
- throw new Exception("Authentication failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code), 5);
- }
-
- if (!isset($tokens["oauth_token"])) {
- throw new Exception("Authentication failed! {$this->providerId} returned an invalid oauth token.", 5);
- }
-
- $this->token("request_token", $tokens["oauth_token"]);
- $this->token("request_token_secret", $tokens["oauth_token_secret"]);
-
- # redirect the user to the provider authentication url
- Hybrid_Auth::redirect($this->api->authorizeUrl($tokens));
- }
-
- /**
- * {@inheritdoc}
- */
- function loginFinish() {
- $oauth_token = (array_key_exists('oauth_token', $_REQUEST)) ? $_REQUEST['oauth_token'] : "";
- $oauth_verifier = (array_key_exists('oauth_verifier', $_REQUEST)) ? $_REQUEST['oauth_verifier'] : "";
-
- if (!$oauth_token || !$oauth_verifier) {
- throw new Exception("Authentication failed! {$this->providerId} returned an invalid oauth verifier.", 5);
- }
-
- // request an access token
- $tokens = $this->api->accessToken($oauth_verifier);
-
- // access tokens as received from provider
- $this->access_tokens_raw = $tokens;
-
- // check the last HTTP status code returned
- if ($this->api->http_code != 200) {
- throw new Exception("Authentication failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code), 5);
- }
-
- // we should have an access_token, or else, something has gone wrong
- if (!isset($tokens["oauth_token"])) {
- throw new Exception("Authentication failed! {$this->providerId} returned an invalid access token.", 5);
- }
-
- // we no more need to store request tokens
- $this->deleteToken("request_token");
- $this->deleteToken("request_token_secret");
-
- // store access_token for later user
- $this->token("access_token", $tokens['oauth_token']);
- $this->token("access_token_secret", $tokens['oauth_token_secret']);
-
- // set user as logged in to the current provider
- $this->setUserConnected();
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Provider_Model_OAuth2.php b/milfs/librerias/hybridauth/Hybrid/Provider_Model_OAuth2.php
deleted file mode 100644
index 6159b86..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Provider_Model_OAuth2.php
+++ /dev/null
@@ -1,184 +0,0 @@
- "OK: Success!",
- 304 => "Not Modified: There was no new data to return.",
- 400 => "Bad Request: The request was invalid.",
- 401 => "Unauthorized.",
- 403 => "Forbidden: The request is understood, but it has been refused.",
- 404 => "Not Found: The URI requested is invalid or the resource requested does not exists.",
- 406 => "Not Acceptable.",
- 500 => "Internal Server Error: Something is broken.",
- 502 => "Bad Gateway.",
- 503 => "Service Unavailable."
- );
-
- if (!$code && $this->api) {
- $code = $this->api->http_code;
- }
-
- if (isset($http_status_codes[$code])) {
- return $code . " " . $http_status_codes[$code];
- }
- }
-
- /**
- * Adapter initializer
- */
- function initialize() {
- if (!$this->config["keys"]["id"] || !$this->config["keys"]["secret"]) {
- throw new Exception("Your application id and secret are required in order to connect to {$this->providerId}.", 4);
- }
-
- // override requested scope
- if (isset($this->config["scope"]) && !empty($this->config["scope"])) {
- $this->scope = $this->config["scope"];
- }
-
- // include OAuth2 client
- require_once Hybrid_Auth::$config["path_libraries"] . "OAuth/OAuth2Client.php";
-
- // create a new OAuth2 client instance
- $this->api = new OAuth2Client($this->config["keys"]["id"], $this->config["keys"]["secret"], $this->endpoint, $this->compressed);
-
- // If we have an access token, set it
- if ($this->token("access_token")) {
- $this->api->access_token = $this->token("access_token");
- $this->api->refresh_token = $this->token("refresh_token");
- $this->api->access_token_expires_in = $this->token("expires_in");
- $this->api->access_token_expires_at = $this->token("expires_at");
- }
-
- // Set curl proxy if exist
- if (isset(Hybrid_Auth::$config["proxy"])) {
- $this->api->curl_proxy = Hybrid_Auth::$config["proxy"];
- }
- }
-
- /**
- * {@inheritdoc}
- */
- function loginBegin() {
- // redirect the user to the provider authentication url
- Hybrid_Auth::redirect($this->api->authorizeUrl(array("scope" => $this->scope)));
- }
-
- /**
- * {@inheritdoc}
- */
- function loginFinish() {
- $error = (array_key_exists('error', $_REQUEST)) ? $_REQUEST['error'] : "";
-
- // check for errors
- if ($error) {
- throw new Exception("Authentication failed! {$this->providerId} returned an error: $error", 5);
- }
-
- // try to authenticate user
- $code = (array_key_exists('code', $_REQUEST)) ? $_REQUEST['code'] : "";
-
- try {
- $this->api->authenticate($code);
- } catch (Exception $e) {
- throw new Exception("User profile request failed! {$this->providerId} returned an error: $e", 6);
- }
-
- // check if authenticated
- if (!$this->api->access_token) {
- throw new Exception("Authentication failed! {$this->providerId} returned an invalid access token.", 5);
- }
-
- // store tokens
- $this->token("access_token", $this->api->access_token);
- $this->token("refresh_token", $this->api->refresh_token);
- $this->token("expires_in", $this->api->access_token_expires_in);
- $this->token("expires_at", $this->api->access_token_expires_at);
-
- // set user connected locally
- $this->setUserConnected();
- }
-
- /**
- * {@inheritdoc}
- */
- function refreshToken() {
- // have an access token?
- if ($this->api->access_token) {
-
- // have to refresh?
- if ($this->api->refresh_token && $this->api->access_token_expires_at) {
-
- // expired?
- if ($this->api->access_token_expires_at <= time()) {
- $response = $this->api->refreshToken(array("refresh_token" => $this->api->refresh_token));
-
- if (!isset($response->access_token) || !$response->access_token) {
- // set the user as disconnected at this point and throw an exception
- $this->setUserUnconnected();
-
- throw new Exception("The Authorization Service has return an invalid response while requesting a new access token. " . (string) $response->error);
- }
-
- // set new access_token
- $this->api->access_token = $response->access_token;
-
- if (isset($response->refresh_token))
- $this->api->refresh_token = $response->refresh_token;
-
- if (isset($response->expires_in)) {
- $this->api->access_token_expires_in = $response->expires_in;
-
- // even given by some idp, we should calculate this
- $this->api->access_token_expires_at = time() + $response->expires_in;
- }
- }
- }
-
- // re store tokens
- $this->token("access_token", $this->api->access_token);
- $this->token("refresh_token", $this->api->refresh_token);
- $this->token("expires_in", $this->api->access_token_expires_in);
- $this->token("expires_at", $this->api->access_token_expires_at);
- }
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Provider_Model_OpenID.php b/milfs/librerias/hybridauth/Hybrid/Provider_Model_OpenID.php
deleted file mode 100644
index 08fa36c..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Provider_Model_OpenID.php
+++ /dev/null
@@ -1,170 +0,0 @@
-public $openidIdentifier = "";
- *
- * Hybrid_Provider_Model_OpenID use LightOpenID lib which can be found on
- * Hybrid/thirdparty/OpenID/LightOpenID.php
- */
-class Hybrid_Provider_Model_OpenID extends Hybrid_Provider_Model {
-
- /**
- * Provider API client
- * @var LightOpenID
- */
- public $api = null;
-
- /**
- * Openid provider identifier
- * @var string
- */
- public $openidIdentifier = "";
-
- /**
- * {@inheritdoc}
- */
- function initialize() {
- if (isset($this->params["openid_identifier"])) {
- $this->openidIdentifier = $this->params["openid_identifier"];
- }
-
- // include LightOpenID lib
- require_once Hybrid_Auth::$config["path_libraries"] . "OpenID/LightOpenID.php";
-
- // An error was occurring when proxy wasn't set. Not sure where proxy was meant to be set/initialized.
- Hybrid_Auth::$config['proxy'] = isset(Hybrid_Auth::$config['proxy']) ? Hybrid_Auth::$config['proxy'] : '';
-
- $hostPort = parse_url(Hybrid_Auth::$config["base_url"], PHP_URL_PORT);
- $hostUrl = parse_url(Hybrid_Auth::$config["base_url"], PHP_URL_HOST);
-
- // Check for port on url
- if ($hostPort) {
- $hostUrl .= ':' . $hostPort;
- }
-
- $this->api = new LightOpenID($hostUrl, Hybrid_Auth::$config["proxy"]);
- }
-
- /**
- * {@inheritdoc}
- */
- function loginBegin() {
- if (empty($this->openidIdentifier)) {
- throw new Exception("OpenID adapter require the identity provider identifier 'openid_identifier' as an extra parameter.", 4);
- }
-
- $this->api->identity = $this->openidIdentifier;
- $this->api->returnUrl = $this->endpoint;
- $this->api->required = array(
- 'namePerson/first',
- 'namePerson/last',
- 'namePerson/friendly',
- 'namePerson',
- 'contact/email',
- 'birthDate',
- 'birthDate/birthDay',
- 'birthDate/birthMonth',
- 'birthDate/birthYear',
- 'person/gender',
- 'pref/language',
- 'contact/postalCode/home',
- 'contact/city/home',
- 'contact/country/home',
- 'media/image/default',
- );
-
- # redirect the user to the provider authentication url
- Hybrid_Auth::redirect($this->api->authUrl());
- }
-
- /**
- * {@inheritdoc}
- */
- function loginFinish() {
- # if user don't grant access of their data to your site, halt with an Exception
- if ($this->api->mode == 'cancel') {
- throw new Exception("Authentication failed! User has canceled authentication!", 5);
- }
-
- # if something goes wrong
- if (!$this->api->validate()) {
- throw new Exception("Authentication failed. Invalid request received!", 5);
- }
-
- # fetch received user data
- $response = $this->api->getAttributes();
-
- # store the user profile
- $this->user->profile->identifier = $this->api->identity;
-
- $this->user->profile->firstName = (array_key_exists("namePerson/first", $response)) ? $response["namePerson/first"] : "";
- $this->user->profile->lastName = (array_key_exists("namePerson/last", $response)) ? $response["namePerson/last"] : "";
- $this->user->profile->displayName = (array_key_exists("namePerson", $response)) ? $response["namePerson"] : "";
- $this->user->profile->email = (array_key_exists("contact/email", $response)) ? $response["contact/email"] : "";
- $this->user->profile->language = (array_key_exists("pref/language", $response)) ? $response["pref/language"] : "";
- $this->user->profile->country = (array_key_exists("contact/country/home", $response)) ? $response["contact/country/home"] : "";
- $this->user->profile->zip = (array_key_exists("contact/postalCode/home", $response)) ? $response["contact/postalCode/home"] : "";
- $this->user->profile->gender = (array_key_exists("person/gender", $response)) ? $response["person/gender"] : "";
- $this->user->profile->photoURL = (array_key_exists("media/image/default", $response)) ? $response["media/image/default"] : "";
-
- $this->user->profile->birthDay = (array_key_exists("birthDate/birthDay", $response)) ? $response["birthDate/birthDay"] : "";
- $this->user->profile->birthMonth = (array_key_exists("birthDate/birthMonth", $response)) ? $response["birthDate/birthMonth"] : "";
- $this->user->profile->birthYear = (array_key_exists("birthDate/birthDate", $response)) ? $response["birthDate/birthDate"] : "";
-
- if (isset($response['namePerson/friendly']) && !empty($response['namePerson/friendly']) && !$this->user->profile->displayName) {
- $this->user->profile->displayName = $response["namePerson/friendly"];
- }
-
- if (isset($response['birthDate']) && !empty($response['birthDate']) && !$this->user->profile->birthDay) {
- list( $birthday_year, $birthday_month, $birthday_day ) = $response['birthDate'];
-
- $this->user->profile->birthDay = (int) $birthday_day;
- $this->user->profile->birthMonth = (int) $birthday_month;
- $this->user->profile->birthYear = (int) $birthday_year;
- }
-
- if (!$this->user->profile->displayName) {
- $this->user->profile->displayName = trim($this->user->profile->firstName . " " . $this->user->profile->lastName);
- }
-
- if ($this->user->profile->gender == "f") {
- $this->user->profile->gender = "female";
- }
-
- if ($this->user->profile->gender == "m") {
- $this->user->profile->gender = "male";
- }
-
- // set user as logged in
- $this->setUserConnected();
-
- // with openid providers we get the user profile only once, so store it
- Hybrid_Auth::storage()->set("hauth_session.{$this->providerId}.user", $this->user);
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserProfile() {
- // try to get the user profile from stored data
- $this->user = Hybrid_Auth::storage()->get("hauth_session.{$this->providerId}.user");
-
- // if not found
- if (!is_object($this->user)) {
- throw new Exception("User profile request failed! User is not connected to {$this->providerId} or his session has expired.", 6);
- }
-
- return $this->user->profile;
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Providers/AOL.php b/milfs/librerias/hybridauth/Hybrid/Providers/AOL.php
deleted file mode 100644
index 19028c0..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Providers/AOL.php
+++ /dev/null
@@ -1,18 +0,0 @@
-config["keys"]["id"] || !$this->config["keys"]["secret"]) {
- throw new Exception("Your application id and secret are required in order to connect to {$this->providerId}.", 4);
- }
-
- if (!class_exists('FacebookApiException', false)) {
- require_once Hybrid_Auth::$config["path_libraries"] . "Facebook/base_facebook.php";
- require_once Hybrid_Auth::$config["path_libraries"] . "Facebook/facebook.php";
- }
-
- if (isset(Hybrid_Auth::$config["proxy"])) {
- BaseFacebook::$CURL_OPTS[CURLOPT_PROXY] = Hybrid_Auth::$config["proxy"];
- }
-
- $trustForwarded = isset($this->config['trustForwarded']) ? (bool) $this->config['trustForwarded'] : false;
- $this->api = new Facebook(array('appId' => $this->config["keys"]["id"], 'secret' => $this->config["keys"]["secret"], 'trustForwarded' => $trustForwarded));
-
- if ($this->token("access_token")) {
- $this->api->setAccessToken($this->token("access_token"));
- $this->api->setExtendedAccessToken();
- $access_token = $this->api->getAccessToken();
-
- if ($access_token) {
- $this->token("access_token", $access_token);
- $this->api->setAccessToken($access_token);
- }
-
- $this->api->setAccessToken($this->token("access_token"));
- }
-
- $this->api->getUser();
- }
-
- /**
- * {@inheritdoc}
- */
- function loginBegin() {
- $parameters = array("scope" => $this->scope, "redirect_uri" => $this->endpoint, "display" => "page");
- $optionals = array("scope", "redirect_uri", "display", "auth_type");
-
- foreach ($optionals as $parameter) {
- if (isset($this->config[$parameter]) && !empty($this->config[$parameter])) {
- $parameters[$parameter] = $this->config[$parameter];
-
- //If the auth_type parameter is used, we need to generate a nonce and include it as a parameter
- if ($parameter == "auth_type") {
- $nonce = md5(uniqid(mt_rand(), true));
- $parameters['auth_nonce'] = $nonce;
-
- Hybrid_Auth::storage()->set('fb_auth_nonce', $nonce);
- }
- }
- }
-
- if (isset($this->config['force']) && $this->config['force'] === true) {
- $parameters['auth_type'] = 'reauthenticate';
- $parameters['auth_nonce'] = md5(uniqid(mt_rand(), true));
-
- Hybrid_Auth::storage()->set('fb_auth_nonce', $parameters['auth_nonce']);
- }
-
- // get the login url
- $url = $this->api->getLoginUrl($parameters);
-
- // redirect to facebook
- Hybrid_Auth::redirect($url);
- }
-
- /**
- * {@inheritdoc}
- */
- function loginFinish() {
- // in case we get error_reason=user_denied&error=access_denied
- if (isset($_REQUEST['error']) && $_REQUEST['error'] == "access_denied") {
- throw new Exception("Authentication failed! The user denied your request.", 5);
- }
-
- // in case we are using iOS/Facebook reverse authentication
- if (isset($_REQUEST['access_token'])) {
- $this->token("access_token", $_REQUEST['access_token']);
- $this->api->setAccessToken($this->token("access_token"));
- $this->api->setExtendedAccessToken();
- $access_token = $this->api->getAccessToken();
-
- if ($access_token) {
- $this->token("access_token", $access_token);
- $this->api->setAccessToken($access_token);
- }
-
- $this->api->setAccessToken($this->token("access_token"));
- }
-
-
- // if auth_type is used, then an auth_nonce is passed back, and we need to check it.
- if (isset($_REQUEST['auth_nonce'])) {
-
- $nonce = Hybrid_Auth::storage()->get('fb_auth_nonce');
-
- //Delete the nonce
- Hybrid_Auth::storage()->delete('fb_auth_nonce');
-
- if ($_REQUEST['auth_nonce'] != $nonce) {
- throw new Exception("Authentication failed! Invalid nonce used for reauthentication.", 5);
- }
- }
-
- // try to get the UID of the connected user from fb, should be > 0
- if (!$this->api->getUser()) {
- throw new Exception("Authentication failed! {$this->providerId} returned an invalid user id.", 5);
- }
-
- // set user as logged in
- $this->setUserConnected();
-
- // store facebook access token
- $this->token("access_token", $this->api->getAccessToken());
- }
-
- /**
- * {@inheritdoc}
- */
- function logout() {
- $this->api->destroySession();
- parent::logout();
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserProfile() {
- // request user profile from fb api
- try {
- $fields = array(
- 'id', 'name', 'first_name', 'last_name', 'link', 'website',
- 'gender', 'locale', 'about', 'email', 'hometown', 'location',
- 'birthday'
- );
-
- $data = $this->api->api('/me?fields=' . implode(',', $fields));
- } catch (FacebookApiException $e) {
- throw new Exception("User profile request failed! {$this->providerId} returned an error: {$e->getMessage()}", 6, $e);
- }
-
- // if the provider identifier is not received, we assume the auth has failed
- if (!isset($data["id"])) {
- throw new Exception("User profile request failed! {$this->providerId} api returned an invalid response: " . Hybrid_Logger::dumpData( $data ), 6);
- }
-
- # store the user profile.
- $this->user->profile->identifier = (array_key_exists('id', $data)) ? $data['id'] : "";
- $this->user->profile->username = (array_key_exists('username', $data)) ? $data['username'] : "";
- $this->user->profile->displayName = (array_key_exists('name', $data)) ? $data['name'] : "";
- $this->user->profile->firstName = (array_key_exists('first_name', $data)) ? $data['first_name'] : "";
- $this->user->profile->lastName = (array_key_exists('last_name', $data)) ? $data['last_name'] : "";
- $this->user->profile->photoURL = "https://graph.facebook.com/" . $this->user->profile->identifier . "/picture?width=150&height=150";
- $this->user->profile->coverInfoURL = "https://graph.facebook.com/" . $this->user->profile->identifier . "?fields=cover&access_token=" . $this->api->getAccessToken();
- $this->user->profile->profileURL = (array_key_exists('link', $data)) ? $data['link'] : "";
- $this->user->profile->webSiteURL = (array_key_exists('website', $data)) ? $data['website'] : "";
- $this->user->profile->gender = (array_key_exists('gender', $data)) ? $data['gender'] : "";
- $this->user->profile->language = (array_key_exists('locale', $data)) ? $data['locale'] : "";
- $this->user->profile->description = (array_key_exists('about', $data)) ? $data['about'] : "";
- $this->user->profile->email = (array_key_exists('email', $data)) ? $data['email'] : "";
- $this->user->profile->emailVerified = (array_key_exists('email', $data)) ? $data['email'] : "";
- $this->user->profile->region = (array_key_exists("location", $data) && array_key_exists("name", $data['location'])) ? $data['location']["name"] : "";
-
- if (!empty($this->user->profile->region)) {
- $regionArr = explode(',', $this->user->profile->region);
- if (count($regionArr) > 1) {
- $this->user->profile->city = trim($regionArr[0]);
- $this->user->profile->country = trim($regionArr[1]);
- }
- }
-
- if (array_key_exists('birthday', $data)) {
- list($birthday_month, $birthday_day, $birthday_year) = explode("/", $data['birthday']);
-
- $this->user->profile->birthDay = (int) $birthday_day;
- $this->user->profile->birthMonth = (int) $birthday_month;
- $this->user->profile->birthYear = (int) $birthday_year;
- }
-
- return $this->user->profile;
- }
-
- /**
- * Attempt to retrieve the url to the cover image given the coverInfoURL
- *
- * @param string $coverInfoURL coverInfoURL variable
- * @return string url to the cover image OR blank string
- */
- function getCoverURL($coverInfoURL) {
- try {
- $headers = get_headers($coverInfoURL);
- if (substr($headers[0], 9, 3) != "404") {
- $coverOBJ = json_decode(file_get_contents($coverInfoURL));
- if (array_key_exists('cover', $coverOBJ)) {
- return $coverOBJ->cover->source;
- }
- }
- } catch (Exception $e) {
-
- }
-
- return "";
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserContacts() {
- $apiCall = '?fields=link,name';
- $returnedContacts = array();
- $pagedList = false;
-
- do {
- try {
- $response = $this->api->api('/me/friends' . $apiCall);
- } catch (FacebookApiException $e) {
- throw new Exception("User contacts request failed! {$this->providerId} returned an error {$e->getMessage()}", 0, $e);
- }
-
- // Prepare the next call if paging links have been returned
- if (array_key_exists('paging', $response) && array_key_exists('next', $response['paging'])) {
- $pagedList = true;
- $next_page = explode('friends', $response['paging']['next']);
- $apiCall = $next_page[1];
- } else {
- $pagedList = false;
- }
-
- // Add the new page contacts
- $returnedContacts = array_merge($returnedContacts, $response['data']);
- } while ($pagedList == true);
-
- $contacts = array();
-
- foreach ($returnedContacts as $item) {
-
- $uc = new Hybrid_User_Contact();
- $uc->identifier = (array_key_exists("id", $item)) ? $item["id"] : "";
- $uc->displayName = (array_key_exists("name", $item)) ? $item["name"] : "";
- $uc->profileURL = (array_key_exists("link", $item)) ? $item["link"] : "https://www.facebook.com/profile.php?id=" . $uc->identifier;
- $uc->photoURL = "https://graph.facebook.com/" . $uc->identifier . "/picture?width=150&height=150";
-
- $contacts[] = $uc;
- }
-
- return $contacts;
- }
-
- /**
- * Update user status
- *
- * @param mixed $status An array describing the status, or string
- * @param string $pageid (optional) User page id
- * @return array
- * @throw Exception
- */
- function setUserStatus($status, $pageid = null) {
- if (!is_array($status)) {
- $status = array('message' => $status);
- }
-
- if (is_null($pageid)) {
- $pageid = 'me';
-
- // if post on page, get access_token page
- } else {
- $access_token = null;
- foreach ($this->getUserPages(true) as $p) {
- if (isset($p['id']) && intval($p['id']) == intval($pageid)) {
- $access_token = $p['access_token'];
- break;
- }
- }
-
- if (is_null($access_token)) {
- throw new Exception("Update user page failed, page not found or not writable!");
- }
-
- $status['access_token'] = $access_token;
- }
-
- try {
- $response = $this->api->api('/' . $pageid . '/feed', 'post', $status);
- } catch (FacebookApiException $e) {
- throw new Exception("Update user status failed! {$this->providerId} returned an error {$e->getMessage()}", 0, $e);
- }
-
- return $response;
- }
-
- /**
- * {@inheridoc}
- */
- function getUserStatus($postid) {
- try {
- $postinfo = $this->api->api("/" . $postid);
- } catch (FacebookApiException $e) {
- throw new Exception("Cannot retrieve user status! {$this->providerId} returned an error: {$e->getMessage()}", 0, $e);
- }
-
- return $postinfo;
- }
-
- /**
- * {@inheridoc}
- */
- function getUserPages($writableonly = false) {
- if (( isset($this->config['scope']) && strpos($this->config['scope'], 'manage_pages') === false ) || (!isset($this->config['scope']) && strpos($this->scope, 'manage_pages') === false ))
- throw new Exception("User status requires manage_page permission!");
-
- try {
- $pages = $this->api->api("/me/accounts", 'get');
- } catch (FacebookApiException $e) {
- throw new Exception("Cannot retrieve user pages! {$this->providerId} returned an error: {$e->getMessage()}", 0, $e);
- }
-
- if (!isset($pages['data'])) {
- return array();
- }
-
- if (!$writableonly) {
- return $pages['data'];
- }
-
- $wrpages = array();
- foreach ($pages['data'] as $p) {
- if (isset($p['perms']) && in_array('CREATE_CONTENT', $p['perms'])) {
- $wrpages[] = $p;
- }
- }
-
- return $wrpages;
- }
-
- /**
- * load the user latest activity
- * - timeline : all the stream
- * - me : the user activity only
- * {@inheritdoc}
- */
- function getUserActivity($stream) {
- try {
- if ($stream == "me") {
- $response = $this->api->api('/me/feed');
- } else {
- $response = $this->api->api('/me/home');
- }
- } catch (FacebookApiException $e) {
- throw new Exception("User activity stream request failed! {$this->providerId} returned an error: {$e->getMessage()}", 0, $e);
- }
-
- if (!$response || !count($response['data'])) {
- return array();
- }
-
- $activities = array();
-
- foreach ($response['data'] as $item) {
- if ($stream == "me" && $item["from"]["id"] != $this->api->getUser()) {
- continue;
- }
-
- $ua = new Hybrid_User_Activity();
-
- $ua->id = (array_key_exists("id", $item)) ? $item["id"] : "";
- $ua->date = (array_key_exists("created_time", $item)) ? strtotime($item["created_time"]) : "";
-
- if ($item["type"] == "video") {
- $ua->text = (array_key_exists("link", $item)) ? $item["link"] : "";
- }
-
- if ($item["type"] == "link") {
- $ua->text = (array_key_exists("link", $item)) ? $item["link"] : "";
- }
-
- if (empty($ua->text) && isset($item["story"])) {
- $ua->text = (array_key_exists("link", $item)) ? $item["link"] : "";
- }
-
- if (empty($ua->text) && isset($item["message"])) {
- $ua->text = (array_key_exists("message", $item)) ? $item["message"] : "";
- }
-
- if (!empty($ua->text)) {
- $ua->user->identifier = (array_key_exists("id", $item["from"])) ? $item["from"]["id"] : "";
- $ua->user->displayName = (array_key_exists("name", $item["from"])) ? $item["from"]["name"] : "";
- $ua->user->profileURL = "https://www.facebook.com/profile.php?id=" . $ua->user->identifier;
- $ua->user->photoURL = "https://graph.facebook.com/" . $ua->user->identifier . "/picture?type=square";
-
- $activities[] = $ua;
- }
- }
-
- return $activities;
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Providers/Foursquare.php b/milfs/librerias/hybridauth/Hybrid/Providers/Foursquare.php
deleted file mode 100644
index cfbe657..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Providers/Foursquare.php
+++ /dev/null
@@ -1,121 +0,0 @@
- array (
- * "enabled" => true,
- * "keys" => ...,
- * "params" => array( "photo_size" => "16x16" )
- * ),
- * ...
- * - list of valid photo_size values is described here https://developer.foursquare.com/docs/responses/photo.html
- * - default photo_size is 100x100
- */
-class Hybrid_Providers_Foursquare extends Hybrid_Provider_Model_OAuth2 {
-
- private static $apiVersion = array("v" => "20120610");
- private static $defPhotoSize = "100x100";
-
- /**
- * {@inheritdoc}
- */
- function initialize() {
- parent::initialize();
-
- // Provider apis end-points
- $this->api->api_base_url = "https://api.foursquare.com/v2/";
- $this->api->authorize_url = "https://foursquare.com/oauth2/authenticate";
- $this->api->token_url = "https://foursquare.com/oauth2/access_token";
-
- $this->api->sign_token_name = "oauth_token";
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserProfile() {
- $data = $this->api->api("users/self", "GET", Hybrid_Providers_Foursquare::$apiVersion);
-
- if (!isset($data->response->user->id)) {
- throw new Exception("User profile request failed! {$this->providerId} returned an invalid response:" . Hybrid_Logger::dumpData( $data ), 6);
- }
-
- $data = $data->response->user;
-
- $this->user->profile->identifier = $data->id;
- $this->user->profile->firstName = $data->firstName;
- $this->user->profile->lastName = $data->lastName;
- $this->user->profile->displayName = $this->buildDisplayName($this->user->profile->firstName, $this->user->profile->lastName);
- $this->user->profile->photoURL = $this->buildPhotoURL($data->photo->prefix, $data->photo->suffix);
- $this->user->profile->profileURL = "https://www.foursquare.com/user/" . $data->id;
- $this->user->profile->gender = $data->gender;
- $this->user->profile->city = $data->homeCity;
- $this->user->profile->email = $data->contact->email;
- $this->user->profile->emailVerified = $data->contact->email;
-
- return $this->user->profile;
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserContacts() {
- // refresh tokens if needed
- $this->refreshToken();
-
- //
- $response = array();
- $contacts = array();
- try {
- $response = $this->api->api("users/self/friends", "GET", Hybrid_Providers_Foursquare::$apiVersion);
- } catch (LinkedInException $e) {
- throw new Exception("User contacts request failed! {$this->providerId} returned an error: {$e->getMessage()}", 0, $e);
- }
-
- if (isset($response) && $response->meta->code == 200) {
- foreach ($response->response->friends->items as $contact) {
- $uc = new Hybrid_User_Contact();
- //
- $uc->identifier = $contact->id;
- //$uc->profileURL = ;
- //$uc->webSiteURL = ;
- $uc->photoURL = $this->buildPhotoURL($contact->photo->prefix, $contact->photo->suffix);
- $uc->displayName = $this->buildDisplayName((isset($contact->firstName) ? ($contact->firstName) : ("")), (isset($contact->lastName) ? ($contact->lastName) : ("")));
- //$uc->description = ;
- $uc->email = (isset($contact->contact->email) ? ($contact->contact->email) : (""));
- //
- $contacts[] = $uc;
- }
- }
- return $contacts;
- }
-
- /**
- * {@inheritdoc}
- */
- private function buildDisplayName($firstName, $lastName) {
- return trim($firstName . " " . $lastName);
- }
-
- private function buildPhotoURL($prefix, $suffix) {
- if (isset($prefix) && isset($suffix)) {
- return $prefix . ((isset($this->config["params"]["photo_size"])) ? ($this->config["params"]["photo_size"]) : (Hybrid_Providers_Foursquare::$defPhotoSize)) . $suffix;
- }
- return ("");
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Providers/Google.php b/milfs/librerias/hybridauth/Hybrid/Providers/Google.php
deleted file mode 100644
index dd01270..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Providers/Google.php
+++ /dev/null
@@ -1,297 +0,0 @@
- more infos on google APIs: http://developer.google.com (official site)
- * or here: http://discovery-check.appspot.com/ (unofficial but up to date)
- * default permissions
- * {@inheritdoc}
- */
- public $scope = "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read https://www.google.com/m8/feeds/";
-
- /**
- * {@inheritdoc}
- */
- function initialize() {
- parent::initialize();
-
- // Provider api end-points
- $this->api->authorize_url = "https://accounts.google.com/o/oauth2/auth";
- $this->api->token_url = "https://accounts.google.com/o/oauth2/token";
- $this->api->token_info_url = "https://www.googleapis.com/oauth2/v2/tokeninfo";
-
- // Google POST methods require an access_token in the header
- $this->api->curl_header = array("Authorization: OAuth " . $this->api->access_token);
-
- // Override the redirect uri when it's set in the config parameters. This way we prevent
- // redirect uri mismatches when authenticating with Google.
- if (isset($this->config['redirect_uri']) && !empty($this->config['redirect_uri'])) {
- $this->api->redirect_uri = $this->config['redirect_uri'];
- }
- }
-
- /**
- * {@inheritdoc}
- */
- function loginBegin() {
- $parameters = array("scope" => $this->scope, "access_type" => "offline");
- $optionals = array("scope", "access_type", "redirect_uri", "approval_prompt", "hd", "state");
-
- foreach ($optionals as $parameter) {
- if (isset($this->config[$parameter]) && !empty($this->config[$parameter])) {
- $parameters[$parameter] = $this->config[$parameter];
- }
- if (isset($this->config["scope"]) && !empty($this->config["scope"])) {
- $this->scope = $this->config["scope"];
- }
- }
-
- if (isset($this->config['force']) && $this->config['force'] === true) {
- $parameters['approval_prompt'] = 'force';
- }
-
- Hybrid_Auth::redirect($this->api->authorizeUrl($parameters));
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserProfile() {
- // refresh tokens if needed
- $this->refreshToken();
-
- // ask google api for user infos
- if (strpos($this->scope, '/auth/plus.profile.emails.read') !== false) {
- $verified = $this->api->api("https://www.googleapis.com/plus/v1/people/me");
-
- if (!isset($verified->id) || isset($verified->error))
- $verified = new stdClass();
- } else {
- $verified = $this->api->api("https://www.googleapis.com/plus/v1/people/me/openIdConnect");
-
- if (!isset($verified->sub) || isset($verified->error))
- $verified = new stdClass();
- }
-
- $response = $this->api->api("https://www.googleapis.com/plus/v1/people/me");
- if (!isset($response->id) || isset($response->error)) {
- throw new Exception("User profile request failed! {$this->providerId} returned an invalid response:" . Hybrid_Logger::dumpData( $response ), 6);
- }
-
- $this->user->profile->identifier = (property_exists($verified, 'id')) ? $verified->id : ((property_exists($response, 'id')) ? $response->id : "");
- $this->user->profile->firstName = (property_exists($response, 'name')) ? $response->name->givenName : "";
- $this->user->profile->lastName = (property_exists($response, 'name')) ? $response->name->familyName : "";
- $this->user->profile->displayName = (property_exists($response, 'displayName')) ? $response->displayName : "";
- $this->user->profile->photoURL = (property_exists($response, 'image')) ? ((property_exists($response->image, 'url')) ? substr($response->image->url, 0, -2) . "200" : '') : '';
- $this->user->profile->profileURL = (property_exists($response, 'url')) ? $response->url : "";
- $this->user->profile->description = (property_exists($response, 'aboutMe')) ? $response->aboutMe : "";
- $this->user->profile->gender = (property_exists($response, 'gender')) ? $response->gender : "";
- $this->user->profile->language = (property_exists($response, 'locale')) ? $response->locale : ((property_exists($verified, 'locale')) ? $verified->locale : "");
- $this->user->profile->email = (property_exists($response, 'email')) ? $response->email : ((property_exists($verified, 'email')) ? $verified->email : "");
- $this->user->profile->emailVerified = (property_exists($verified, 'email')) ? $verified->email : "";
- if (property_exists($response, 'emails')) {
- if (count($response->emails) == 1) {
- $this->user->profile->email = $response->emails[0]->value;
- } else {
- foreach ($response->emails as $email) {
- if ($email->type == 'account') {
- $this->user->profile->email = $email->value;
- break;
- }
- }
- }
- if (property_exists($verified, 'emails')) {
- if (count($verified->emails) == 1) {
- $this->user->profile->emailVerified = $verified->emails[0]->value;
- } else {
- foreach ($verified->emails as $email) {
- if ($email->type == 'account') {
- $this->user->profile->emailVerified = $email->value;
- break;
- }
- }
- }
- }
- }
- $this->user->profile->phone = (property_exists($response, 'phone')) ? $response->phone : "";
- $this->user->profile->country = (property_exists($response, 'country')) ? $response->country : "";
- $this->user->profile->region = (property_exists($response, 'region')) ? $response->region : "";
- $this->user->profile->zip = (property_exists($response, 'zip')) ? $response->zip : "";
- if (property_exists($response, 'placesLived')) {
- $this->user->profile->city = "";
- $this->user->profile->address = "";
- foreach ($response->placesLived as $c) {
- if (property_exists($c, 'primary')) {
- if ($c->primary == true) {
- $this->user->profile->address = $c->value;
- $this->user->profile->city = $c->value;
- break;
- }
- } else {
- if (property_exists($c, 'value')) {
- $this->user->profile->address = $c->value;
- $this->user->profile->city = $c->value;
- }
- }
- }
- }
-
- // google API returns multiple urls, but a "website" only if it is verified
- // see http://support.google.com/plus/answer/1713826?hl=en
- if (property_exists($response, 'urls')) {
- foreach ($response->urls as $u) {
- if (property_exists($u, 'primary') && $u->primary == true)
- $this->user->profile->webSiteURL = $u->value;
- }
- } else {
- $this->user->profile->webSiteURL = '';
- }
- // google API returns age ranges or min. age only (with plus.login scope)
- if (property_exists($response, 'ageRange')) {
- if (property_exists($response->ageRange, 'min') && property_exists($response->ageRange, 'max')) {
- $this->user->profile->age = $response->ageRange->min . ' - ' . $response->ageRange->max;
- } else {
- $this->user->profile->age = '> ' . $response->ageRange->min;
- }
- } else {
- $this->user->profile->age = '';
- }
- // google API returns birthdays only if a user set 'show in my account'
- if (property_exists($response, 'birthday')) {
- list($birthday_year, $birthday_month, $birthday_day) = explode('-', $response->birthday);
-
- $this->user->profile->birthDay = (int) $birthday_day;
- $this->user->profile->birthMonth = (int) $birthday_month;
- $this->user->profile->birthYear = (int) $birthday_year;
- } else {
- $this->user->profile->birthDay = 0;
- $this->user->profile->birthMonth = 0;
- $this->user->profile->birthYear = 0;
- }
-
- return $this->user->profile;
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserContacts() {
- // refresh tokens if needed
- $this->refreshToken();
-
- $contacts = array();
- if (!isset($this->config['contacts_param'])) {
- $this->config['contacts_param'] = array("max-results" => 500);
- }
-
- // Google Gmail and Android contacts
- if (strpos($this->scope, '/m8/feeds/') !== false) {
-
- $response = $this->api->api("https://www.google.com/m8/feeds/contacts/default/full?"
- . http_build_query(array_merge(array('alt' => 'json', 'v' => '3.0'), $this->config['contacts_param'])));
-
- if (!$response) {
- return array();
- }
-
- if (isset($response->feed->entry)) {
- foreach ($response->feed->entry as $idx => $entry) {
- $uc = new Hybrid_User_Contact();
- $uc->email = isset($entry->{'gd$email'}[0]->address) ? (string) $entry->{'gd$email'}[0]->address : '';
- $uc->displayName = isset($entry->title->{'$t'}) ? (string) $entry->title->{'$t'} : '';
- $uc->identifier = ($uc->email != '') ? $uc->email : '';
- $uc->description = '';
- if (property_exists($entry, 'link')) {
- /**
- * sign links with access_token
- */
- if (is_array($entry->link)) {
- foreach ($entry->link as $l) {
- if (property_exists($l, 'gd$etag') && $l->type == "image/*") {
- $uc->photoURL = $this->addUrlParam($l->href, array('access_token' => $this->api->access_token));
- } else if ($l->type == "self") {
- $uc->profileURL = $this->addUrlParam($l->href, array('access_token' => $this->api->access_token));
- }
- }
- }
- } else {
- $uc->profileURL = '';
- }
- if (property_exists($response, 'website')) {
- if (is_array($response->website)) {
- foreach ($response->website as $w) {
- if ($w->primary == true)
- $uc->webSiteURL = $w->value;
- }
- } else {
- $uc->webSiteURL = $response->website->value;
- }
- } else {
- $uc->webSiteURL = '';
- }
-
- $contacts[] = $uc;
- }
- }
- }
-
- // Google social contacts
- if (strpos($this->scope, '/auth/plus.login') !== false) {
-
- $response = $this->api->api("https://www.googleapis.com/plus/v1/people/me/people/visible?"
- . http_build_query($this->config['contacts_param']));
-
- if (!$response) {
- return array();
- }
-
- foreach ($response->items as $idx => $item) {
- $uc = new Hybrid_User_Contact();
- $uc->email = (property_exists($item, 'email')) ? $item->email : '';
- $uc->displayName = (property_exists($item, 'displayName')) ? $item->displayName : '';
- $uc->identifier = (property_exists($item, 'id')) ? $item->id : '';
-
- $uc->description = (property_exists($item, 'objectType')) ? $item->objectType : '';
- $uc->photoURL = (property_exists($item, 'image')) ? ((property_exists($item->image, 'url')) ? $item->image->url : '') : '';
- $uc->profileURL = (property_exists($item, 'url')) ? $item->url : '';
- $uc->webSiteURL = '';
-
- $contacts[] = $uc;
- }
- }
-
- return $contacts;
- }
-
- /**
- * Add query parameters to the $url
- *
- * @param string $url URL
- * @param array $params Parameters to add
- * @return string
- */
- function addUrlParam($url, array $params) {
- $query = parse_url($url, PHP_URL_QUERY);
-
- // Returns the URL string with new parameters
- if ($query) {
- $url .= '&' . http_build_query($params);
- } else {
- $url .= '?' . http_build_query($params);
- }
- return $url;
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Providers/LinkedIn.php b/milfs/librerias/hybridauth/Hybrid/Providers/LinkedIn.php
deleted file mode 100644
index 73467ed..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Providers/LinkedIn.php
+++ /dev/null
@@ -1,257 +0,0 @@
-config["keys"]["key"] || !$this->config["keys"]["secret"]) {
- throw new Exception("Your application key and secret are required in order to connect to {$this->providerId}.", 4);
- }
- if (!class_exists('OAuthConsumer', false)) {
- require_once Hybrid_Auth::$config["path_libraries"] . "OAuth/OAuth.php";
- }
- require_once Hybrid_Auth::$config["path_libraries"] . "LinkedIn/LinkedIn.php";
-
- $this->api = new LinkedIn(array('appKey' => $this->config["keys"]["key"], 'appSecret' => $this->config["keys"]["secret"], 'callbackUrl' => $this->endpoint));
-
- if ($this->token("access_token_linkedin")) {
- $this->api->setTokenAccess($this->token("access_token_linkedin"));
- }
- }
-
- /**
- * {@inheritdoc}
- */
- function loginBegin() {
- // send a request for a LinkedIn access token
- $response = $this->api->retrieveTokenRequest();
-
- if (isset($response['success']) && $response['success'] === true) {
- $this->token("oauth_token", $response['linkedin']['oauth_token']);
- $this->token("oauth_token_secret", $response['linkedin']['oauth_token_secret']);
-
- # redirect user to LinkedIn authorisation web page
- Hybrid_Auth::redirect(LINKEDIN::_URL_AUTH . $response['linkedin']['oauth_token']);
- } else {
- throw new Exception("Authentication failed! {$this->providerId} returned an invalid Token in response: " . Hybrid_Logger::dumpData( $response ), 5);
- }
- }
-
- /**
- * {@inheritdoc}
- */
- function loginFinish() {
- // in case we get oauth_problem=user_refused
- if (isset($_REQUEST['oauth_problem']) && $_REQUEST['oauth_problem'] == "user_refused") {
- throw new Exception("Authentication failed! The user denied your request.", 5);
- }
-
- $oauth_token = isset($_REQUEST['oauth_token']) ? $_REQUEST['oauth_token'] : null;
- $oauth_verifier = isset($_REQUEST['oauth_verifier']) ? $_REQUEST['oauth_verifier'] : null;
-
- if (!$oauth_token || !$oauth_verifier) {
- throw new Exception("Authentication failed! {$this->providerId} returned an invalid Token.", 5);
- }
-
- $response = $this->api->retrieveTokenAccess($oauth_token, $this->token("oauth_token_secret"), $oauth_verifier);
-
- if (isset($response['success']) && $response['success'] === true) {
- $this->deleteToken("oauth_token");
- $this->deleteToken("oauth_token_secret");
-
- $this->token("access_token_linkedin", $response['linkedin']);
- $this->token("access_token", $response['linkedin']['oauth_token']);
- $this->token("access_token_secret", $response['linkedin']['oauth_token_secret']);
-
- // set user as logged in
- $this->setUserConnected();
- } else {
- throw new Exception("Authentication failed! {$this->providerId} returned an invalid Token in response: " . Hybrid_Logger::dumpData( $response ), 5);
- }
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserProfile() {
- try {
- // http://developer.linkedin.com/docs/DOC-1061
- $response = $this->api->profile('~:(id,first-name,last-name,public-profile-url,picture-url,email-address,date-of-birth,phone-numbers,summary)');
- } catch (LinkedInException $e) {
- throw new Exception("User profile request failed! {$this->providerId} returned an error: {$e->getMessage()}", 6, $e);
- }
-
- if (isset($response['success']) && $response['success'] === true) {
- $data = @ new SimpleXMLElement($response['linkedin']);
-
- if (!is_object($data)) {
- throw new Exception("User profile request failed! {$this->providerId} returned an invalid xml data: " . Hybrid_Logger::dumpData( $data ), 6);
- }
-
- $this->user->profile->identifier = (string) $data->{'id'};
- $this->user->profile->firstName = (string) $data->{'first-name'};
- $this->user->profile->lastName = (string) $data->{'last-name'};
- $this->user->profile->displayName = trim($this->user->profile->firstName . " " . $this->user->profile->lastName);
-
- $this->user->profile->email = (string) $data->{'email-address'};
- $this->user->profile->emailVerified = (string) $data->{'email-address'};
-
- $this->user->profile->photoURL = (string) $data->{'picture-url'};
- $this->user->profile->profileURL = (string) $data->{'public-profile-url'};
- $this->user->profile->description = (string) $data->{'summary'};
-
- if ($data->{'phone-numbers'} && $data->{'phone-numbers'}->{'phone-number'}) {
- $this->user->profile->phone = (string) $data->{'phone-numbers'}->{'phone-number'}->{'phone-number'};
- } else {
- $this->user->profile->phone = null;
- }
-
- if ($data->{'date-of-birth'}) {
- $this->user->profile->birthDay = (string) $data->{'date-of-birth'}->day;
- $this->user->profile->birthMonth = (string) $data->{'date-of-birth'}->month;
- $this->user->profile->birthYear = (string) $data->{'date-of-birth'}->year;
- }
-
- return $this->user->profile;
- } else {
- throw new Exception("User profile request failed! {$this->providerId} returned an invalid response: " . Hybrid_Logger::dumpData( $response ), 6);
- }
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserContacts() {
- try {
- $response = $this->api->profile('~/connections:(id,first-name,last-name,picture-url,public-profile-url,summary)');
- } catch (LinkedInException $e) {
- throw new Exception("User contacts request failed! {$this->providerId} returned an error: {$e->getMessage()}", 0, $e);
- }
-
- if (!$response || !$response['success']) {
- return array();
- }
-
- $connections = new SimpleXMLElement($response['linkedin']);
-
- $contacts = array();
-
- foreach ($connections->person as $connection) {
- $uc = new Hybrid_User_Contact();
-
- $uc->identifier = (string) $connection->id;
- $uc->displayName = (string) $connection->{'last-name'} . " " . $connection->{'first-name'};
- $uc->profileURL = (string) $connection->{'public-profile-url'};
- $uc->photoURL = (string) $connection->{'picture-url'};
- $uc->description = (string) $connection->{'summary'};
-
- $contacts[] = $uc;
- }
-
- return $contacts;
- }
-
- /**
- * {@inheritdoc}
- */
- function setUserStatus($status) {
- $parameters = array();
- $private = true; // share with your connections only
-
- if (is_array($status)) {
- if (isset($status[0]) && !empty($status[0]))
- $parameters["title"] = $status[0]; // post title
- if (isset($status[1]) && !empty($status[1]))
- $parameters["comment"] = $status[1]; // post comment
- if (isset($status[2]) && !empty($status[2]))
- $parameters["submitted-url"] = $status[2]; // post url
- if (isset($status[3]) && !empty($status[3]))
- $parameters["submitted-image-url"] = $status[3]; // post picture url
- if (isset($status[4]) && !empty($status[4]))
- $private = $status[4]; // true or false
- }
- else {
- $parameters["comment"] = $status;
- }
-
- try {
- $response = $this->api->share('new', $parameters, $private);
- } catch (LinkedInException $e) {
- throw new Exception("Update user status update failed! {$this->providerId} returned an error: {$e->getMessage()}", 0, $e);
- }
-
- if (!$response || !$response['success']) {
- throw new Exception("Update user status update failed! {$this->providerId} returned an error in response: " . Hybrid_Logger::dumpData( $response ));
- }
-
- return $response;
- }
-
- /**
- * load the user latest activity
- * - timeline : all the stream
- * - me : the user activity only
- * {@inheritdoc}
- */
- function getUserActivity($stream) {
- try {
- if ($stream == "me") {
- $response = $this->api->updates('?type=SHAR&scope=self&count=25');
- } else {
- $response = $this->api->updates('?type=SHAR&count=25');
- }
- } catch (LinkedInException $e) {
- throw new Exception("User activity stream request failed! {$this->providerId} returned an error: {$e->getMessage()}", 0, $e);
- }
-
- if (!$response || !$response['success']) {
- return array();
- }
-
- $updates = new SimpleXMLElement($response['linkedin']);
-
- $activities = array();
-
- foreach ($updates->update as $update) {
- $person = $update->{'update-content'}->person;
- $share = $update->{'update-content'}->person->{'current-share'};
-
- $ua = new Hybrid_User_Activity();
-
- $ua->id = (string) $update->id;
- $ua->date = (string) $update->timestamp;
- $ua->text = (string) $share->{'comment'};
-
- $ua->user->identifier = (string) $person->id;
- $ua->user->displayName = (string) $person->{'first-name'} . ' ' . $person->{'last-name'};
- $ua->user->profileURL = (string) $person->{'site-standard-profile-request'}->url;
- $ua->user->photoURL = null;
-
- $activities[] = $ua;
- }
-
- return $activities;
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Providers/Live.php b/milfs/librerias/hybridauth/Hybrid/Providers/Live.php
deleted file mode 100644
index 8468a20..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Providers/Live.php
+++ /dev/null
@@ -1,102 +0,0 @@
-
- * @version 0.2
- * @license BSD License
- */
-
-/**
- * Hybrid_Providers_Live - Windows Live provider adapter based on OAuth2 protocol
- */
-class Hybrid_Providers_Live extends Hybrid_Provider_Model_OAuth2 {
-
- /**
- * {@inheritdoc}
- */
- public $scope = "wl.basic wl.contacts_emails wl.emails wl.signin wl.share wl.birthday";
-
- /**
- * {@inheritdoc}
- */
- function initialize() {
- parent::initialize();
-
- // Provider api end-points
- $this->api->api_base_url = 'https://apis.live.net/v5.0/';
- $this->api->authorize_url = 'https://login.live.com/oauth20_authorize.srf';
- $this->api->token_url = 'https://login.live.com/oauth20_token.srf';
-
- $this->api->curl_authenticate_method = "GET";
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserProfile() {
- $data = $this->api->get("me");
-
- if (!isset($data->id)) {
- throw new Exception("User profile request failed! {$this->providerId} returned an invalid response: " . Hybrid_Logger::dumpData( $data ), 6);
- }
-
- $this->user->profile->identifier = (property_exists($data, 'id')) ? $data->id : "";
- $this->user->profile->firstName = (property_exists($data, 'first_name')) ? $data->first_name : "";
- $this->user->profile->lastName = (property_exists($data, 'last_name')) ? $data->last_name : "";
- $this->user->profile->displayName = (property_exists($data, 'name')) ? trim($data->name) : "";
- $this->user->profile->gender = (property_exists($data, 'gender')) ? $data->gender : "";
-
- //wl.basic
- $this->user->profile->profileURL = (property_exists($data, 'link')) ? $data->link : "";
-
- //wl.emails
- $this->user->profile->email = (property_exists($data, 'emails')) ? $data->emails->account : "";
- $this->user->profile->emailVerified = (property_exists($data, 'emails')) ? $data->emails->account : "";
-
- //wl.birthday
- $this->user->profile->birthDay = (property_exists($data, 'birth_day')) ? $data->birth_day : "";
- $this->user->profile->birthMonth = (property_exists($data, 'birth_month')) ? $data->birth_month : "";
- $this->user->profile->birthYear = (property_exists($data, 'birth_year')) ? $data->birth_year : "";
-
- return $this->user->profile;
- }
-
- /**
- * Windows Live api does not support retrieval of email addresses (only hashes :/)
- * {@inheritdoc}
- */
- function getUserContacts() {
- $response = $this->api->get('me/contacts');
-
- if ($this->api->http_code != 200) {
- throw new Exception('User contacts request failed! ' . $this->providerId . ' returned an error: ' . $this->errorMessageByStatus($this->api->http_code));
- }
-
- if (!isset($response->data) || ( isset($response->errcode) && $response->errcode != 0 )) {
- return array();
- }
-
- $contacts = array();
-
- foreach ($response->data as $item) {
- $uc = new Hybrid_User_Contact();
-
- $uc->identifier = (property_exists($item, 'id')) ? $item->id : "";
- $uc->displayName = (property_exists($item, 'name')) ? $item->name : "";
- $uc->email = (property_exists($item, 'emails')) ? $item->emails->preferred : "";
- $contacts[] = $uc;
- }
-
- return $contacts;
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Providers/OpenID.php b/milfs/librerias/hybridauth/Hybrid/Providers/OpenID.php
deleted file mode 100644
index 8f7903c..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Providers/OpenID.php
+++ /dev/null
@@ -1,16 +0,0 @@
-api->api_base_url = "https://api.twitter.com/1.1/";
- $this->api->authorize_url = "https://api.twitter.com/oauth/authenticate";
- $this->api->request_token_url = "https://api.twitter.com/oauth/request_token";
- $this->api->access_token_url = "https://api.twitter.com/oauth/access_token";
-
- if (isset($this->config['api_version']) && $this->config['api_version']) {
- $this->api->api_base_url = "https://api.twitter.com/{$this->config['api_version']}/";
- }
-
- if (isset($this->config['authorize']) && $this->config['authorize']) {
- $this->api->authorize_url = "https://api.twitter.com/oauth/authorize";
- }
-
- $this->api->curl_auth_header = false;
- }
-
- /**
- * {@inheritdoc}
- */
- function loginBegin() {
- // Initiate the Reverse Auth flow; cf. https://dev.twitter.com/docs/ios/using-reverse-auth
- if (isset($_REQUEST['reverse_auth']) && ($_REQUEST['reverse_auth'] == 'yes')) {
- $stage1 = $this->api->signedRequest($this->api->request_token_url, 'POST', array('x_auth_mode' => 'reverse_auth'));
- if ($this->api->http_code != 200) {
- throw new Exception("Authentication failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code), 5);
- }
- $responseObj = array('x_reverse_auth_parameters' => $stage1, 'x_reverse_auth_target' => $this->config["keys"]["key"]);
- $response = json_encode($responseObj);
- header("Content-Type: application/json", true, 200);
- echo $response;
- die();
- }
- $tokens = $this->api->requestToken($this->endpoint);
-
- // request tokens as received from provider
- $this->request_tokens_raw = $tokens;
-
- // check the last HTTP status code returned
- if ($this->api->http_code != 200) {
- throw new Exception("Authentication failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code), 5);
- }
-
- if (!isset($tokens["oauth_token"])) {
- throw new Exception("Authentication failed! {$this->providerId} returned an invalid oauth token.", 5);
- }
-
- $this->token("request_token", $tokens["oauth_token"]);
- $this->token("request_token_secret", $tokens["oauth_token_secret"]);
-
- // redirect the user to the provider authentication url with force_login
- if (( isset($this->config['force_login']) && $this->config['force_login'] ) || ( isset($this->config['force']) && $this->config['force'] === true )) {
- Hybrid_Auth::redirect($this->api->authorizeUrl($tokens, array('force_login' => true)));
- }
-
- // else, redirect the user to the provider authentication url
- Hybrid_Auth::redirect($this->api->authorizeUrl($tokens));
- }
-
- /**
- * {@inheritdoc}
- */
- function loginFinish() {
- // in case we are completing a Reverse Auth flow; cf. https://dev.twitter.com/docs/ios/using-reverse-auth
- if (isset($_REQUEST['oauth_token_secret'])) {
- $tokens = $_REQUEST;
- $this->access_tokens_raw = $tokens;
-
- // we should have an access_token unless something has gone wrong
- if (!isset($tokens["oauth_token"])) {
- throw new Exception("Authentication failed! {$this->providerId} returned an invalid access token.", 5);
- }
-
- // Get rid of tokens we don't need
- $this->deleteToken("request_token");
- $this->deleteToken("request_token_secret");
-
- // Store access_token and secret for later use
- $this->token("access_token", $tokens['oauth_token']);
- $this->token("access_token_secret", $tokens['oauth_token_secret']);
-
- // set user as logged in to the current provider
- $this->setUserConnected();
- return;
- }
- parent::loginFinish();
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserProfile() {
- $includeEmail = isset($this->config['includeEmail']) ? (bool) $this->config['includeEmail'] : false;
- $response = $this->api->get('account/verify_credentials.json'. ($includeEmail ? '?include_email=true' : ''));
-
- // check the last HTTP status code returned
- if ($this->api->http_code != 200) {
- throw new Exception("User profile request failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code), 6);
- }
-
- if (!is_object($response) || !isset($response->id)) {
- throw new Exception("User profile request failed! {$this->providerId} api returned an invalid response: " . Hybrid_Logger::dumpData( $response ), 6);
- }
-
- # store the user profile.
- $this->user->profile->identifier = (property_exists($response, 'id')) ? $response->id : "";
- $this->user->profile->displayName = (property_exists($response, 'screen_name')) ? $response->screen_name : "";
- $this->user->profile->description = (property_exists($response, 'description')) ? $response->description : "";
- $this->user->profile->firstName = (property_exists($response, 'name')) ? $response->name : "";
- $this->user->profile->photoURL = (property_exists($response, 'profile_image_url')) ? (str_replace('_normal', '', $response->profile_image_url)) : "";
- $this->user->profile->profileURL = (property_exists($response, 'screen_name')) ? ("http://twitter.com/" . $response->screen_name) : "";
- $this->user->profile->webSiteURL = (property_exists($response, 'url')) ? $response->url : "";
- $this->user->profile->region = (property_exists($response, 'location')) ? $response->location : "";
- if($includeEmail) $this->user->profile->email = (property_exists($response, 'email')) ? $response->email : "";
-
- return $this->user->profile;
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserContacts() {
- $parameters = array('cursor' => '-1');
- $response = $this->api->get('friends/ids.json', $parameters);
-
- // check the last HTTP status code returned
- if ($this->api->http_code != 200) {
- throw new Exception("User contacts request failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code));
- }
-
- if (!$response || !count($response->ids)) {
- return array();
- }
-
- // 75 id per time should be okey
- $contactsids = array_chunk($response->ids, 75);
-
- $contacts = array();
-
- foreach ($contactsids as $chunk) {
- $parameters = array('user_id' => implode(",", $chunk));
- $response = $this->api->get('users/lookup.json', $parameters);
-
- // check the last HTTP status code returned
- if ($this->api->http_code != 200) {
- throw new Exception("User contacts request failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code));
- }
-
- if ($response && count($response)) {
- foreach ($response as $item) {
- $uc = new Hybrid_User_Contact();
-
- $uc->identifier = (property_exists($item, 'id')) ? $item->id : "";
- $uc->displayName = (property_exists($item, 'name')) ? $item->name : "";
- $uc->profileURL = (property_exists($item, 'screen_name')) ? ("http://twitter.com/" . $item->screen_name) : "";
- $uc->photoURL = (property_exists($item, 'profile_image_url')) ? $item->profile_image_url : "";
- $uc->description = (property_exists($item, 'description')) ? $item->description : "";
-
- $contacts[] = $uc;
- }
- }
- }
-
- return $contacts;
- }
-
- /**
- * {@inheritdoc}
- */
- function setUserStatus($status) {
-
- if (is_array($status) && isset($status['message']) && isset($status['picture'])) {
- $response = $this->api->post('statuses/update_with_media.json', array('status' => $status['message'], 'media[]' => file_get_contents($status['picture'])), null, null, true);
- } else {
- $response = $this->api->post('statuses/update.json', array('status' => $status));
- }
-
- // check the last HTTP status code returned
- if ($this->api->http_code != 200) {
- throw new Exception("Update user status failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code));
- }
-
- return $response;
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserStatus($tweetid) {
- $info = $this->api->get('statuses/show.json?id=' . $tweetid . '&include_entities=true');
-
- // check the last HTTP status code returned
- if ($this->api->http_code != 200 || !isset($info->id)) {
- throw new Exception("Cannot retrieve user status! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code));
- }
-
- return $info;
- }
-
- /**
- * load the user latest activity
- * - timeline : all the stream
- * - me : the user activity only
- *
- * by default return the timeline
- * {@inheritdoc}
- */
- function getUserActivity($stream) {
- if ($stream == "me") {
- $response = $this->api->get('statuses/user_timeline.json');
- } else {
- $response = $this->api->get('statuses/home_timeline.json');
- }
-
- // check the last HTTP status code returned
- if ($this->api->http_code != 200) {
- throw new Exception("User activity stream request failed! {$this->providerId} returned an error. " . $this->errorMessageByStatus($this->api->http_code));
- }
-
- if (!$response) {
- return array();
- }
-
- $activities = array();
-
- foreach ($response as $item) {
- $ua = new Hybrid_User_Activity();
-
- $ua->id = (property_exists($item, 'id')) ? $item->id : "";
- $ua->date = (property_exists($item, 'created_at')) ? strtotime($item->created_at) : "";
- $ua->text = (property_exists($item, 'text')) ? $item->text : "";
-
- $ua->user->identifier = (property_exists($item->user, 'id')) ? $item->user->id : "";
- $ua->user->displayName = (property_exists($item->user, 'name')) ? $item->user->name : "";
- $ua->user->profileURL = (property_exists($item->user, 'screen_name')) ? ("http://twitter.com/" . $item->user->screen_name) : "";
- $ua->user->photoURL = (property_exists($item->user, 'profile_image_url')) ? $item->user->profile_image_url : "";
-
- $activities[] = $ua;
- }
-
- return $activities;
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Providers/Yahoo.php b/milfs/librerias/hybridauth/Hybrid/Providers/Yahoo.php
deleted file mode 100644
index 35911c2..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Providers/Yahoo.php
+++ /dev/null
@@ -1,276 +0,0 @@
-
- * @version 0.2
- * @license BSD License
- */
-
-/**
- * Hybrid_Providers_Yahoo - Yahoo provider adapter based on OAuth1 protocol
- */
-class Hybrid_Providers_Yahoo extends Hybrid_Provider_Model_OAuth1 {
-
- /**
- * {@inheritdoc}
- */
- function initialize() {
- parent::initialize();
-
- // Provider api end-points
- $this->api->api_base_url = 'https://social.yahooapis.com/v1/';
- $this->api->authorize_url = 'https://api.login.yahoo.com/oauth/v2/request_auth';
- $this->api->request_token_url = 'https://api.login.yahoo.com/oauth/v2/get_request_token';
- $this->api->access_token_url = 'https://api.login.yahoo.com/oauth/v2/get_token';
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserProfile() {
- $userId = $this->getCurrentUserId();
-
- $parameters = array();
- $parameters['format'] = 'json';
-
- $response = $this->api->get('user/' . $userId . '/profile', $parameters);
-
- if (!isset($response->profile)) {
- throw new Exception("User profile request failed! {$this->providerId} returned an invalid response: " . Hybrid_Logger::dumpData( $response ), 6);
- }
-
- $data = $response->profile;
-
- $this->user->profile->identifier = (property_exists($data, 'guid')) ? $data->guid : "";
- $this->user->profile->firstName = (property_exists($data, 'givenName')) ? $data->givenName : "";
- $this->user->profile->lastName = (property_exists($data, 'familyName')) ? $data->familyName : "";
- $this->user->profile->displayName = (property_exists($data, 'nickname')) ? trim($data->nickname) : "";
- $this->user->profile->profileURL = (property_exists($data, 'profileUrl')) ? $data->profileUrl : "";
- $this->user->profile->gender = (property_exists($data, 'gender')) ? $data->gender : "";
-
- if ($this->user->profile->gender == "F") {
- $this->user->profile->gender = "female";
- }
-
- if ($this->user->profile->gender == "M") {
- $this->user->profile->gender = "male";
- }
-
- if (isset($data->emails)) {
- $email = "";
- foreach ($data->emails as $v) {
- if (isset($v->primary) && $v->primary) {
- $email = (property_exists($v, 'handle')) ? $v->handle : "";
-
- break;
- }
- }
-
- $this->user->profile->email = $email;
- $this->user->profile->emailVerified = $email;
- }
-
- $this->user->profile->age = (property_exists($data, 'displayAge')) ? $data->displayAge : "";
- $this->user->profile->photoURL = (property_exists($data, 'image')) ? $data->image->imageUrl : "";
-
- $this->user->profile->address = (property_exists($data, 'location')) ? $data->location : "";
- $this->user->profile->language = (property_exists($data, 'lang')) ? $data->lang : "";
-
- return $this->user->profile;
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserContacts() {
- $userId = $this->getCurrentUserId();
-
- $parameters = array();
- $parameters['format'] = 'json';
- $parameters['count'] = 'max';
-
- $response = $this->api->get('user/' . $userId . '/contacts', $parameters);
-
- if ($this->api->http_code != 200) {
- throw new Exception('User contacts request failed! ' . $this->providerId . ' returned an error: ' . $this->errorMessageByStatus($this->api->http_code));
- }
-
- if (!isset($response->contacts) || !isset($response->contacts->contact) || ( isset($response->errcode) && $response->errcode != 0 )) {
- return array();
- }
-
- $contacts = array();
-
- foreach ($response->contacts->contact as $item) {
- $uc = new Hybrid_User_Contact();
-
- $uc->identifier = $this->selectGUID($item);
- $uc->email = $this->selectEmail($item->fields);
- $uc->displayName = $this->selectName($item->fields);
- $uc->photoURL = $this->selectPhoto($item->fields);
-
- $contacts[] = $uc;
- }
-
- return $contacts;
- }
-
- /**
- * {@inheritdoc}
- */
- function getUserActivity($stream) {
- $userId = $this->getCurrentUserId();
-
- $parameters = array();
- $parameters['format'] = 'json';
- $parameters['count'] = 'max';
-
- $response = $this->api->get('user/' . $userId . '/updates', $parameters);
-
- if (!$response->updates || $this->api->http_code != 200) {
- throw new Exception('User activity request failed! ' . $this->providerId . ' returned an error: ' . $this->errorMessageByStatus($this->api->http_code));
- }
-
- $activities = array();
-
- foreach ($response->updates as $item) {
- $ua = new Hybrid_User_Activity();
-
- $ua->id = (property_exists($item, 'collectionID')) ? $item->collectionID : "";
- $ua->date = (property_exists($item, 'lastUpdated')) ? $item->lastUpdated : "";
- $ua->text = (property_exists($item, 'loc_longForm')) ? $item->loc_longForm : "";
-
- $ua->user->identifier = (property_exists($item, 'profile_guid')) ? $item->profile_guid : "";
- $ua->user->displayName = (property_exists($item, 'profile_nickname')) ? $item->profile_nickname : "";
- $ua->user->profileURL = (property_exists($item, 'profile_profileUrl')) ? $item->profile_profileUrl : "";
- $ua->user->photoURL = (property_exists($item, 'profile_displayImage')) ? $item->profile_displayImage : "";
-
- $activities[] = $ua;
- }
-
- if ($stream == "me") {
- $userId = $this->getCurrentUserId();
- $my_activities = array();
-
- foreach ($activities as $a) {
- if ($a->user->identifier == $userId) {
- $my_activities[] = $a;
- }
- }
-
- return $my_activities;
- }
-
- return $activities;
- }
-
- /**
- * Utility function for returning values from XML-like objects
- *
- * @param stdClass $vs Object
- * @param string $t Property name
- * @return mixed
- */
- function select($vs, $t) {
- foreach ($vs as $v) {
- if ($v->type == $t) {
- return $v;
- }
- }
- return null;
- }
-
- /**
- * Parses guid
- *
- * @param stdClass $v Object
- * @return string
- */
- function selectGUID($v) {
- return (property_exists($v, 'id')) ? $v->id : "";
- }
-
- /**
- * Parses user name
- *
- * @param stdClass $v Object
- * @return string
- */
- function selectName($v) {
- $s = $this->select($v, 'name');
-
- if (!$s) {
- $s = $this->select($v, 'nickname');
- return ($s) ? $s->value : "";
- } else {
- return ($s) ? $s->value->givenName . " " . $s->value->familyName : "";
- }
- }
-
- /**
- * Parses nickname
- *
- * @param stdClass $v Object
- * @return string
- */
- function selectNickame($v) {
- $s = $this->select($v, 'nickname');
- return ($s) ? $s : "";
- }
-
- /**
- * Parses photo URL
- *
- * @param stdClass $v Object
- * @return string
- */
- function selectPhoto($v) {
- $s = $this->select($v, 'guid');
- return ($s) ? (property_exists($s, 'image')) : "";
- }
-
- /**
- * Parses email
- *
- * @param stdClass $v Object
- * @return string
- */
- function selectEmail($v) {
- $s = $this->select($v, 'email');
- if (empty($s)) {
- $s = $this->select($v, 'yahooid');
- if (!empty($s) && isset($s->value) && strpos($s->value, "@") === false)
- $s->value .= "@yahoo.com";
- }
- return ($s) ? $s->value : "";
- }
-
- /**
- * Returns current user id
- *
- * @return int
- * @throws Exception
- */
- public function getCurrentUserId() {
- $parameters = array();
- $parameters['format'] = 'json';
-
- $response = $this->api->get('me/guid', $parameters);
-
- if (!isset($response->guid->value)) {
- throw new Exception("User id request failed! {$this->providerId} returned an invalid response: " . Hybrid_Logger::dumpData( $response ));
- }
-
- return $response->guid->value;
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Storage.php b/milfs/librerias/hybridauth/Hybrid/Storage.php
deleted file mode 100644
index d82b4af..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Storage.php
+++ /dev/null
@@ -1,141 +0,0 @@
-config("php_session_id", session_id());
- $this->config("version", Hybrid_Auth::$version);
- }
-
- /**
- * Saves a value in the config storage, or returns config if value is null
- *
- * @param string $key Config name
- * @param string $value Config value
- * @return array|null
- */
- public function config($key, $value = null) {
- $key = strtolower($key);
-
- if ($value) {
- $_SESSION["HA::CONFIG"][$key] = serialize($value);
- } elseif (isset($_SESSION["HA::CONFIG"][$key])) {
- return unserialize($_SESSION["HA::CONFIG"][$key]);
- }
-
- return null;
- }
-
- /**
- * Returns value from session storage
- *
- * @param string $key Key
- * @return string|null
- */
- public function get($key) {
- $key = strtolower($key);
-
- if (isset($_SESSION["HA::STORE"], $_SESSION["HA::STORE"][$key])) {
- return unserialize($_SESSION["HA::STORE"][$key]);
- }
-
- return null;
- }
-
- /**
- * Saves a key value pair to the session storage
- *
- * @param string $key Key
- * @param string $value Value
- * @return void
- */
- public function set($key, $value) {
- $key = strtolower($key);
- $_SESSION["HA::STORE"][$key] = serialize($value);
- }
-
- /**
- * Clear session storage
- * @return void
- */
- function clear() {
- $_SESSION["HA::STORE"] = array();
- }
-
- /**
- * Delete a specific key from session storage
- *
- * @param string $key Key
- * @return void
- */
- function delete($key) {
- $key = strtolower($key);
-
- if (isset($_SESSION["HA::STORE"], $_SESSION["HA::STORE"][$key])) {
- $f = $_SESSION['HA::STORE'];
- unset($f[$key]);
- $_SESSION["HA::STORE"] = $f;
- }
- }
-
- /**
- * Delete all keys recursively from session storage
- *
- * @param string $key Key
- * @retun void
- */
- function deleteMatch($key) {
- $key = strtolower($key);
-
- if (isset($_SESSION["HA::STORE"]) && count($_SESSION["HA::STORE"])) {
- $f = $_SESSION['HA::STORE'];
- foreach ($f as $k => $v) {
- if (strstr($k, $key)) {
- unset($f[$k]);
- }
- }
- $_SESSION["HA::STORE"] = $f;
- }
- }
-
- /**
- * Returns session storage as a serialized string
- * @return string|null
- */
- function getSessionData() {
- if (isset($_SESSION["HA::STORE"])) {
- return serialize($_SESSION["HA::STORE"]);
- }
- return null;
- }
-
- /**
- * Restores the session from serialized session data
- *
- * @param string $sessiondata Serialized session data
- * @return void
- */
- function restoreSessionData($sessiondata = null) {
- $_SESSION["HA::STORE"] = unserialize($sessiondata);
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/StorageInterface.php b/milfs/librerias/hybridauth/Hybrid/StorageInterface.php
deleted file mode 100644
index 5b171ec..0000000
--- a/milfs/librerias/hybridauth/Hybrid/StorageInterface.php
+++ /dev/null
@@ -1,29 +0,0 @@
-timestamp = time();
- $this->profile = new Hybrid_User_Profile();
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/User_Activity.php b/milfs/librerias/hybridauth/Hybrid/User_Activity.php
deleted file mode 100644
index 4a57e16..0000000
--- a/milfs/librerias/hybridauth/Hybrid/User_Activity.php
+++ /dev/null
@@ -1,55 +0,0 @@
-user = new stdClass();
-
- // typically, we should have a few information about the user who created the event from social apis
- $this->user->identifier = null;
- $this->user->displayName = null;
- $this->user->profileURL = null;
- $this->user->photoURL = null;
- }
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/User_Contact.php b/milfs/librerias/hybridauth/Hybrid/User_Contact.php
deleted file mode 100644
index facbfc4..0000000
--- a/milfs/librerias/hybridauth/Hybrid/User_Contact.php
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
- 403 Forbidden
-
-
-
-Directory access is forbidden.
-
-
-
\ No newline at end of file
diff --git a/milfs/librerias/hybridauth/Hybrid/resources/index.html b/milfs/librerias/hybridauth/Hybrid/resources/index.html
deleted file mode 100644
index 065d2da..0000000
--- a/milfs/librerias/hybridauth/Hybrid/resources/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- 403 Forbidden
-
-
-
-Directory access is forbidden.
-
-
-
\ No newline at end of file
diff --git a/milfs/librerias/hybridauth/Hybrid/resources/openid_policy.html b/milfs/librerias/hybridauth/Hybrid/resources/openid_policy.html
deleted file mode 100644
index bf5c52c..0000000
--- a/milfs/librerias/hybridauth/Hybrid/resources/openid_policy.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- OpenID Policy
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/librerias/hybridauth/Hybrid/resources/openid_realm.html b/milfs/librerias/hybridauth/Hybrid/resources/openid_realm.html
deleted file mode 100644
index e26a5a1..0000000
--- a/milfs/librerias/hybridauth/Hybrid/resources/openid_realm.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- HybridAuth Endpoint
-
-
-
-
- HybridAuth
- Open Source Social Sign On PHP Library.
-
- hybridauth.sourceforge.net/
-
-
diff --git a/milfs/librerias/hybridauth/Hybrid/resources/openid_xrds.xml b/milfs/librerias/hybridauth/Hybrid/resources/openid_xrds.xml
deleted file mode 100644
index 9d50170..0000000
--- a/milfs/librerias/hybridauth/Hybrid/resources/openid_xrds.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- http://specs.openid.net/auth/2.0/return_to
- {RETURN_TO_URL}
-
-
-
\ No newline at end of file
diff --git a/milfs/librerias/hybridauth/Hybrid/thirdparty/Facebook/base_facebook.php b/milfs/librerias/hybridauth/Hybrid/thirdparty/Facebook/base_facebook.php
deleted file mode 100644
index b0d9ef9..0000000
--- a/milfs/librerias/hybridauth/Hybrid/thirdparty/Facebook/base_facebook.php
+++ /dev/null
@@ -1,1562 +0,0 @@
-
- */
-class FacebookApiException extends Exception
-{
- /**
- * The result from the API server that represents the exception information.
- *
- * @var mixed
- */
- protected $result;
-
- /**
- * Make a new API Exception with the given result.
- *
- * @param array $result The result from the API server
- */
- public function __construct($result) {
- $this->result = $result;
-
- $code = 0;
- if (isset($result['error_code']) && is_int($result['error_code'])) {
- $code = $result['error_code'];
- }
-
- if (isset($result['error_description'])) {
- // OAuth 2.0 Draft 10 style
- $msg = $result['error_description'];
- } else if (isset($result['error']) && is_array($result['error'])) {
- // OAuth 2.0 Draft 00 style
- $msg = $result['error']['message'];
- } else if (isset($result['error_msg'])) {
- // Rest server style
- $msg = $result['error_msg'];
- } else {
- $msg = 'Unknown Error. Check getResult()';
- }
-
- parent::__construct($msg, $code);
- }
-
- /**
- * Return the associated result object returned by the API server.
- *
- * @return array The result from the API server
- */
- public function getResult() {
- return $this->result;
- }
-
- /**
- * Returns the associated type for the error. This will default to
- * 'Exception' when a type is not available.
- *
- * @return string
- */
- public function getType() {
- if (isset($this->result['error'])) {
- $error = $this->result['error'];
- if (is_string($error)) {
- // OAuth 2.0 Draft 10 style
- return $error;
- } else if (is_array($error)) {
- // OAuth 2.0 Draft 00 style
- if (isset($error['type'])) {
- return $error['type'];
- }
- }
- }
-
- return 'Exception';
- }
-
- /**
- * To make debugging easier.
- *
- * @return string The string representation of the error
- */
- public function __toString() {
- $str = $this->getType() . ': ';
- if ($this->code != 0) {
- $str .= $this->code . ': ';
- }
- return $str . $this->message;
- }
-}
-
-/**
- * Provides access to the Facebook Platform. This class provides
- * a majority of the functionality needed, but the class is abstract
- * because it is designed to be sub-classed. The subclass must
- * implement the four abstract methods listed at the bottom of
- * the file.
- *
- * @author Naitik Shah
- */
-abstract class BaseFacebook
-{
- /**
- * Version.
- */
- const VERSION = '3.2.3';
-
- /**
- * Signed Request Algorithm.
- */
- const SIGNED_REQUEST_ALGORITHM = 'HMAC-SHA256';
-
- /**
- * Default options for curl.
- *
- * @var array
- */
- public static $CURL_OPTS = array(
- CURLOPT_CONNECTTIMEOUT => 10,
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_TIMEOUT => 60,
- CURLOPT_USERAGENT => 'facebook-php-3.2',
- );
-
- /**
- * List of query parameters that get automatically dropped when rebuilding
- * the current URL.
- *
- * @var array
- */
- protected static $DROP_QUERY_PARAMS = array(
- 'code',
- 'state',
- 'signed_request',
- );
-
- /**
- * Maps aliases to Facebook domains.
- *
- * @var array
- */
- public static $DOMAIN_MAP = array(
- 'api' => 'https://api.facebook.com/',
- 'api_video' => 'https://api-video.facebook.com/',
- 'api_read' => 'https://api-read.facebook.com/',
- 'graph' => 'https://graph.facebook.com/',
- 'graph_video' => 'https://graph-video.facebook.com/',
- 'www' => 'https://www.facebook.com/',
- );
-
- /**
- * The decoded response object.
- *
- * @var mixed
- */
- protected $response;
-
- /**
- * The Application ID.
- *
- * @var string
- */
- protected $appId;
-
- /**
- * The Application App Secret.
- *
- * @var string
- */
- protected $appSecret;
-
- /**
- * The ID of the Facebook user, or 0 if the user is logged out.
- *
- * @var integer
- */
- protected $user;
-
- /**
- * The data from the signed_request token.
- *
- * @var string
- */
- protected $signedRequest;
-
- /**
- * A CSRF state variable to assist in the defense against CSRF attacks.
- *
- * @var string
- */
- protected $state;
-
- /**
- * The OAuth access token received in exchange for a valid authorization
- * code. null means the access token has yet to be determined.
- *
- * @var string
- */
- protected $accessToken = null;
-
- /**
- * Indicates if the CURL based @ syntax for file uploads is enabled.
- *
- * @var boolean
- */
- protected $fileUploadSupport = false;
-
- /**
- * Indicates if we trust HTTP_X_FORWARDED_* headers.
- *
- * @var boolean
- */
- protected $trustForwarded = false;
-
- /**
- * Indicates if signed_request is allowed in query parameters.
- *
- * @var boolean
- */
- protected $allowSignedRequest = true;
-
- /**
- * Initialize a Facebook Application.
- *
- * The configuration:
- * - appId: the application ID
- * - secret: the application secret
- * - fileUpload: (optional) boolean indicating if file uploads are enabled
- * - allowSignedRequest: (optional) boolean indicating if signed_request is
- * allowed in query parameters or POST body. Should be
- * false for non-canvas apps. Defaults to true.
- *
- * @param array $config The application configuration
- */
- public function __construct($config) {
- $this->setAppId($config['appId']);
- $this->setAppSecret($config['secret']);
- if (isset($config['fileUpload'])) {
- $this->setFileUploadSupport($config['fileUpload']);
- }
- if (isset($config['trustForwarded']) && $config['trustForwarded']) {
- $this->trustForwarded = true;
- }
- if (isset($config['allowSignedRequest'])
- && !$config['allowSignedRequest']) {
- $this->allowSignedRequest = false;
- }
- $state = $this->getPersistentData('state');
- if (!empty($state)) {
- $this->state = $state;
- }
- }
-
- /**
- * Set the Application ID.
- *
- * @param string $appId The Application ID
- *
- * @return BaseFacebook
- */
- public function setAppId($appId) {
- $this->appId = $appId;
- return $this;
- }
-
- /**
- * Get the Application ID.
- *
- * @return string the Application ID
- */
- public function getAppId() {
- return $this->appId;
- }
-
- /**
- * Set the App Secret.
- *
- * @param string $apiSecret The App Secret
- *
- * @return BaseFacebook
- * @deprecated Use setAppSecret instead.
- * @see setAppSecret()
- */
- public function setApiSecret($apiSecret) {
- $this->setAppSecret($apiSecret);
- return $this;
- }
-
- /**
- * Set the App Secret.
- *
- * @param string $appSecret The App Secret
- *
- * @return BaseFacebook
- */
- public function setAppSecret($appSecret) {
- $this->appSecret = $appSecret;
- return $this;
- }
-
- /**
- * Get the App Secret.
- *
- * @return string the App Secret
- *
- * @deprecated Use getAppSecret instead.
- * @see getAppSecret()
- */
- public function getApiSecret() {
- return $this->getAppSecret();
- }
-
- /**
- * Get the App Secret.
- *
- * @return string the App Secret
- */
- public function getAppSecret() {
- return $this->appSecret;
- }
-
- /**
- * Set the file upload support status.
- *
- * @param boolean $fileUploadSupport The file upload support status.
- *
- * @return BaseFacebook
- */
- public function setFileUploadSupport($fileUploadSupport) {
- $this->fileUploadSupport = $fileUploadSupport;
- return $this;
- }
-
- /**
- * Get the file upload support status.
- *
- * @return boolean true if and only if the server supports file upload.
- */
- public function getFileUploadSupport() {
- return $this->fileUploadSupport;
- }
-
- /**
- * Get the file upload support status.
- *
- * @return boolean true if and only if the server supports file upload.
- *
- * @deprecated Use getFileUploadSupport instead.
- * @see getFileUploadSupport()
- */
- public function useFileUploadSupport() {
- return $this->getFileUploadSupport();
- }
-
- /**
- * Sets the access token for api calls. Use this if you get
- * your access token by other means and just want the SDK
- * to use it.
- *
- * @param string $access_token an access token.
- *
- * @return BaseFacebook
- */
- public function setAccessToken($access_token) {
- $this->accessToken = $access_token;
- return $this;
- }
-
- /**
- * Extend an access token, while removing the short-lived token that might
- * have been generated via client-side flow. Thanks to http://bit.ly/b0Pt0H
- * for the workaround.
- */
- public function setExtendedAccessToken() {
- try {
- // need to circumvent json_decode by calling _oauthRequest
- // directly, since response isn't JSON format.
- $access_token_response = $this->_oauthRequest(
- $this->getUrl('graph', '/oauth/access_token'),
- $params = array(
- 'client_id' => $this->getAppId(),
- 'client_secret' => $this->getAppSecret(),
- 'grant_type' => 'fb_exchange_token',
- 'fb_exchange_token' => $this->getAccessToken(),
- )
- );
- }
- catch (FacebookApiException $e) {
- // most likely that user very recently revoked authorization.
- // In any event, we don't have an access token, so say so.
- return false;
- }
-
- if (empty($access_token_response)) {
- return false;
- }
-
- $response_params = array();
- parse_str($access_token_response, $response_params);
-
- if (!isset($response_params['access_token'])) {
- return false;
- }
-
- $this->destroySession();
-
- $this->setPersistentData(
- 'access_token', $response_params['access_token']
- );
- }
-
- /**
- * Determines the access token that should be used for API calls.
- * The first time this is called, $this->accessToken is set equal
- * to either a valid user access token, or it's set to the application
- * access token if a valid user access token wasn't available. Subsequent
- * calls return whatever the first call returned.
- *
- * @return string The access token
- */
- public function getAccessToken() {
- if ($this->accessToken !== null) {
- // we've done this already and cached it. Just return.
- return $this->accessToken;
- }
-
- // first establish access token to be the application
- // access token, in case we navigate to the /oauth/access_token
- // endpoint, where SOME access token is required.
- $this->setAccessToken($this->getApplicationAccessToken());
- $user_access_token = $this->getUserAccessToken();
- if ($user_access_token) {
- $this->setAccessToken($user_access_token);
- }
-
- return $this->accessToken;
- }
-
- /**
- * Return the response object afer the fact
- *
- * @return mixed
- */
- public function getResponse()
- {
- return $this->response;
- }
-
- /**
- * Determines and returns the user access token, first using
- * the signed request if present, and then falling back on
- * the authorization code if present. The intent is to
- * return a valid user access token, or false if one is determined
- * to not be available.
- *
- * @return string A valid user access token, or false if one
- * could not be determined.
- */
- protected function getUserAccessToken() {
- // first, consider a signed request if it's supplied.
- // if there is a signed request, then it alone determines
- // the access token.
- $signed_request = $this->getSignedRequest();
- if ($signed_request) {
- // apps.facebook.com hands the access_token in the signed_request
- if (array_key_exists('oauth_token', $signed_request)) {
- $access_token = $signed_request['oauth_token'];
- $this->setPersistentData('access_token', $access_token);
- return $access_token;
- }
-
- // the JS SDK puts a code in with the redirect_uri of ''
- if (array_key_exists('code', $signed_request)) {
- $code = $signed_request['code'];
- if ($code && $code == $this->getPersistentData('code')) {
- // short-circuit if the code we have is the same as the one presented
- return $this->getPersistentData('access_token');
- }
-
- $access_token = $this->getAccessTokenFromCode($code, '');
- if ($access_token) {
- $this->setPersistentData('code', $code);
- $this->setPersistentData('access_token', $access_token);
- return $access_token;
- }
- }
-
- // signed request states there's no access token, so anything
- // stored should be cleared.
- $this->clearAllPersistentData();
- return false; // respect the signed request's data, even
- // if there's an authorization code or something else
- }
-
- $code = $this->getCode();
- if ($code && $code != $this->getPersistentData('code')) {
- $access_token = $this->getAccessTokenFromCode($code);
- if ($access_token) {
- $this->setPersistentData('code', $code);
- $this->setPersistentData('access_token', $access_token);
- return $access_token;
- }
-
- // code was bogus, so everything based on it should be invalidated.
- $this->clearAllPersistentData();
- return false;
- }
-
- // as a fallback, just return whatever is in the persistent
- // store, knowing nothing explicit (signed request, authorization
- // code, etc.) was present to shadow it (or we saw a code in $_REQUEST,
- // but it's the same as what's in the persistent store)
- return $this->getPersistentData('access_token');
- }
-
- /**
- * Retrieve the signed request, either from a request parameter or,
- * if not present, from a cookie.
- *
- * @return string the signed request, if available, or null otherwise.
- */
- public function getSignedRequest() {
- if (!$this->signedRequest) {
- if ($this->allowSignedRequest && !empty($_REQUEST['signed_request'])) {
- $this->signedRequest = $this->parseSignedRequest(
- $_REQUEST['signed_request']
- );
- } else if (!empty($_COOKIE[$this->getSignedRequestCookieName()])) {
- $this->signedRequest = $this->parseSignedRequest(
- $_COOKIE[$this->getSignedRequestCookieName()]);
- }
- }
- return $this->signedRequest;
- }
-
- /**
- * Get the UID of the connected user, or 0
- * if the Facebook user is not connected.
- *
- * @return string the UID if available.
- */
- public function getUser() {
- if ($this->user !== null) {
- // we've already determined this and cached the value.
- return $this->user;
- }
-
- return $this->user = $this->getUserFromAvailableData();
- }
-
- /**
- * Determines the connected user by first examining any signed
- * requests, then considering an authorization code, and then
- * falling back to any persistent store storing the user.
- *
- * @return integer The id of the connected Facebook user,
- * or 0 if no such user exists.
- */
- protected function getUserFromAvailableData() {
- // if a signed request is supplied, then it solely determines
- // who the user is.
- $signed_request = $this->getSignedRequest();
- if ($signed_request) {
- if (array_key_exists('user_id', $signed_request)) {
- $user = $signed_request['user_id'];
-
- if($user != $this->getPersistentData('user_id')){
- $this->clearAllPersistentData();
- }
-
- $this->setPersistentData('user_id', $signed_request['user_id']);
- return $user;
- }
-
- // if the signed request didn't present a user id, then invalidate
- // all entries in any persistent store.
- $this->clearAllPersistentData();
- return 0;
- }
-
- $user = $this->getPersistentData('user_id', $default = 0);
- $persisted_access_token = $this->getPersistentData('access_token');
-
- // use access_token to fetch user id if we have a user access_token, or if
- // the cached access token has changed.
- $access_token = $this->getAccessToken();
- if ($access_token &&
- $access_token != $this->getApplicationAccessToken() &&
- !($user && $persisted_access_token == $access_token)) {
- $user = $this->getUserFromAccessToken();
- if ($user) {
- $this->setPersistentData('user_id', $user);
- } else {
- $this->clearAllPersistentData();
- }
- }
-
- return $user;
- }
-
- /**
- * Get a Login URL for use with redirects. By default, full page redirect is
- * assumed. If you are using the generated URL with a window.open() call in
- * JavaScript, you can pass in display=popup as part of the $params.
- *
- * The parameters:
- * - redirect_uri: the url to go to after a successful login
- * - scope: comma separated list of requested extended perms
- *
- * @param array $params Provide custom parameters
- * @return string The URL for the login flow
- */
- public function getLoginUrl($params=array()) {
- $this->establishCSRFTokenState();
- $currentUrl = $this->getCurrentUrl();
-
- // if 'scope' is passed as an array, convert to comma separated list
- $scopeParams = isset($params['scope']) ? $params['scope'] : null;
- if ($scopeParams && is_array($scopeParams)) {
- $params['scope'] = implode(',', $scopeParams);
- }
-
- return $this->getUrl(
- 'www',
- 'dialog/oauth',
- array_merge(
- array(
- 'client_id' => $this->getAppId(),
- 'redirect_uri' => $currentUrl, // possibly overwritten
- 'state' => $this->state,
- 'sdk' => 'php-sdk-'.self::VERSION
- ),
- $params
- ));
- }
-
- /**
- * Get a Logout URL suitable for use with redirects.
- *
- * The parameters:
- * - next: the url to go to after a successful logout
- *
- * @param array $params Provide custom parameters
- * @return string The URL for the logout flow
- */
- public function getLogoutUrl($params=array()) {
- return $this->getUrl(
- 'www',
- 'logout.php',
- array_merge(array(
- 'next' => $this->getCurrentUrl(),
- 'access_token' => $this->getUserAccessToken(),
- ), $params)
- );
- }
-
- /**
- * Get a login status URL to fetch the status from Facebook.
- *
- * @param array $params Provide custom parameters
- * @return string The URL for the logout flow
- */
- public function getLoginStatusUrl($params=array()) {
- return $this->getLoginUrl(
- array_merge(array(
- 'response_type' => 'code',
- 'display' => 'none',
- ), $params)
- );
- }
-
- /**
- * Make an API call.
- *
- * @return mixed The decoded response
- */
- public function api(/* polymorphic */) {
- $args = func_get_args();
- if (is_array($args[0])) {
- return $this->_restserver($args[0]);
- } else {
- return call_user_func_array(array($this, '_graph'), $args);
- }
- }
-
- /**
- * Constructs and returns the name of the cookie that
- * potentially houses the signed request for the app user.
- * The cookie is not set by the BaseFacebook class, but
- * it may be set by the JavaScript SDK.
- *
- * @return string the name of the cookie that would house
- * the signed request value.
- */
- protected function getSignedRequestCookieName() {
- return 'fbsr_'.$this->getAppId();
- }
-
- /**
- * Constructs and returns the name of the cookie that potentially contain
- * metadata. The cookie is not set by the BaseFacebook class, but it may be
- * set by the JavaScript SDK.
- *
- * @return string the name of the cookie that would house metadata.
- */
- protected function getMetadataCookieName() {
- return 'fbm_'.$this->getAppId();
- }
-
- /**
- * Get the authorization code from the query parameters, if it exists,
- * and otherwise return false to signal no authorization code was
- * discoverable.
- *
- * @return mixed The authorization code, or false if the authorization
- * code could not be determined.
- */
- protected function getCode() {
- if (!isset($_REQUEST['code']) || !isset($_REQUEST['state']) || $this->state === null) {
- return false;
- }
- if ($this->state === $_REQUEST['state']) {
- // CSRF state has done its job, so clear it
- $this->state = null;
- $this->clearPersistentData('state');
- return $_REQUEST['code'];
- }
- self::errorLog('CSRF state token does not match one provided.');
-
- return false;
- }
-
- /**
- * Retrieves the UID with the understanding that
- * $this->accessToken has already been set and is
- * seemingly legitimate. It relies on Facebook's Graph API
- * to retrieve user information and then extract
- * the user ID.
- *
- * @return integer Returns the UID of the Facebook user, or 0
- * if the Facebook user could not be determined.
- */
- protected function getUserFromAccessToken() {
- try {
- $user_info = $this->api('/me');
- return $user_info['id'];
- } catch (FacebookApiException $e) {
- return 0;
- }
- }
-
- /**
- * Returns the access token that should be used for logged out
- * users when no authorization code is available.
- *
- * @return string The application access token, useful for gathering
- * public information about users and applications.
- */
- public function getApplicationAccessToken() {
- return $this->appId.'|'.$this->appSecret;
- }
-
- /**
- * Lays down a CSRF state token for this process.
- *
- * @return void
- */
- protected function establishCSRFTokenState() {
- if ($this->state === null) {
- $this->state = md5(uniqid(mt_rand(), true));
- $this->setPersistentData('state', $this->state);
- }
- }
-
- /**
- * Retrieves an access token for the given authorization code
- * (previously generated from www.facebook.com on behalf of
- * a specific user). The authorization code is sent to graph.facebook.com
- * and a legitimate access token is generated provided the access token
- * and the user for which it was generated all match, and the user is
- * either logged in to Facebook or has granted an offline access permission.
- *
- * @param string $code An authorization code.
- * @param string $redirect_uri Optional redirect URI. Default null
- *
- * @return mixed An access token exchanged for the authorization code, or
- * false if an access token could not be generated.
- */
- protected function getAccessTokenFromCode($code, $redirect_uri = null) {
- if (empty($code)) {
- return false;
- }
-
- if ($redirect_uri === null) {
- $redirect_uri = $this->getCurrentUrl();
- }
-
- try {
- // need to circumvent json_decode by calling _oauthRequest
- // directly, since response isn't JSON format.
- $access_token_response =
- $this->_oauthRequest(
- $this->getUrl('graph', '/oauth/access_token'),
- $params = array('client_id' => $this->getAppId(),
- 'client_secret' => $this->getAppSecret(),
- 'redirect_uri' => $redirect_uri,
- 'code' => $code));
- } catch (FacebookApiException $e) {
- // most likely that user very recently revoked authorization.
- // In any event, we don't have an access token, so say so.
- return false;
- }
-
- if (empty($access_token_response)) {
- return false;
- }
-
- $response_params = array();
- parse_str($access_token_response, $response_params);
- if (!isset($response_params['access_token'])) {
- return false;
- }
-
- return $response_params['access_token'];
- }
-
- /**
- * Invoke the old restserver.php endpoint.
- *
- * @param array $params Method call object
- *
- * @return mixed The decoded response object
- * @throws FacebookApiException
- */
- protected function _restserver($params) {
- // generic application level parameters
- $params['api_key'] = $this->getAppId();
- $params['format'] = 'json-strings';
-
- $result = json_decode($this->_oauthRequest(
- $this->getApiUrl($params['method']),
- $params
- ), true);
-
- // results are returned, errors are thrown
- if (is_array($result) && isset($result['error_code'])) {
- $this->throwAPIException($result);
- // @codeCoverageIgnoreStart
- }
- // @codeCoverageIgnoreEnd
-
- $method = strtolower($params['method']);
- if ($method === 'auth.expiresession' ||
- $method === 'auth.revokeauthorization') {
- $this->destroySession();
- }
-
- return $result;
- }
-
- /**
- * Return true if this is video post.
- *
- * @param string $path The path
- * @param string $method The http method (default 'GET')
- *
- * @return boolean true if this is video post
- */
- protected function isVideoPost($path, $method = 'GET') {
- if ($method == 'POST' && preg_match("/^(\/)(.+)(\/)(videos)$/", $path)) {
- return true;
- }
- return false;
- }
-
- /**
- * Invoke the Graph API.
- *
- * @param string $path The path (required)
- * @param string $method The http method (default 'GET')
- * @param array $params The query/post data
- *
- * @return mixed The decoded response object
- * @throws FacebookApiException
- */
- protected function _graph($path, $method = 'GET', $params = array()) {
- if (is_array($method) && empty($params)) {
- $params = $method;
- $method = 'GET';
- }
- $params['method'] = $method; // method override as we always do a POST
-
- if ($this->isVideoPost($path, $method)) {
- $domainKey = 'graph_video';
- } else {
- $domainKey = 'graph';
- }
-
- $result = json_decode($this->_oauthRequest(
- $this->getUrl($domainKey, $path),
- $params
- ), true);
-
- // results are returned, errors are thrown
- if (is_array($result) && isset($result['error'])) {
- $this->throwAPIException($result);
- // @codeCoverageIgnoreStart
- }
- // @codeCoverageIgnoreEnd
-
- return $this->response = $result;
- }
-
- /**
- * Make a OAuth Request.
- *
- * @param string $url The path (required)
- * @param array $params The query/post data
- *
- * @return string The decoded response object
- * @throws FacebookApiException
- */
- protected function _oauthRequest($url, $params) {
- if (!isset($params['access_token'])) {
- $params['access_token'] = $this->getAccessToken();
- }
-
- if (isset($params['access_token']) && !isset($params['appsecret_proof'])) {
- $params['appsecret_proof'] = $this->getAppSecretProof($params['access_token']);
- }
-
- // json_encode all params values that are not strings
- foreach ($params as $key => $value) {
- if (!is_string($value) && !($value instanceof CURLFile)) {
- $params[$key] = json_encode($value);
- }
- }
-
- return $this->makeRequest($url, $params);
- }
-
- /**
- * Generate a proof of App Secret
- * This is required for all API calls originating from a server
- * It is a sha256 hash of the access_token made using the app secret
- *
- * @param string $access_token The access_token to be hashed (required)
- *
- * @return string The sha256 hash of the access_token
- */
- protected function getAppSecretProof($access_token) {
- return hash_hmac('sha256', $access_token, $this->getAppSecret());
- }
-
- /**
- * Makes an HTTP request. This method can be overridden by subclasses if
- * developers want to do fancier things or use something other than curl to
- * make the request.
- *
- * @param string $url The URL to make the request to
- * @param array $params The parameters to use for the POST body
- * @param CurlHandler $ch Initialized curl handle
- *
- * @return string The response text
- */
- protected function makeRequest($url, $params, $ch=null) {
- if (!$ch) {
- $ch = curl_init();
- }
-
- $opts = self::$CURL_OPTS;
- if ($this->getFileUploadSupport()) {
- $opts[CURLOPT_POSTFIELDS] = $params;
- } else {
- $opts[CURLOPT_POSTFIELDS] = http_build_query($params, null, '&');
- }
- $opts[CURLOPT_URL] = $url;
-
- // disable the 'Expect: 100-continue' behaviour. This causes CURL to wait
- // for 2 seconds if the server does not support this header.
- if (isset($opts[CURLOPT_HTTPHEADER])) {
- $existing_headers = $opts[CURLOPT_HTTPHEADER];
- $existing_headers[] = 'Expect:';
- $opts[CURLOPT_HTTPHEADER] = $existing_headers;
- } else {
- $opts[CURLOPT_HTTPHEADER] = array('Expect:');
- }
-
- curl_setopt_array($ch, $opts);
- $result = curl_exec($ch);
-
- $errno = curl_errno($ch);
- // CURLE_SSL_CACERT || CURLE_SSL_CACERT_BADFILE
- if ($errno == 60 || $errno == 77) {
- self::errorLog('Invalid or no certificate authority found, '.
- 'using bundled information');
- curl_setopt($ch, CURLOPT_CAINFO,
- dirname(__FILE__) . DIRECTORY_SEPARATOR . 'fb_ca_chain_bundle.crt');
- $result = curl_exec($ch);
- }
-
- // With dual stacked DNS responses, it's possible for a server to
- // have IPv6 enabled but not have IPv6 connectivity. If this is
- // the case, curl will try IPv4 first and if that fails, then it will
- // fall back to IPv6 and the error EHOSTUNREACH is returned by the
- // operating system.
- if ($result === false && empty($opts[CURLOPT_IPRESOLVE])) {
- $matches = array();
- $regex = '/Failed to connect to ([^:].*): Network is unreachable/';
- if (preg_match($regex, curl_error($ch), $matches)) {
- if (strlen(@inet_pton($matches[1])) === 16) {
- self::errorLog('Invalid IPv6 configuration on server, '.
- 'Please disable or get native IPv6 on your server.');
- self::$CURL_OPTS[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4;
- curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
- $result = curl_exec($ch);
- }
- }
- }
-
- if ($result === false) {
- $e = new FacebookApiException(array(
- 'error_code' => curl_errno($ch),
- 'error' => array(
- 'message' => curl_error($ch),
- 'type' => 'CurlException',
- ),
- ));
- curl_close($ch);
- throw $e;
- }
- curl_close($ch);
- return $result;
- }
-
- /**
- * Parses a signed_request and validates the signature.
- *
- * @param string $signed_request A signed token
- *
- * @return array The payload inside it or null if the sig is wrong
- */
- protected function parseSignedRequest($signed_request) {
-
- if (!$signed_request || strpos($signed_request, '.') === false) {
- self::errorLog('Signed request was invalid!');
- return null;
- }
-
- list($encoded_sig, $payload) = explode('.', $signed_request, 2);
-
- // decode the data
- $sig = self::base64UrlDecode($encoded_sig);
- $data = json_decode(self::base64UrlDecode($payload), true);
-
- if (!isset($data['algorithm'])
- || strtoupper($data['algorithm']) !== self::SIGNED_REQUEST_ALGORITHM
- ) {
- self::errorLog(
- 'Unknown algorithm. Expected ' . self::SIGNED_REQUEST_ALGORITHM);
- return null;
- }
-
- // check sig
- $expected_sig = hash_hmac('sha256', $payload,
- $this->getAppSecret(), $raw = true);
-
- if (strlen($expected_sig) !== strlen($sig)) {
- self::errorLog('Bad Signed JSON signature!');
- return null;
- }
-
- $result = 0;
- for ($i = 0; $i < strlen($expected_sig); $i++) {
- $result |= ord($expected_sig[$i]) ^ ord($sig[$i]);
- }
-
- if ($result == 0) {
- return $data;
- } else {
- self::errorLog('Bad Signed JSON signature!');
- return null;
- }
- }
-
- /**
- * Makes a signed_request blob using the given data.
- *
- * @param array $data The data array.
- *
- * @return string The signed request.
- */
- protected function makeSignedRequest($data) {
- if (!is_array($data)) {
- throw new InvalidArgumentException(
- 'makeSignedRequest expects an array. Got: ' . print_r($data, true));
- }
- $data['algorithm'] = self::SIGNED_REQUEST_ALGORITHM;
- $data['issued_at'] = time();
- $json = json_encode($data);
- $b64 = self::base64UrlEncode($json);
- $raw_sig = hash_hmac('sha256', $b64, $this->getAppSecret(), $raw = true);
- $sig = self::base64UrlEncode($raw_sig);
- return $sig.'.'.$b64;
- }
-
- /**
- * Build the URL for api given parameters.
- *
- * @param string $method The method name.
- *
- * @return string The URL for the given parameters
- */
- protected function getApiUrl($method) {
- static $READ_ONLY_CALLS =
- array('admin.getallocation' => 1,
- 'admin.getappproperties' => 1,
- 'admin.getbannedusers' => 1,
- 'admin.getlivestreamvialink' => 1,
- 'admin.getmetrics' => 1,
- 'admin.getrestrictioninfo' => 1,
- 'application.getpublicinfo' => 1,
- 'auth.getapppublickey' => 1,
- 'auth.getsession' => 1,
- 'auth.getsignedpublicsessiondata' => 1,
- 'comments.get' => 1,
- 'connect.getunconnectedfriendscount' => 1,
- 'dashboard.getactivity' => 1,
- 'dashboard.getcount' => 1,
- 'dashboard.getglobalnews' => 1,
- 'dashboard.getnews' => 1,
- 'dashboard.multigetcount' => 1,
- 'dashboard.multigetnews' => 1,
- 'data.getcookies' => 1,
- 'events.get' => 1,
- 'events.getmembers' => 1,
- 'fbml.getcustomtags' => 1,
- 'feed.getappfriendstories' => 1,
- 'feed.getregisteredtemplatebundlebyid' => 1,
- 'feed.getregisteredtemplatebundles' => 1,
- 'fql.multiquery' => 1,
- 'fql.query' => 1,
- 'friends.arefriends' => 1,
- 'friends.get' => 1,
- 'friends.getappusers' => 1,
- 'friends.getlists' => 1,
- 'friends.getmutualfriends' => 1,
- 'gifts.get' => 1,
- 'groups.get' => 1,
- 'groups.getmembers' => 1,
- 'intl.gettranslations' => 1,
- 'links.get' => 1,
- 'notes.get' => 1,
- 'notifications.get' => 1,
- 'pages.getinfo' => 1,
- 'pages.isadmin' => 1,
- 'pages.isappadded' => 1,
- 'pages.isfan' => 1,
- 'permissions.checkavailableapiaccess' => 1,
- 'permissions.checkgrantedapiaccess' => 1,
- 'photos.get' => 1,
- 'photos.getalbums' => 1,
- 'photos.gettags' => 1,
- 'profile.getinfo' => 1,
- 'profile.getinfooptions' => 1,
- 'stream.get' => 1,
- 'stream.getcomments' => 1,
- 'stream.getfilters' => 1,
- 'users.getinfo' => 1,
- 'users.getloggedinuser' => 1,
- 'users.getstandardinfo' => 1,
- 'users.hasapppermission' => 1,
- 'users.isappuser' => 1,
- 'users.isverified' => 1,
- 'video.getuploadlimits' => 1);
- $name = 'api';
- if (isset($READ_ONLY_CALLS[strtolower($method)])) {
- $name = 'api_read';
- } else if (strtolower($method) == 'video.upload') {
- $name = 'api_video';
- }
- return self::getUrl($name, 'restserver.php');
- }
-
- /**
- * Build the URL for given domain alias, path and parameters.
- *
- * @param string $name The name of the domain
- * @param string $path Optional path (without a leading slash)
- * @param array $params Optional query parameters
- *
- * @return string The URL for the given parameters
- */
- protected function getUrl($name, $path='', $params=array()) {
- $url = self::$DOMAIN_MAP[$name];
- if ($path) {
- if ($path[0] === '/') {
- $path = substr($path, 1);
- }
- $url .= $path;
- }
- if ($params) {
- $url .= '?' . http_build_query($params, null, '&');
- }
-
- return $url;
- }
-
- /**
- * Returns the HTTP Host
- *
- * @return string The HTTP Host
- */
- protected function getHttpHost() {
- if ($this->trustForwarded && isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
- $forwardProxies = explode(',', $_SERVER['HTTP_X_FORWARDED_HOST']);
- if (!empty($forwardProxies)) {
- return $forwardProxies[0];
- }
- }
- return $_SERVER['HTTP_HOST'];
- }
-
- /**
- * Returns the HTTP Protocol
- *
- * @return string The HTTP Protocol
- */
- protected function getHttpProtocol() {
- if ($this->trustForwarded && isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
- if ($_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
- return 'https';
- }
- return 'http';
- }
- /*apache + variants specific way of checking for https*/
- if (isset($_SERVER['HTTPS']) &&
- ($_SERVER['HTTPS'] === 'on' || $_SERVER['HTTPS'] == 1)) {
- return 'https';
- }
- /*nginx way of checking for https*/
- if (isset($_SERVER['SERVER_PORT']) &&
- ($_SERVER['SERVER_PORT'] === '443')) {
- return 'https';
- }
- return 'http';
- }
-
- /**
- * Returns the base domain used for the cookie.
- *
- * @return string The base domain
- */
- protected function getBaseDomain() {
- // The base domain is stored in the metadata cookie if not we fallback
- // to the current hostname
- $metadata = $this->getMetadataCookie();
- if (array_key_exists('base_domain', $metadata) &&
- !empty($metadata['base_domain'])) {
- return trim($metadata['base_domain'], '.');
- }
- return $this->getHttpHost();
- }
-
- /**
- * Returns the Current URL, stripping it of known FB parameters that should
- * not persist.
- *
- * @return string The current URL
- */
- protected function getCurrentUrl() {
- $protocol = $this->getHttpProtocol() . '://';
- $host = $this->getHttpHost();
- $currentUrl = $protocol.$host.$_SERVER['REQUEST_URI'];
- $parts = parse_url($currentUrl);
-
- $query = '';
- if (!empty($parts['query'])) {
- // drop known fb params
- $params = explode('&', $parts['query']);
- $retained_params = array();
- foreach ($params as $param) {
- if ($this->shouldRetainParam($param)) {
- $retained_params[] = $param;
- }
- }
-
- if (!empty($retained_params)) {
- $query = '?'.implode($retained_params, '&');
- }
- }
-
- // use port if non default
- $port =
- isset($parts['port']) &&
- (($protocol === 'http://' && $parts['port'] !== 80) ||
- ($protocol === 'https://' && $parts['port'] !== 443))
- ? ':' . $parts['port'] : '';
-
- // rebuild
- return $protocol . $parts['host'] . $port . $parts['path'] . $query;
- }
-
- /**
- * Returns true if and only if the key or key/value pair should
- * be retained as part of the query string. This amounts to
- * a brute-force search of the very small list of Facebook-specific
- * params that should be stripped out.
- *
- * @param string $param A key or key/value pair within a URL's query (e.g.
- * 'foo=a', 'foo=', or 'foo'.
- *
- * @return boolean
- */
- protected function shouldRetainParam($param) {
- foreach (self::$DROP_QUERY_PARAMS as $drop_query_param) {
- if ($param === $drop_query_param ||
- strpos($param, $drop_query_param.'=') === 0) {
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * Analyzes the supplied result to see if it was thrown
- * because the access token is no longer valid. If that is
- * the case, then we destroy the session.
- *
- * @param array $result A record storing the error message returned
- * by a failed API call.
- */
- protected function throwAPIException($result) {
- $e = new FacebookApiException($result);
- switch ($e->getType()) {
- // OAuth 2.0 Draft 00 style
- case 'OAuthException':
- // OAuth 2.0 Draft 10 style
- case 'invalid_token':
- // REST server errors are just Exceptions
- case 'Exception':
- $message = $e->getMessage();
- if ((strpos($message, 'Error validating access token') !== false) ||
- (strpos($message, 'Invalid OAuth access token') !== false) ||
- (strpos($message, 'An active access token must be used') !== false)
- ) {
- $this->destroySession();
- }
- break;
- }
-
- throw $e;
- }
-
-
- /**
- * Prints to the error log if you aren't in command line mode.
- *
- * @param string $msg Log message
- */
- protected static function errorLog($msg) {
- // disable error log if we are running in a CLI environment
- // @codeCoverageIgnoreStart
- if (php_sapi_name() != 'cli') {
- error_log($msg);
- }
- // uncomment this if you want to see the errors on the page
- // print 'error_log: '.$msg."\n";
- // @codeCoverageIgnoreEnd
- }
-
- /**
- * Base64 encoding that doesn't need to be urlencode()ed.
- * Exactly the same as base64_encode except it uses
- * - instead of +
- * _ instead of /
- * No padded =
- *
- * @param string $input base64UrlEncoded input
- *
- * @return string The decoded string
- */
- protected static function base64UrlDecode($input) {
- return base64_decode(strtr($input, '-_', '+/'));
- }
-
- /**
- * Base64 encoding that doesn't need to be urlencode()ed.
- * Exactly the same as base64_encode except it uses
- * - instead of +
- * _ instead of /
- *
- * @param string $input The input to encode
- * @return string The base64Url encoded input, as a string.
- */
- protected static function base64UrlEncode($input) {
- $str = strtr(base64_encode($input), '+/', '-_');
- $str = str_replace('=', '', $str);
- return $str;
- }
-
- /**
- * Destroy the current session
- */
- public function destroySession() {
- $this->accessToken = null;
- $this->signedRequest = null;
- $this->user = null;
- $this->clearAllPersistentData();
-
- // Javascript sets a cookie that will be used in getSignedRequest that we
- // need to clear if we can
- $cookie_name = $this->getSignedRequestCookieName();
- if (array_key_exists($cookie_name, $_COOKIE)) {
- unset($_COOKIE[$cookie_name]);
- if (!headers_sent()) {
- $base_domain = $this->getBaseDomain();
- setcookie($cookie_name, '', 1, '/', '.'.$base_domain);
- } else {
- // @codeCoverageIgnoreStart
- self::errorLog(
- 'There exists a cookie that we wanted to clear that we couldn\'t '.
- 'clear because headers was already sent. Make sure to do the first '.
- 'API call before outputing anything.'
- );
- // @codeCoverageIgnoreEnd
- }
- }
- }
-
- /**
- * Parses the metadata cookie that our Javascript API set
- *
- * @return array an array mapping key to value
- */
- protected function getMetadataCookie() {
- $cookie_name = $this->getMetadataCookieName();
- if (!array_key_exists($cookie_name, $_COOKIE)) {
- return array();
- }
-
- // The cookie value can be wrapped in "-characters so remove them
- $cookie_value = trim($_COOKIE[$cookie_name], '"');
-
- if (empty($cookie_value)) {
- return array();
- }
-
- $parts = explode('&', $cookie_value);
- $metadata = array();
- foreach ($parts as $part) {
- $pair = explode('=', $part, 2);
- if (!empty($pair[0])) {
- $metadata[urldecode($pair[0])] =
- (count($pair) > 1) ? urldecode($pair[1]) : '';
- }
- }
-
- return $metadata;
- }
-
- /**
- * Finds whether the given domain is allowed or not
- *
- * @param string $big The value to be checked against $small
- * @param string $small The input string
- *
- * @return boolean Returns true if $big matches $small
- */
- protected static function isAllowedDomain($big, $small) {
- if ($big === $small) {
- return true;
- }
- return self::endsWith($big, '.'.$small);
- }
-
- /**
- * Checks if $big string ends with $small string
- *
- * @param string $big The value to be checked against $small
- * @param string $small The input string
- *
- * @return boolean true if $big ends with $small
- */
- protected static function endsWith($big, $small) {
- $len = strlen($small);
- if ($len === 0) {
- return true;
- }
- return substr($big, -$len) === $small;
- }
-
- /**
- * Each of the following four methods should be overridden in
- * a concrete subclass, as they are in the provided Facebook class.
- * The Facebook class uses PHP sessions to provide a primitive
- * persistent store, but another subclass--one that you implement--
- * might use a database, memcache, or an in-memory cache.
- *
- * @see Facebook
- */
-
- /**
- * Stores the given ($key, $value) pair, so that future calls to
- * getPersistentData($key) return $value. This call may be in another request.
- *
- * @param string $key
- * @param array $value
- *
- * @return void
- */
- abstract protected function setPersistentData($key, $value);
-
- /**
- * Get the data for $key, persisted by BaseFacebook::setPersistentData()
- *
- * @param string $key The key of the data to retrieve
- * @param boolean $default The default value to return if $key is not found
- *
- * @return mixed
- */
- abstract protected function getPersistentData($key, $default = false);
-
- /**
- * Clear the data with $key from the persistent storage
- *
- * @param string $key
- *
- * @return void
- */
- abstract protected function clearPersistentData($key);
-
- /**
- * Clear all data from the persistent storage
- *
- * @return void
- */
- abstract protected function clearAllPersistentData();
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/thirdparty/Facebook/facebook.php b/milfs/librerias/hybridauth/Hybrid/thirdparty/Facebook/facebook.php
deleted file mode 100644
index b6b827d..0000000
--- a/milfs/librerias/hybridauth/Hybrid/thirdparty/Facebook/facebook.php
+++ /dev/null
@@ -1,228 +0,0 @@
-initSharedSession();
-
- // re-load the persisted state, since parent
- // attempted to read out of non-shared cookie
- $state = $this->getPersistentData('state');
- if (!empty($state)) {
- $this->state = $state;
- } else {
- $this->state = null;
- }
-
- }
- }
-
- /**
- * Supported keys for persistent data
- *
- * @var array
- */
- protected static $kSupportedKeys =
- array('state', 'code', 'access_token', 'user_id');
-
- /**
- * Initiates Shared Session
- */
- protected function initSharedSession() {
- $cookie_name = $this->getSharedSessionCookieName();
- if (isset($_COOKIE[$cookie_name])) {
- $data = $this->parseSignedRequest($_COOKIE[$cookie_name]);
- if ($data && !empty($data['domain']) &&
- self::isAllowedDomain($this->getHttpHost(), $data['domain'])) {
- // good case
- $this->sharedSessionID = $data['id'];
- return;
- }
- // ignoring potentially unreachable data
- }
- // evil/corrupt/missing case
- $base_domain = $this->getBaseDomain();
- $this->sharedSessionID = md5(uniqid(mt_rand(), true));
- $cookie_value = $this->makeSignedRequest(
- array(
- 'domain' => $base_domain,
- 'id' => $this->sharedSessionID,
- )
- );
- $_COOKIE[$cookie_name] = $cookie_value;
- if (!headers_sent()) {
- $expire = time() + self::FBSS_COOKIE_EXPIRE;
- setcookie($cookie_name, $cookie_value, $expire, '/', '.'.$base_domain);
- } else {
- // @codeCoverageIgnoreStart
- self::errorLog(
- 'Shared session ID cookie could not be set! You must ensure you '.
- 'create the Facebook instance before headers have been sent. This '.
- 'will cause authentication issues after the first request.'
- );
- // @codeCoverageIgnoreEnd
- }
- }
-
- /**
- * Provides the implementations of the inherited abstract
- * methods. The implementation uses PHP sessions to maintain
- * a store for authorization codes, user ids, CSRF states, and
- * access tokens.
- */
-
- /**
- * {@inheritdoc}
- *
- * @see BaseFacebook::setPersistentData()
- */
- protected function setPersistentData($key, $value) {
- if (!in_array($key, self::$kSupportedKeys)) {
- self::errorLog('Unsupported key passed to setPersistentData.');
- return;
- }
-
- $session_var_name = $this->constructSessionVariableName($key);
- $_SESSION[$session_var_name] = $value;
- }
-
- /**
- * {@inheritdoc}
- *
- * @see BaseFacebook::getPersistentData()
- */
- protected function getPersistentData($key, $default = false) {
- if (!in_array($key, self::$kSupportedKeys)) {
- self::errorLog('Unsupported key passed to getPersistentData.');
- return $default;
- }
-
- $session_var_name = $this->constructSessionVariableName($key);
- return isset($_SESSION[$session_var_name]) ?
- $_SESSION[$session_var_name] : $default;
- }
-
- /**
- * {@inheritdoc}
- *
- * @see BaseFacebook::clearPersistentData()
- */
- protected function clearPersistentData($key) {
- if (!in_array($key, self::$kSupportedKeys)) {
- self::errorLog('Unsupported key passed to clearPersistentData.');
- return;
- }
-
- $session_var_name = $this->constructSessionVariableName($key);
- if (isset($_SESSION[$session_var_name])) {
- unset($_SESSION[$session_var_name]);
- }
- }
-
- /**
- * {@inheritdoc}
- *
- * @see BaseFacebook::clearAllPersistentData()
- */
- protected function clearAllPersistentData() {
- foreach (self::$kSupportedKeys as $key) {
- $this->clearPersistentData($key);
- }
- if ($this->sharedSessionID) {
- $this->deleteSharedSessionCookie();
- }
- }
-
- /**
- * Deletes Shared session cookie
- */
- protected function deleteSharedSessionCookie() {
- $cookie_name = $this->getSharedSessionCookieName();
- unset($_COOKIE[$cookie_name]);
- $base_domain = $this->getBaseDomain();
- setcookie($cookie_name, '', 1, '/', '.'.$base_domain);
- }
-
- /**
- * Returns the Shared session cookie name
- *
- * @return string The Shared session cookie name
- */
- protected function getSharedSessionCookieName() {
- return self::FBSS_COOKIE_NAME . '_' . $this->getAppId();
- }
-
- /**
- * Constructs and returns the name of the session key.
- *
- * @see setPersistentData()
- * @param string $key The key for which the session variable name to construct.
- *
- * @return string The name of the session key.
- */
- protected function constructSessionVariableName($key) {
- $parts = array('fb', $this->getAppId(), $key);
- if ($this->sharedSessionID) {
- array_unshift($parts, $this->sharedSessionID);
- }
- return implode('_', $parts);
- }
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/thirdparty/Facebook/fb_ca_chain_bundle.crt b/milfs/librerias/hybridauth/Hybrid/thirdparty/Facebook/fb_ca_chain_bundle.crt
deleted file mode 100644
index 969239f..0000000
--- a/milfs/librerias/hybridauth/Hybrid/thirdparty/Facebook/fb_ca_chain_bundle.crt
+++ /dev/null
@@ -1,3920 +0,0 @@
-##
-## ca-bundle.crt -- Bundle of CA Root Certificates
-##
-## Certificate data from Mozilla as of: Thu Oct 18 19:05:59 2012
-##
-## This is a bundle of X.509 certificates of public Certificate Authorities
-## (CA). These were automatically extracted from Mozilla's root certificates
-## file (certdata.txt). This file can be found in the mozilla source tree:
-## http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1
-##
-## It contains the certificates in PEM format and therefore
-## can be directly used with curl / libcurl / php_curl, or with
-## an Apache+mod_ssl webserver for SSL client authentication.
-## Just configure this file as the SSLCACertificateFile.
-##
-
-# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.86 $ $Date: 2012/10/18 16:26:52 $
-
-GTE CyberTrust Global Root
-==========================
------BEGIN CERTIFICATE-----
-MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg
-Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG
-A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz
-MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL
-Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0
-IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u
-sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql
-HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID
-AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW
-M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF
-NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
------END CERTIFICATE-----
-
-Thawte Server CA
-================
------BEGIN CERTIFICATE-----
-MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
-dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE
-AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j
-b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV
-BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u
-c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG
-A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
-ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl
-/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7
-1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR
-MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J
-GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ
-GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
------END CERTIFICATE-----
-
-Thawte Premium Server CA
-========================
------BEGIN CERTIFICATE-----
-MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
-dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
-AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
-ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
-AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
-VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
-aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
-cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
-aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
-Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
-qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
-SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
-8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
-UCemDaYj+bvLpgcUQg==
------END CERTIFICATE-----
-
-Equifax Secure CA
-=================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
-ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
-MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
-B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
-fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
-8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
-CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
-spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
-zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
-BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
-70+sB3c4
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 1
-=======================================
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE
-ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy
-MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs
-IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA
-A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE
-NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i
-o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo
-BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0
-dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
-IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY
-MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM
-BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB
-ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq
-kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4
-RbyhkwS7hp86W0N6w4pl
------END CERTIFICATE-----
-
-Digital Signature Trust Co. Global CA 3
-=======================================
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE
-ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy
-MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs
-IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA
-A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD
-VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS
-xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo
-BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0
-dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
-IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY
-MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM
-BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB
-AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi
-up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1
-mPnHfxsb1gYgAlihw6ID
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
-f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
-hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA
-TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah
-WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf
-Tqj/ZA1k
------END CERTIFICATE-----
-
-Verisign Class 1 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgd
-k4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIq
-WpDBucSmFc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9ZrbWB85a7FkCMM
-XErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2uluIncrKTdcu1OofdPvAbT6shkdHvC
-lUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68DzFc6PLZ
------END CERTIFICATE-----
-
-Verisign Class 2 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h
-cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp
-Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
-c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h
-cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp
-Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
-c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjx
-nNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRC
-wiNPStjwDqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEA
-ATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/7aHmZuovCfTK
-1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAXrXfMSTWqz9iP0b63GJZHc2pUIjRk
-LbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnInjBJ7xUS0rg==
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G2
-============================================================
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln
-biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz
-dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO
-FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71
-lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB
-MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT
-1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD
-Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9
------END CERTIFICATE-----
-
-GlobalSign Root CA
-==================
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
-GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
-b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
-BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
-VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
-DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
-THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
-Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
-c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
-gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
-AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
-Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
-j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
-hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
-X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-
-GlobalSign Root CA - R2
-=======================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
-ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
-s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
-S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
-TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
-ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
-FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
-YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
-BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
-9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
-01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
-9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-
-ValiCert Class 1 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy
-MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi
-GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm
-DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG
-lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX
-icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP
-Orf1LXLI
------END CERTIFICATE-----
-
-ValiCert Class 2 VA
-===================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
-MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC
-CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf
-ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ
-SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV
-UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8
-W9ViH0Pd
------END CERTIFICATE-----
-
-RSA Root Certificate 1
-======================
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp
-b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh
-bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw
-MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0
-d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg
-UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0
-LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td
-3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H
-BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs
-3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF
-V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r
-on+jjBXu
------END CERTIFICATE-----
-
-Verisign Class 1 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/E
-bRrsC+MO8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJ
-rKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7PoBMAGrgnoeS+
-Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP26KbqxzcSXKMpHgLZ2x87tNcPVkeB
-FQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-q2aN17O6x5q25lXQBfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N
-y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3
-ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrspSCAaWihT37h
-a88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/Pc
-D98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g==
------END CERTIFICATE-----
-
-Verisign Class 2 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYTAlVT
-MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y
-azE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ug
-b25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0
-aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
-c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
-aXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6
-tW8UvxDOJxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7
-C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQHgiBVrKtaaNS
-0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjNqWm6o+sdDZykIKbBoMXRRkwXbdKs
-Zj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0
-JhU8wI1NQ0kdvekhktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf
-0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
-sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RIsH/7NiXaldDx
-JBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//j
-GHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
-EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
-cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
-EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
-055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
-j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
-xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
-t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
-tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
-8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
-Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
-Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
-mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
-RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
-UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
-Entrust.net Secure Server CA
-============================
------BEGIN CERTIFICATE-----
-MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV
-BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg
-cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl
-ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG
-A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi
-eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p
-dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ
-aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5
-gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw
-ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw
-CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l
-dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
-bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
-dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw
-NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow
-HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA
-BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN
-Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9
-n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
-
-Entrust.net Premium 2048 Secure Server CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
-bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
-NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
-d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
-ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
-Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
-hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
-nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
-VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC
-AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER
-gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B
-AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo
-oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS
-o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z
-2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX
-OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ==
------END CERTIFICATE-----
-
-Baltimore CyberTrust Root
-=========================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
-ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
-ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
-SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
-dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
-uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
-UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
-G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
-XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
-l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
-VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
-BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
-cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
-hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
-Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
-RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-Equifax Secure Global eBusiness CA
-==================================
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
-bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
-HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
-b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
-PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
-qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
-hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
-BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
-MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
-I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
-NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
-
-Equifax Secure eBusiness CA 1
-=============================
------BEGIN CERTIFICATE-----
-MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB
-LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE
-ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz
-IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ
-1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a
-IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk
-MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW
-Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF
-AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5
-lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+
-KpYrtWKmpj29f5JZzVoqgrI3eQ==
------END CERTIFICATE-----
-
-Equifax Secure eBusiness CA 2
-=============================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE
-ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y
-MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
-DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn
-2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5
-BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx
-JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e
-uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1
-jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia
-78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm
-V+GRMOrN
------END CERTIFICATE-----
-
-AddTrust Low-Value Services Root
-================================
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
-cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
-CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
-ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
-54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
-oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
-Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
-GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
-HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
-AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
-HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
-ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
-iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
-mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
-ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
-AddTrust External Root
-======================
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
-VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
-NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
-cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
-Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
-+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
-Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
-aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
-2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
-7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
-VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
-VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
-j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
-e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
-G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
-AddTrust Public Services Root
-=============================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
-cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
-BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
-dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
-nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
-d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
-Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
-HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
-A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
-A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
-JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
-+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
-Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
-EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
-AddTrust Qualified Certificates Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
-cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
-CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
-IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
-64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
-KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
-L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
-wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
-MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
-BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
-azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
-GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
-RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
-iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
------END CERTIFICATE-----
-
-Entrust Root Certification Authority
-====================================
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
-b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
-A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
-MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
-MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
-Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
-dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
-A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
-Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
-j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
-rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
-MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
-hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
-Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
-v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
-W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
-tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-
-RSA Security 2048 v3
-====================
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
-ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
-MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
-BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
-Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
-WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
-KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
-+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
-MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
-FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
-v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
-0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
-VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
-nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
-pKnXwiJPZ9d37CAFYd4=
------END CERTIFICATE-----
-
-GeoTrust Global CA
-==================
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
-MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
-BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
-8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
-T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
-vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
-AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
-DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
-zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
-d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
-mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
-XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
-Mw==
------END CERTIFICATE-----
-
-GeoTrust Global CA 2
-====================
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
-MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
-NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
-LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
-Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
-HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
-K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
-srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
-ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
-OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
-x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
-H4z1Ir+rzoPz4iIprn2DQKi6bA==
------END CERTIFICATE-----
-
-GeoTrust Universal CA
-=====================
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
-MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
-Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
-JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
-RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
-7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
-8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
-qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
-Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
-Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
-KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
-ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
-XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
-hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
-qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
-oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
-xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
-KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
-DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
-xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
-p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
-P/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-
-GeoTrust Universal CA 2
-=======================
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
-MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
-SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
-DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
-j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
-JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
-QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
-WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
-20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
-ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
-SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
-8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
-+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
-BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
-4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
-mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
-A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
-Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
-pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
-FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
-gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
-X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-
-UTN-USER First-Network Applications
-===================================
------BEGIN CERTIFICATE-----
-MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUFADCBozELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzAp
-BgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0ODM5
-WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5T
-YWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBB
-cHBsaWNhdGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZVhawGNFug
-mliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAbGHNhSuh+zdMvZOOmfAz6F4Cj
-DUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZNaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXu
-Ozr0hAReYFmnjDRy7rh4xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwi
-P8vv/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7igEL66S/ozjIE
-j3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8w
-HQYDVR0OBBYEFPqGydvguul49Uuo1hXf8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9j
-cmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G
-CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXhi6r/fWRRzwr/vH3Y
-IWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUqf9FuVSTiuwL7MT++6LzsQCv4AdRWOOTK
-RIK1YSAhZ2X28AvnNPilwpyjXEAfhZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4Qp
-xFq9ZFdyrTvPNximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+FTAq
-DbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjisH8SE
------END CERTIFICATE-----
-
-America Online Root Certification Authority 1
-=============================================
------BEGIN CERTIFICATE-----
-MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG
-A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
-T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG
-v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z
-DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh
-sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP
-8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T
-AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z
-o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf
-GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF
-VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft
-3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
-Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
-sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
------END CERTIFICATE-----
-
-America Online Root Certification Authority 2
-=============================================
------BEGIN CERTIFICATE-----
-MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp
-Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG
-A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg
-T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en
-fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8
-f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO
-qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN
-RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0
-gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn
-6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid
-FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6
-Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj
-B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op
-aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
-AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY
-T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p
-+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg
-JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy
-zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO
-ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh
-1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf
-GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff
-Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP
-cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk=
------END CERTIFICATE-----
-
-Visa eCommerce Root
-===================
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
-EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
-QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
-WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
-VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
-F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
-RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
-TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
-/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
-GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
-MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
-CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
-YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
-zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
-YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
-Certum Root CA
-==============
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
-ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
-Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
-by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
-wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
-kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
-89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
-Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
-NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
-hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
-GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
-GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
-0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
-qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-
-Comodo AAA Services root
-========================
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
-MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
-c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
-BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
-C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
-i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
-Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
-Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
-Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
-BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
-cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
-LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
-7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
-8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
-12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
-Comodo Secure Services root
-===========================
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
-MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
-Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
-BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
-9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
-rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
-oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
-p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
-FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
-YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
-aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
-4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
-DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
-pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
-RR3B7Hzs/Sk=
------END CERTIFICATE-----
-
-Comodo Trusted Services root
-============================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
-MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
-bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
-IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
-3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
-/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
-juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
-ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
-DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
-ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
-cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
-uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
-BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
-R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
-9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-
-QuoVadis Root CA
-================
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
-ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
-MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
-cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
-EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
-J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
-F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
-YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
-AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
-PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
-ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
-MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
-YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
-Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
-BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
-FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
-tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
-fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
-LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
-gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
-5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
-5nrQNiOKSnQ2+Q==
------END CERTIFICATE-----
-
-QuoVadis Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
-ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
-XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
-lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
-lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
-lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
-66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
-wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
-D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
-BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
-J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
-DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
-a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
-Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
-UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
-VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
-+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
-IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
-WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
-f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
-4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
-VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
-
-QuoVadis Root CA 3
-==================
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
-OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
-DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
-KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
-DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
-BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
-p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
-nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
-MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
-Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
-uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
-BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
-YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
-BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
-VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
-ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
-AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
-qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
-hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
-POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
-Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
-8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
-bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
-g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
-vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
-qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
-
-Security Communication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
-8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
-DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
-5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
-DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
-JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
-0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
-mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
-s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
-6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
-FL39vmwLAw==
------END CERTIFICATE-----
-
-Sonera Class 1 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQw
-NjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H88
-7dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9
-EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl
-0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF645
-2F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW1ebZrgUa
-HXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZT
-iFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE9
-28Jj2VuXZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxV
-yhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2nBBhjrZTOqMR
-vq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2UvkVrCqIexVmiUefkl98HVrhq4uz2P
-qYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9Z
-IRlXvVWa
------END CERTIFICATE-----
-
-Sonera Class 2 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
-NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
-/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
-dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
-f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
-tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
-nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
-XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
-0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
-cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
-Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
-EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
-llpwrN9M
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA
-=============================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
-ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
-HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
-bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
-vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
-jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
-C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
-vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
-22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
-HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
-dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
-BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
-EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
-MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
-nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-
-TDC Internet Root CA
-====================
------BEGIN CERTIFICATE-----
-MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE
-ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx
-NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu
-ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j
-xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL
-znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc
-5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6
-otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI
-AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM
-VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM
-MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC
-AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe
-UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G
-CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m
-gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+
-2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb
-O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU
-Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l
------END CERTIFICATE-----
-
-TDC OCES Root CA
-================
------BEGIN CERTIFICATE-----
-MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJESzEMMAoGA1UE
-ChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wMzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5
-MzBaMDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSjhFuH
-nEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8z3sM8W9Hpg1DTeLpHTk0
-zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJHhNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvV
-iGjaXbXqzRowwYCDdlCqT9HU3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBde
-dObaE+3pHx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTwtyv6e1mO
-3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgewGA1UdIASB
-5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5k
-ay9yZXBvc2l0b3J5MIGdBggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBm
-cmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4xLiBDZXJ0aWZp
-Y2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x
-LjARBglghkgBhvhCAQEEBAMCAAcwgYEGA1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEM
-MAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm
-aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0QBCQwIoAPMjAwMzAy
-MTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0jBBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647
-+RIwHQYDVR0OBBYEFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6
-NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBuo7E4
-A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjNDfZziChmPyQE+dF10yYsc
-A+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8AqtFxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9
-AOoBmbgGglGBTvH1tJFUuSN6AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1
-AoLbrIyigfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2LqL19iUw==
------END CERTIFICATE-----
-
-UTN DATACorp SGC Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
-BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
-MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
-HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
-dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
-raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
-wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
-9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
-33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
-DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
-BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
-LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
-DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
-I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
-EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
-DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
-UTN USERFirst Email Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0
-BgNVBAMTLVVUTi1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05
-OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQx
-FzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx
-ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJz
-dC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIx
-B8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8
-om+rWV6lL8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHG
-TPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7Nl
-yP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4G5MIG2MAsGA1UdDwQE
-AwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNV
-HR8EUTBPME2gS6BJhkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll
-bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH
-AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u7mFVbwQ+zzne
-xRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+
-5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarV
-NZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZ
-w7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ=
------END CERTIFICATE-----
-
-UTN USERFirst Hardware Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
-BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
-OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
-eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
-ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
-wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
-tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
-i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
-Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
-gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
-lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
-UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
-BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
-XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
-lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
-iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
-nfhmqA==
------END CERTIFICATE-----
-
-UTN USERFirst Object Root CA
-============================
------BEGIN CERTIFICATE-----
-MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAb
-BgNVBAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAz
-NlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkx
-HjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2Vy
-dHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r5596Uj71VR
-loTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQ
-w5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vu
-lBe3/IW+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7
-RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEAAaOBrzCBrDAL
-BgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2u1kdBScFDyr3ZmpvVsoTYs8
-ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmly
-c3QtT2JqZWN0LmNybDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw
-DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw
-NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNO
-PmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFE
-qmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCG
-hU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g=
------END CERTIFICATE-----
-
-Camerfirma Chambers of Commerce Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
-NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
-cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
-MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
-AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
-xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
-NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
-DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
-d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
-EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
-cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
-AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
-bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
-VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
-fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
-L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
-UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
-ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
-erfutGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-
-Camerfirma Global Chambersign Root
-==================================
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
-NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
-YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
-MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
-ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
-1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
-by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
-6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
-8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
-BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
-aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
-Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
-aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
-ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
-PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
-gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
-PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
-IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
-t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-
-NetLock Qualified (Class QA) Root
-=================================
------BEGIN CERTIFICATE-----
-MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQDEzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVn
-eXpvaSAoQ2xhc3MgUUEpIFRhbnVzaXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0
-bG9jay5odTAeFw0wMzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTER
-MA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0
-LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5ldExvY2sgTWlub3NpdGV0
-dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZhbnlraWFkbzEeMBwGCSqGSIb3DQEJARYP
-aW5mb0BuZXRsb2NrLmh1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRV
-CacbvWy5FPSKAtt2/GoqeKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e
-8ia6AFQer7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO53Lhb
-m+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWdvLrqOU+L73Sa58XQ
-0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0lmT+1fMptsK6ZmfoIYOcZwvK9UdPM
-0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4ICwDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
-HQ8BAf8EBAMCAQYwggJ1BglghkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2
-YW55IGEgTmV0TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh
-biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQgZWxla3Ryb25p
-a3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywgdmFsYW1pbnQgZWxmb2dhZGFz
-YW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwg
-YXogQWx0YWxhbm9zIFN6ZXJ6b2Rlc2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kg
-ZWxqYXJhcyBtZWd0ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczov
-L3d3dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0BuZXRsb2Nr
-Lm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0
-aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMg
-YXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0
-IGluZm9AbmV0bG9jay5uZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3
-DQEBBQUAA4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQMznN
-wNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+NFAwLvt/MpqNPfMg
-W/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCRVCHnpgu0mfVRQdzNo0ci2ccBgcTc
-R08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR
-5qq5aKrN9p2QdRLqOBrKROi3macqaJVmlaut74nLYKkGEsaUR+ko
------END CERTIFICATE-----
-
-NetLock Notary (Class A) Root
-=============================
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
-EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
-ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
-DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
-EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
-VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
-cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
-D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
-z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
-/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
-tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
-4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
-A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
-Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
-bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
-LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
-ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
-IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
-IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
-b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
-bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
-Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
-bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
-ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
-ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
-CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
-KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
-8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-
-NetLock Business (Class B) Root
-===============================
------BEGIN CERTIFICATE-----
-MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg
-VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD
-VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv
-bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg
-VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
-iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S
-o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr
-1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV
-HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ
-RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh
-dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0
-ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv
-c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg
-YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh
-c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz
-Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA
-bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl
-IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2
-YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj
-cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM
-43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR
-stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI
------END CERTIFICATE-----
-
-NetLock Express (Class C) Root
-==============================
------BEGIN CERTIFICATE-----
-MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT
-CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV
-BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD
-KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ
-BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j
-ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB
-jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z
-W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63
-euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw
-DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN
-RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn
-YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB
-IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i
-aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0
-ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs
-ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo
-dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y
-emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k
-IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ
-UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg
-YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2
-xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW
-gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A==
------END CERTIFICATE-----
-
-XRamp Global CA Root
-====================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
-BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
-dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
-HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
-U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
-IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
-foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
-zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
-AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
-xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
-oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
-AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
-/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
-nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
-8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-
-Go Daddy Class 2 CA
-===================
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
-VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
-A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
-RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
-ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
-2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
-qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
-YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
-vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
-BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
-atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
-MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
-PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
-I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
-Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
-vZ8=
------END CERTIFICATE-----
-
-Starfield Class 2 CA
-====================
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
-U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
-MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
-A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
-SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
-bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
-JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
-epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
-F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
-MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
-hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
-bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
-afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
-PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
-KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
-QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
-YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
-AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
-Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
-U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
-LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
-cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
-dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
-AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
-3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
-vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
-fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
-fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
-EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
-1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
-lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
-g14=
------END CERTIFICATE-----
-
-Taiwan GRCA
-===========
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
-EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
-DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
-dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
-w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
-BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
-1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
-htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
-J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
-Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
-B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
-O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
-lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
-HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
-09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
-Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
-Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
-D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
-DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
-Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
-7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
-CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
-+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
------END CERTIFICATE-----
-
-Firmaprofesional Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT
-GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp
-Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA
-ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL
-MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT
-OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2
-ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V
-j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH
-lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf
-3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8
-NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww
-KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG
-AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud
-DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD
-ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq
-u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf
-wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm
-7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG
-VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA=
------END CERTIFICATE-----
-
-Wells Fargo Root CA
-===================
------BEGIN CERTIFICATE-----
-MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV
-BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv
-cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl
-bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv
-MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX
-x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3
-E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5
-OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j
-sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj
-YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF
-BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD
-ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv
-m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R
-OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx
-x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023
-tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s=
------END CERTIFICATE-----
-
-Swisscom Root CA 1
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
-MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
-MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
-NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
-AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
-b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
-7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
-cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
-WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
-haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
-MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
-MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
-jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
-MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
-VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
-vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
-OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
-1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
-nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
-x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
-NY6E0F/6MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
-MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
-9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
-UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
-/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
-oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
-GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
-66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
-hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
-EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
-SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
-8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-
-DigiCert Global Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
-MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
-TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
-BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
-4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
-7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
-o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
-8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
-BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
-EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
-tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
-UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-
-DigiCert High Assurance EV Root CA
-==================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
-KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
-MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
-MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
-Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
-Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
-OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
-MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
-NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
-h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
-Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
-JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
-V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
-myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
-mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
------END CERTIFICATE-----
-
-Certplus Class 2 Primary CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
-BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
-OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
-dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
-5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
-Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
-YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
-e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
-CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
-YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
-L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
-P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
-TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
-7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
-//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-
-DST Root CA X3
-==============
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
-ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
-DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
-cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
-rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
-UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
-xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
-utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
-MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
-dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
-GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
-RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
-fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
-DST ACES CA X6
-==============
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
-MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
-MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
-CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
-DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
-pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
-GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
-MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
-Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
-dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
-CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
-5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
-Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
-vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
-oKfN5XozNmr6mis=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 1
-==============================================
------BEGIN CERTIFICATE-----
-MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
-MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
-acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
-MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
-U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
-TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
-aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
-yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
-Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
-8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
-W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
-BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
-sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
-q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
-B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
-nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
-MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
-dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
-LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
-x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
-QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
-5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
-AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
-Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
-hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
-9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
-UrbnBEI=
------END CERTIFICATE-----
-
-SwissSign Platinum CA - G2
-==========================
------BEGIN CERTIFICATE-----
-MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCQ0gxFTAT
-BgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWduIFBsYXRpbnVtIENBIC0gRzIw
-HhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAwWjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMM
-U3dpc3NTaWduIEFHMSMwIQYDVQQDExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJ
-KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu
-669yIIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2HtnIuJpX+UF
-eNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+6ixuEFGSzH7VozPY1kne
-WCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5objM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIo
-j5+saCB9bzuohTEJfwvH6GXp43gOCWcwizSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/6
-8++QHkwFix7qepF6w9fl+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34T
-aNhxKFrYzt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaPpZjy
-domyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtFKwH3HBqi7Ri6Cr2D
-+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuWae5ogObnmLo2t/5u7Su9IPhlGdpV
-CX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMBAAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCv
-zAeHFUdvOMW0ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW
-IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUAA4ICAQAIhab1
-Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0uMoI3LQwnkAHFmtllXcBrqS3
-NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4
-U99REJNi54Av4tHgvI42Rncz7Lj7jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8
-KV2LwUvJ4ooTHbG/u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl
-9x8DYSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1puEa+S1B
-aYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXaicYwu+uPyyIIoK6q8QNs
-OktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbGDI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSY
-Mdp08YSTcU1f+2BY0fvEwW2JorsgH51xkcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAci
-IfNAChs0B0QTwoRqjt8ZWr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g==
------END CERTIFICATE-----
-
-SwissSign Gold CA - G2
-======================
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
-EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
-MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
-c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
-t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
-jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
-vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
-ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
-AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
-jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
-peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
-7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
-GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
-OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
-5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
-44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
-Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
-Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
-mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
-vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
-KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
-NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
-viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
-
-SwissSign Silver CA - G2
-========================
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
-BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
-DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
-aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
-9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
-N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
-+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
-6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
-MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
-qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
-FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
-ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
-celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
-CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
-tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
-4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
-kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
-3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
-/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
-DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
-e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
-WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
-DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
-DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority
-========================================
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
-CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
-cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
-b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
-nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
-RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
-tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
-hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
-Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
-NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
-Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
-1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-
-thawte Primary Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
-MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
-SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
-KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
-FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
-oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
-1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
-q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
-aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
-afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
-AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
-uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
-jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
-z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G5
-============================================================
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
-dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
-j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
-Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
-Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
-fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
-BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
-Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
-SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
-X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
-KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
-Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
-ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-
-SecureTrust CA
-==============
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
-dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
-BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
-OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
-DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
-GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
-01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
-ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
-aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
-SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
-mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
-nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-
-Secure Global CA
-================
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
-bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
-MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
-Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
-YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
-bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
-8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
-HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
-0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
-oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
-MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
-OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
-CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
-3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-
-COMODO Certification Authority
-==============================
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
-MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
-T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
-+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
-xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
-4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
-1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
-rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
-b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
-AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
-OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
-IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
-+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
------END CERTIFICATE-----
-
-Network Solutions Certificate Authority
-=======================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
-EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
-IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
-MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
-jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
-aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
-crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
-/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
-AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
-bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
-A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
-4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
-GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
-ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
-WellsSecure Public Root Certificate Authority
-=============================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
-F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
-NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
-bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
-VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
-iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
-i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
-bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
-K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
-AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
-cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
-lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
-i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
-GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
-K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
-bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
-qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
-E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
-tylv2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
-
-COMODO ECC Certification Authority
-==================================
------BEGIN CERTIFICATE-----
-MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
-R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
-ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
-GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
-Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
-4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
-wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
-FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
-U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
------END CERTIFICATE-----
-
-IGC/A
-=====
------BEGIN CERTIFICATE-----
-MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
-VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
-Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
-MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
-EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
-STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
-TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
-So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
-HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
-frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
-tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
-egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
-iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
-q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
-MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
-Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
-lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
-0mBWWg==
------END CERTIFICATE-----
-
-Security Communication EV RootCA1
-=================================
------BEGIN CERTIFICATE-----
-MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
-BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
-Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
-/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
-WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
-ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
-bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
-9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
-SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
-iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
-Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
-mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
-T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
------END CERTIFICATE-----
-
-OISTE WISeKey Global Root GA CA
-===============================
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
-BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
-A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
-bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
-VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
-IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
-IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
-Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
-Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
-d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
-/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
-LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
-MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
-+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
-okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
------END CERTIFICATE-----
-
-S-TRUST Authentication and Encryption Root CA 2005 PN
-=====================================================
------BEGIN CERTIFICATE-----
-MIIEezCCA2OgAwIBAgIQNxkY5lNUfBq1uMtZWts1tzANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE
-BhMCREUxIDAeBgNVBAgTF0JhZGVuLVd1ZXJ0dGVtYmVyZyAoQlcpMRIwEAYDVQQHEwlTdHV0dGdh
-cnQxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fzc2VuIFZlcmxhZyBHbWJIMT4wPAYDVQQDEzVT
-LVRSVVNUIEF1dGhlbnRpY2F0aW9uIGFuZCBFbmNyeXB0aW9uIFJvb3QgQ0EgMjAwNTpQTjAeFw0w
-NTA2MjIwMDAwMDBaFw0zMDA2MjEyMzU5NTlaMIGuMQswCQYDVQQGEwJERTEgMB4GA1UECBMXQmFk
-ZW4tV3VlcnR0ZW1iZXJnIChCVykxEjAQBgNVBAcTCVN0dXR0Z2FydDEpMCcGA1UEChMgRGV1dHNj
-aGVyIFNwYXJrYXNzZW4gVmVybGFnIEdtYkgxPjA8BgNVBAMTNVMtVFJVU1QgQXV0aGVudGljYXRp
-b24gYW5kIEVuY3J5cHRpb24gUm9vdCBDQSAyMDA1OlBOMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEA2bVKwdMz6tNGs9HiTNL1toPQb9UY6ZOvJ44TzbUlNlA0EmQpoVXhOmCTnijJ4/Ob
-4QSwI7+Vio5bG0F/WsPoTUzVJBY+h0jUJ67m91MduwwA7z5hca2/OnpYH5Q9XIHV1W/fuJvS9eXL
-g3KSwlOyggLrra1fFi2SU3bxibYs9cEv4KdKb6AwajLrmnQDaHgTncovmwsdvs91DSaXm8f1Xgqf
-eN+zvOyauu9VjxuapgdjKRdZYgkqeQd3peDRF2npW932kKvimAoA0SVtnteFhy+S8dF2g08LOlk3
-KC8zpxdQ1iALCvQm+Z845y2kuJuJja2tyWp9iRe79n+Ag3rm7QIDAQABo4GSMIGPMBIGA1UdEwEB
-/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTVFJv
-bmxpbmUxLTIwNDgtNTAdBgNVHQ4EFgQUD8oeXHngovMpttKFswtKtWXsa1IwHwYDVR0jBBgwFoAU
-D8oeXHngovMpttKFswtKtWXsa1IwDQYJKoZIhvcNAQEFBQADggEBAK8B8O0ZPCjoTVy7pWMciDMD
-pwCHpB8gq9Yc4wYfl35UvbfRssnV2oDsF9eK9XvCAPbpEW+EoFolMeKJ+aQAPzFoLtU96G7m1R08
-P7K9n3frndOMusDXtk3sU5wPBG7qNWdX4wple5A64U8+wwCSersFiXOMy6ZNwPv2AtawB6MDwidA
-nwzkhYItr5pCHdDHjfhA7p0GVxzZotiAFP7hYy0yh9WUUpY6RsZxlj33mA6ykaqP2vROJAA5Veit
-F7nTNCtKqUDMFypVZUF0Qn71wK/Ik63yGFs9iQzbRzkk+OBM8h+wPQrKBU6JIRrjKpms/H+h8Q8b
-Hz2eBIPdltkdOpQ=
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA
-=========================
------BEGIN CERTIFICATE-----
-MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
-BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
-EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
-MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
-dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
-GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
-d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
-oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
-QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
-PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
-MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
-IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
-VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
-LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
-dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
-AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
-4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
-AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
-egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
-Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
-PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
-c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
-cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
-IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
-WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
-MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
-MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
-Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
-HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
-nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
-aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
-86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
-yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
-S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
------END CERTIFICATE-----
-
-Certigna
-========
------BEGIN CERTIFICATE-----
-MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
-EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
-MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
-Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
-XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
-GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
-ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
-DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
-Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
-tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
-BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
-SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
-hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
-ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
-PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
-1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
-WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
------END CERTIFICATE-----
-
-AC Ra\xC3\xADz Certic\xC3\xA1mara S.A.
-======================================
------BEGIN CERTIFICATE-----
-MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT
-AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg
-LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w
-HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+
-U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh
-IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN
-yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU
-2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3
-4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP
-2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm
-8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf
-HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa
-Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK
-5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b
-czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
-AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g
-ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF
-BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug
-cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf
-AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX
-EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v
-/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3
-MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4
-3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk
-eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f
-/RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h
-RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU
-Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ==
------END CERTIFICATE-----
-
-TC TrustCenter Class 2 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
-IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
-MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
-c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
-AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
-IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
-xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
-Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
-SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
-7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
-Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
-cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
-SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
-dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
-KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
-TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
-JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
-vQ==
------END CERTIFICATE-----
-
-TC TrustCenter Class 3 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
-IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw
-MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
-c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE
-AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W
-yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo
-6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ
-uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk
-2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB
-7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
-Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
-cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
-SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE
-O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8
-yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9
-IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal
-092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc
-5A==
------END CERTIFICATE-----
-
-TC TrustCenter Universal CA I
-=============================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
-IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
-MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
-VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
-JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
-qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
-xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
-ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
-gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
-BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
-1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
-vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
-ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
-ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
-7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
------END CERTIFICATE-----
-
-Deutsche Telekom Root CA 2
-==========================
------BEGIN CERTIFICATE-----
-MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
-RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
-A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
-MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
-A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
-b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
-bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
-KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
-AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
-Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
-jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
-HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
-E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
-zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
-rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
-dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
-Cm26OWMohpLzGITY+9HPBVZkVw==
------END CERTIFICATE-----
-
-ComSign CA
-==========
------BEGIN CERTIFICATE-----
-MIIDkzCCAnugAwIBAgIQFBOWgxRVjOp7Y+X8NId3RDANBgkqhkiG9w0BAQUFADA0MRMwEQYDVQQD
-EwpDb21TaWduIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0wNDAzMjQxMTMy
-MThaFw0yOTAzMTkxNTAyMThaMDQxEzARBgNVBAMTCkNvbVNpZ24gQ0ExEDAOBgNVBAoTB0NvbVNp
-Z24xCzAJBgNVBAYTAklMMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8ORUaSvTx49q
-ROR+WCf4C9DklBKK8Rs4OC8fMZwG1Cyn3gsqrhqg455qv588x26i+YtkbDqthVVRVKU4VbirgwTy
-P2Q298CNQ0NqZtH3FyrV7zb6MBBC11PN+fozc0yz6YQgitZBJzXkOPqUm7h65HkfM/sb2CEJKHxN
-GGleZIp6GZPKfuzzcuc3B1hZKKxC+cX/zT/npfo4sdAMx9lSGlPWgcxCejVb7Us6eva1jsz/D3zk
-YDaHL63woSV9/9JLEYhwVKZBqGdTUkJe5DSe5L6j7KpiXd3DTKaCQeQzC6zJMw9kglcq/QytNuEM
-rkvF7zuZ2SOzW120V+x0cAwqTwIDAQABo4GgMIGdMAwGA1UdEwQFMAMBAf8wPQYDVR0fBDYwNDAy
-oDCgLoYsaHR0cDovL2ZlZGlyLmNvbXNpZ24uY28uaWwvY3JsL0NvbVNpZ25DQS5jcmwwDgYDVR0P
-AQH/BAQDAgGGMB8GA1UdIwQYMBaAFEsBmz5WGmU2dst7l6qSBe4y5ygxMB0GA1UdDgQWBBRLAZs+
-VhplNnbLe5eqkgXuMucoMTANBgkqhkiG9w0BAQUFAAOCAQEA0Nmlfv4pYEWdfoPPbrxHbvUanlR2
-QnG0PFg/LUAlQvaBnPGJEMgOqnhPOAlXsDzACPw1jvFIUY0McXS6hMTXcpuEfDhOZAYnKuGntewI
-mbQKDdSFc8gS4TXt8QUxHXOZDOuWyt3T5oWq8Ir7dcHyCTxlZWTzTNity4hp8+SDtwy9F1qWF8pb
-/627HOkthIDYIb6FUtnUdLlphbpN7Sgy6/lhSuTENh4Z3G+EER+V9YMoGKgzkkMn3V0TBEVPh9VG
-zT2ouvDzuFYkRes3x+F2T3I5GN9+dHLHcy056mDmrRGiVod7w2ia/viMcKjfZTL0pECMocJEAw6U
-AGegcQCCSA==
------END CERTIFICATE-----
-
-ComSign Secured CA
-==================
------BEGIN CERTIFICATE-----
-MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
-AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
-NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
-QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
-49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
-7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
-kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
-9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
-AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
-U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
-j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
-AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
-BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
-FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
-51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
-OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
------END CERTIFICATE-----
-
-Cybertrust Global Root
-======================
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
-ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
-MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
-ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
-+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
-0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
-AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
-89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
-8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
-MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
-A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
-lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
-5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
-hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
-X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
-WL1WMRJOEcgh4LMRkWXbtKaIOM5V
------END CERTIFICATE-----
-
-ePKI Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
-EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
-Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
-MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
-MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
-IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
-lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
-qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
-12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
-WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
-ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
-lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
-vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
-Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
-MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
-ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
-1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
-KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
-xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
-NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
-GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
-xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
-gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
-sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
-BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
------END CERTIFICATE-----
-
-T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
-=============================================================================================================================
------BEGIN CERTIFICATE-----
-MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
-DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
-aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
-b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
-BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
-S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
-MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
-IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
-n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
-IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
-dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
-cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
-Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
-xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
-6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
-hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
-BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
-N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
-y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
-LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
-dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
------END CERTIFICATE-----
-
-Buypass Class 2 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
-MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
-c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
-cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
-0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
-0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
-uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
-AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
-1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
-7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
-fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
-wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
------END CERTIFICATE-----
-
-Buypass Class 3 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
-MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
-c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
-ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
-n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
-AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
-1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
-AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
-pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
-EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
-htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
-el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
------END CERTIFICATE-----
-
-EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
-==========================================================================
------BEGIN CERTIFICATE-----
-MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
-QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
-Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
-ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
-IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
-X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
-gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
-eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
-TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
-Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
-uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
-qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
-ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
-Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
-Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
-FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
-zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
-XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
-bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
-RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
-1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
-2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
-Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
-AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
------END CERTIFICATE-----
-
-certSIGN ROOT CA
-================
------BEGIN CERTIFICATE-----
-MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
-VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
-Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
-CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
-JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
-rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
-ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
-0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
-AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
-Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
-AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
-SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
-x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
-vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
-TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
------END CERTIFICATE-----
-
-CNNIC ROOT
-==========
------BEGIN CERTIFICATE-----
-MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
-ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
-OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
-o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
-VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
-VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
-czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
-y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
-wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
-lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
-Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
-O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
-BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
-G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
-mxE=
------END CERTIFICATE-----
-
-ApplicationCA - Japanese Government
-===================================
------BEGIN CERTIFICATE-----
-MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
-SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
-MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
-cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
-fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
-wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
-jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
-nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
-WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
-BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
-vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
-o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
-/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
-io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
-dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
-rosot4LKGAfmt1t06SAZf7IbiVQ=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G3
-=============================================
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
-IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
-NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
-YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
-LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
-K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
-c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
-IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
-dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
-2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
-cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
-Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
-t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
-
-thawte Primary Root CA - G2
-===========================
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
-VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
-IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
-Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
-MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
-b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
-IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
-LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
-8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
-mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
-G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
-rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
-
-thawte Primary Root CA - G3
-===========================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
-ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
-VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
-A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
-P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
-+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
-7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
-vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
-KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
-A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
-8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
-er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G2
-=============================================
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
-Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
-OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
-b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
-BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
-KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
-EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
-ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
-npaqBA+K
------END CERTIFICATE-----
-
-VeriSign Universal Root Certification Authority
-===============================================
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
-1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
-MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
-9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
-AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
-tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
-CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
-a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
-Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
-Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
-P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
-wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
-mJO37M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G4
-============================================================
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
-VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
-b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
-ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
-cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
-b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
-Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
-rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
-/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
-HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
-Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
-A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
-AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
-
-NetLock Arany (Class Gold) Főtanúsítvány
-============================================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
-A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
-dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
-cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
-MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
-ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
-c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
-0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
-/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
-H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
-fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
-neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
-qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
-YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
-bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
-NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
-dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA - G2
-==================================
------BEGIN CERTIFICATE-----
-MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
-TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
-ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
-5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
-vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
-CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
-e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
-OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
-CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
-48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
-trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
-qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
-AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
-ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
-A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
-+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
-f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
-kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
-CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
-URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
-CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
-oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
-IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
-66+KAQ==
------END CERTIFICATE-----
-
-CA Disig
-========
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
-QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
-MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
-bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
-GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
-Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
-hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
-ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
-gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
-AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
-aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
-ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
-BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
-WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
-mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
-CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
-ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
-4Z7CRneC9VkGjCFMhwnN5ag=
------END CERTIFICATE-----
-
-Juur-SK
-=======
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
-c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
-DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
-SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
-aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
-TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
-+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
-UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
-Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
-MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
-HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
-AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
-cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
-AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
-cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
-FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
-A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
-ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
-abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
-IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
-Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
-yyqcjg==
------END CERTIFICATE-----
-
-Hongkong Post Root CA 1
-=======================
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
-DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
-NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
-IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
-ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
-auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
-qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
-V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
-HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
-h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
-l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
-IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
-T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
-c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
------END CERTIFICATE-----
-
-SecureSign RootCA11
-===================
------BEGIN CERTIFICATE-----
-MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
-SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
-b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
-KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
-cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
-TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
-wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
-g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
-O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
-bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
-t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
-OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
-bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
-Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
-y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
-lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
------END CERTIFICATE-----
-
-ACEDICOM Root
-=============
------BEGIN CERTIFICATE-----
-MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
-T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
-MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
-A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
-WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
-YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
-MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
-m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
-HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
-xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
-3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
-2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
-TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
-4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
-9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
-bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
-aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
-eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
-zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
-ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
-KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
-nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
-I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
-MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
-tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
------END CERTIFICATE-----
-
-Verisign Class 1 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCED9pHoGc8JpK83P/uUii5N0wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAx
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0fzGVuDLDQ
-VoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHiTkVWaR94AoDa3EeRKbs2
-yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFgVKTk8d6Pa
-XCUDfGD67gmZPCcQcMgMCeazh88K4hiWNWLMv5sneYlfycQJ9M61Hd8qveXbhpxoJeUwfLaJFf5n
-0a3hUKw8fGJLj7qE1xIVGx/KXQ/BUpQqEZnae88MNhPVNdwQGVnqlMEAv3WP2fr9dgTbYruQagPZ
-RjXZ+Hxb
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority
-=======================================================
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx
-FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow
-XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz
-IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
-A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94
-f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol
-hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky
-CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX
-bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/
-D/xwzoiQ
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
-MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
-c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
-dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
-BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
-U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
-fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
-0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
-pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
-1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
-AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
-QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
-FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
-lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
-I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
-tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
-yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
-LXpUq3DDfSJlgnCW
------END CERTIFICATE-----
-
-E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
-===================================================
------BEGIN CERTIFICATE-----
-MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
-ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
-MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
-cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
-aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
-8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
-jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
-JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
-9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
-AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
-SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
-F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
-D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
-Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
-fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
------END CERTIFICATE-----
-
-GlobalSign Root CA - R3
-=======================
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
-iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
-0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
-rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
-OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
-xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
-lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
-EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
-bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
-YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
-kpeDMdmztcpHWD9f
------END CERTIFICATE-----
-
-TC TrustCenter Universal CA III
-===============================
------BEGIN CERTIFICATE-----
-MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
-IFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAe
-Fw0wOTA5MDkwODE1MjdaFw0yOTEyMzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNU
-QyBUcnVzdENlbnRlciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0Ex
-KDAmBgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF5+cvAqBNLaT6hdqbJYUt
-QCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYvDIRlzg9uwliT6CwLOunBjvvya8o84pxO
-juT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8vzArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+Eut
-CHnNaYlAJ/Uqwa1D7KRTyGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1
-M4BDj5yjdipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBhMB8G
-A1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
-BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI4jANBgkqhkiG9w0BAQUFAAOCAQEA
-g8ev6n9NCjw5sWi+e22JLumzCecYV42FmhfzdkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+
-KGwWaODIl0YgoGhnYIg5IFHYaAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhK
-BgePxLcHsU0GDeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV
-CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPHLQNjO9Po5KIq
-woIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg==
------END CERTIFICATE-----
-
-Autoridad de Certificacion Firmaprofesional CIF A62634068
-=========================================================
------BEGIN CERTIFICATE-----
-MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
-BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
-MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
-QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
-NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
-Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
-B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
-7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
-ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
-plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
-MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
-LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
-bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
-vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
-EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
-DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
-cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
-bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
-ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
-51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
-R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
-T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
-Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
-osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
-crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
-saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
-KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
-6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
------END CERTIFICATE-----
-
-Izenpe.com
-==========
------BEGIN CERTIFICATE-----
-MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
-EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
-MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
-QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
-03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
-ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
-+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
-PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
-OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
-F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
-0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
-0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
-leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
-AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
-SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
-NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
-MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
-BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
-Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
-kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
-hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
-g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
-aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
-nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
-ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
-Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
-WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
------END CERTIFICATE-----
-
-Chambers of Commerce Root - 2008
-================================
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
-Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
-ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
-EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
-cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
-XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
-h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
-ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
-NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
-D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
-lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
-0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
-EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
-G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
-BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
-bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
-bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
-CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
-AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
-wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
-3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
-RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
-M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
-YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
-9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
-zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
-nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
------END CERTIFICATE-----
-
-Global Chambersign Root - 2008
-==============================
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
-NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
-Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
-QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
-VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
-XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
-ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
-/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
-TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
-H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
-Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
-HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
-AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
-BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
-BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
-aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
-aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
-1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
-dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
-/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
-ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
-dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
-9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
-foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
-qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
-P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
-c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
-
-Go Daddy Root Certificate Authority - G2
-========================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
-MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
-MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
-b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
-A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
-9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
-+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
-fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
-NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
-BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
-vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
-5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
-N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
-LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
------END CERTIFICATE-----
-
-Starfield Root Certificate Authority - G2
-=========================================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
-eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
-DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
-VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
-dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
-W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
-bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
-N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
-ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
-JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
-TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
-4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
-F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
-pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
-c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
------END CERTIFICATE-----
-
-Starfield Services Root Certificate Authority - G2
-==================================================
------BEGIN CERTIFICATE-----
-MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
-IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
-dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
-h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
-hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
-LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
-rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
-SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
-E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
-xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
-iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
-YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
------END CERTIFICATE-----
-
-AffirmTrust Commercial
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
-MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
-DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
-C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
-BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
-MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
-HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
-hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
-qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
-0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
-sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
------END CERTIFICATE-----
-
-AffirmTrust Networking
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
-MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
-Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
-dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
-/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
-h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
-HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
-UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
-12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
-WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
-/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
------END CERTIFICATE-----
-
-AffirmTrust Premium
-===================
------BEGIN CERTIFICATE-----
-MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
-OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
-dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
-BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
-5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
-+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
-GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
-p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
-S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
-6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
-/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
-+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
-MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
-Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
-6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
-L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
-+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
-BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
-IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
-g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
-zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
------END CERTIFICATE-----
-
-AffirmTrust Premium ECC
-=======================
------BEGIN CERTIFICATE-----
-MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
-BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
-MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
-cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
-IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
-N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
-BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
-BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
-57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
-eQ==
------END CERTIFICATE-----
-
-Certum Trusted Network CA
-=========================
------BEGIN CERTIFICATE-----
-MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
-ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
-MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
-ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
-l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
-J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
-fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
-cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
-Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
-DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
-jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
-mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
-Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
------END CERTIFICATE-----
-
-Certinomis - Autorité Racine
-=============================
------BEGIN CERTIFICATE-----
-MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
-Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
-LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
-A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
-JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
-wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
-Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
-2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
-jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
-c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
-lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
-xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
-530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
-4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
-KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
-WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
-R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
-nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
-CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
-JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
-qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
-WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
-wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
-vgt2Fl43N+bYdJeimUV5
------END CERTIFICATE-----
-
-Root CA Generalitat Valenciana
-==============================
------BEGIN CERTIFICATE-----
-MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
-ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
-IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
-WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
-CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
-F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
-ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
-D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
-JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
-AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
-dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
-ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
-AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
-YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
-AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
-aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
-AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
-YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
-AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
-OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
-dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
-BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
-A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
-b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
-TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
-Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
-NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
-iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
-+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
------END CERTIFICATE-----
-
-A-Trust-nQual-03
-================
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
-Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
-a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
-dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
-RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
-ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
-c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
-zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
-yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
-SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
-iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
-cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
-eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
-ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
-sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
-JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
-ahq97BvIxYSazQ==
------END CERTIFICATE-----
-
-TWCA Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
-VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
-EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
-IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
-QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
-oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
-4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
-y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
-9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
-mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
-QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
-T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
-Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
------END CERTIFICATE-----
-
-Security Communication RootCA2
-==============================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
-SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
-aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
-+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
-3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
-spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
-EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
-QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
-CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
-u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
-3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
-tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
-mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
------END CERTIFICATE-----
-
-EC-ACC
-======
------BEGIN CERTIFICATE-----
-MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
-BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
-ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
-VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
-CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
-BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
-MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
-SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
-Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
-cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
-w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
-ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
-HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
-E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
-0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
-VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
-Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
-dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
-lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
-Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
-l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
-E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
-5EI=
------END CERTIFICATE-----
-
-Hellenic Academic and Research Institutions RootCA 2011
-=======================================================
------BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
-O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
-aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
-AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
-IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
-1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
-71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
-8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
-3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
-MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
-MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
-b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
-XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
-TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
-/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
-7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
------END CERTIFICATE-----
-
-Actalis Authentication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
-BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
-AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
-MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
-IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
-IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
-wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
-by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
-zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
-YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
-oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
-EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
-hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
-EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
-jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
-iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
-ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
-WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
-JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
-K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
-Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
-4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
-2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
-lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
-OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
-vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
------END CERTIFICATE-----
-
-Trustis FPS Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
-EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
-IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
-BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
-RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
-H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
-cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
-o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
-AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
-BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
-GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
-yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
-8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
-l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
-iB6XzCGcKQENZetX2fNXlrtIzYE=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
-VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
-Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
-dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
-c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
-bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
-aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
-aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
-L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
-cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
-fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
-N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
-Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
-tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
-e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
-2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
-HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
-JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
-D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
------END CERTIFICATE-----
-
-StartCom Certification Authority G2
-===================================
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
-ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
-o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
-4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
-Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
-Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
-O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
-vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
-nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
-FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
-z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
-KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
-2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
-J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
-JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
-/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
-nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
-blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
-l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
-7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
-obp573PYtlNXLfbQ4ddI
------END CERTIFICATE-----
-
-Buypass Class 2 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
-DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
-g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
-9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
-/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
-CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
-awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
-zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
-Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
-Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
-M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
-A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
-osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
-aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
-DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
-LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
-oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
-wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
-CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
-rJgWVqA=
------END CERTIFICATE-----
-
-Buypass Class 3 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
-DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
-sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
-5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
-7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
-ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
-2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
-/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
-RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
-Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
-j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
-cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
-uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
-Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
-ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
-KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
-6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
-UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
-eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
-Cp/HuZc=
------END CERTIFICATE-----
-
-TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı
-======================================================
------BEGIN CERTIFICATE-----
-MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
-DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
-a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
-BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
-bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
-YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
-KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
-KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
-rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
-AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
-Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
-aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
-Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
-BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
-poRq0Tl9
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 3
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
-MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
-9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
-NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
-iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
-0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
-AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
-fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
-ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
-P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
-e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
------END CERTIFICATE-----
-
-EE Certification Centre Root CA
-===============================
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
-dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
-MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
-UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
-ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
-TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
-rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
-93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
-P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
-MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
-BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
-xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
-lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
-3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
-dcGWxZ0=
------END CERTIFICATE-----
diff --git a/milfs/librerias/hybridauth/Hybrid/thirdparty/LinkedIn/LinkedIn.php b/milfs/librerias/hybridauth/Hybrid/thirdparty/LinkedIn/LinkedIn.php
deleted file mode 100644
index 1f469ce..0000000
--- a/milfs/librerias/hybridauth/Hybrid/thirdparty/LinkedIn/LinkedIn.php
+++ /dev/null
@@ -1,2723 +0,0 @@
-
- * @copyright Copyright 2011, fiftyMission Inc.
- * @license http://www.opensource.org/licenses/mit-license.php The MIT License
- */
-
-/**
- * 'LinkedInException' class declaration.
- *
- * This class extends the base 'Exception' class.
- *
- * @access public
- * @package classpackage
- */
-class LinkedInException extends Exception {}
-
-/**
- * 'LinkedIn' class declaration.
- *
- * This class provides generalized LinkedIn oauth functionality.
- *
- * @access public
- * @package classpackage
- */
-class LinkedIn {
- // api/oauth settings
- const _API_OAUTH_REALM = 'http://api.linkedin.com';
- const _API_OAUTH_VERSION = '1.0';
-
- // the default response format from LinkedIn
- const _DEFAULT_RESPONSE_FORMAT = 'xml';
-
- // helper constants used to standardize LinkedIn <-> API communication. See demo page for usage.
- const _GET_RESPONSE = 'lResponse';
- const _GET_TYPE = 'lType';
-
- // Invitation API constants.
- const _INV_SUBJECT = 'Invitation to connect';
- const _INV_BODY_LENGTH = 200;
-
- // API methods
- const _METHOD_TOKENS = 'POST';
-
- // Network API constants.
- const _NETWORK_LENGTH = 1000;
- const _NETWORK_HTML = '';
-
- // response format type constants, see http://developer.linkedin.com/docs/DOC-1203
- const _RESPONSE_JSON = 'JSON';
- const _RESPONSE_JSONP = 'JSONP';
- const _RESPONSE_XML = 'XML';
-
- // Share API constants
- const _SHARE_COMMENT_LENGTH = 700;
- const _SHARE_CONTENT_TITLE_LENGTH = 200;
- const _SHARE_CONTENT_DESC_LENGTH = 400;
-
- // LinkedIn API end-points
- const _URL_ACCESS = 'https://api.linkedin.com/uas/oauth/accessToken';
- const _URL_API = 'https://api.linkedin.com';
- const _URL_AUTH = 'https://www.linkedin.com/uas/oauth/authenticate?oauth_token=';
- const _URL_REQUEST = 'https://api.linkedin.com/uas/oauth/requestToken';
- // const _URL_REQUEST = 'https://api.linkedin.com/uas/oauth/requestToken?scope=r_basicprofile+r_emailaddress+rw_nus+r_network';
- const _URL_REVOKE = 'https://api.linkedin.com/uas/oauth/invalidateToken';
-
- // Library version
- const _VERSION = '3.2.0';
-
- // oauth properties
- protected $callback;
- protected $token = null;
-
- // application properties
- protected $application_key,
- $application_secret;
-
- // the format of the data to return
- protected $response_format = self::_DEFAULT_RESPONSE_FORMAT;
-
- // last request fields
- public $last_request_headers,
- $last_request_url;
-
- /**
- * Create a LinkedIn object, used for OAuth-based authentication and
- * communication with the LinkedIn API.
- *
- * @param arr $config
- * The 'start-up' object properties:
- * - appKey => The application's API key
- * - appSecret => The application's secret key
- * - callbackUrl => [OPTIONAL] the callback URL
- *
- * @return obj
- * A new LinkedIn object.
- */
- public function __construct($config) {
- if(!is_array($config)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->__construct(): bad data passed, $config must be of type array.');
- }
- $this->setApplicationKey($config['appKey']);
- $this->setApplicationSecret($config['appSecret']);
- $this->setCallbackUrl($config['callbackUrl']);
- }
-
- /**
- * The class destructor.
- *
- * Explicitly clears LinkedIn object from memory upon destruction.
- */
- public function __destruct() {
- unset($this);
- }
-
- /**
- * Bookmark a job.
- *
- * Calling this method causes the current user to add a bookmark for the
- * specified job:
- *
- * http://developer.linkedin.com/docs/DOC-1323
- *
- * @param str $jid
- * Job ID you want to bookmark.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function bookmarkJob($jid) {
- // check passed data
- if(!is_string($jid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->bookmarkJob(): bad data passed, $jid must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/job-bookmarks';
- $response = $this->fetch('POST', $query, '' . trim($jid) . ' ');
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * Get list of jobs you have bookmarked.
- *
- * Returns a list of jobs the current user has bookmarked, per:
- *
- * http://developer.linkedin.com/docs/DOC-1323
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function bookmarkedJobs() {
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/job-bookmarks';
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Custom addition to make code compatible with PHP 5.2
- */
- private function intWalker($value, $key) {
- if(!is_int($value)) {
- throw new LinkedInException('LinkedIn->checkResponse(): $http_code_required must be an integer or an array of integer values');
- }
- }
-
- /**
- * Used to check whether a response LinkedIn object has the required http_code or not and
- * returns an appropriate LinkedIn object.
- *
- * @param var $http_code_required
- * The required http response from LinkedIn, passed in either as an integer,
- * or an array of integers representing the expected values.
- * @param arr $response
- * An array containing a LinkedIn response.
- *
- * @return boolean
- * true or false depending on if the passed LinkedIn response matches the expected response.
- */
- private function checkResponse($http_code_required, $response) {
- // check passed data
- if(is_array($http_code_required)) {
- array_walk($http_code_required, array($this, 'intWalker'));
- } else {
- if(!is_int($http_code_required)) {
- throw new LinkedInException('LinkedIn->checkResponse(): $http_code_required must be an integer or an array of integer values');
- } else {
- $http_code_required = array($http_code_required);
- }
- }
- if(!is_array($response)) {
- throw new LinkedInException('LinkedIn->checkResponse(): $response must be an array');
- }
-
- // check for a match
- if(in_array($response['info']['http_code'], $http_code_required)) {
- // response found
- $response['success'] = true;
- } else {
- // response not found
- $response['success'] = false;
- $response['error'] = 'HTTP response from LinkedIn end-point was not code ' . implode(', ', $http_code_required);
- }
- return $response;
- }
-
- /**
- * Close a job.
- *
- * Calling this method causes the passed job to be closed, per:
- *
- * http://developer.linkedin.com/docs/DOC-1151
- *
- * @param str $jid
- * Job ID you want to close.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function closeJob($jid) {
- // check passed data
- if(!is_string($jid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->closeJob(): bad data passed, $jid must be of string value.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/jobs/partner-job-id=' . trim($jid);
- $response = $this->fetch('DELETE', $query);
-
- /**
- * Check for successful request (a 204 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(204, $response);
- }
-
- /**
- * Share comment posting method.
- *
- * Post a comment on an existing connections shared content. API details can
- * be found here:
- *
- * http://developer.linkedin.com/docs/DOC-1043
- *
- * @param str $uid
- * The LinkedIn update ID.
- * @param str $comment
- * The share comment to be posted.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function comment($uid, $comment) {
- // check passed data
- if(!is_string($uid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->comment(): bad data passed, $uid must be of type string.');
- }
- if(!is_string($comment)) {
- // nothing/non-string passed, raise an exception
- throw new LinkedInException('LinkedIn->comment(): bad data passed, $comment must be a non-zero length string.');
- }
-
- /**
- * Share comment rules:
- *
- * 1) No HTML permitted.
- * 2) Comment cannot be longer than 700 characters.
- */
- $comment = substr(trim(htmlspecialchars(strip_tags($comment))), 0, self::_SHARE_COMMENT_LENGTH);
- $data = '
-
- ' . $comment . '
- ';
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/network/updates/key=' . $uid . '/update-comments';
- $response = $this->fetch('POST', $query, $data);
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * Share comment retrieval.
- *
- * Return all comments associated with a given network update:
- *
- * http://developer.linkedin.com/docs/DOC-1043
- *
- * @param str $uid
- * The LinkedIn update ID.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function comments($uid) {
- // check passed data
- if(!is_string($uid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->comments(): bad data passed, $uid must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/network/updates/key=' . $uid . '/update-comments';
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Company profile retrieval function.
- *
- * Takes a string of parameters as input and requests company profile data
- * from the LinkedIn Company Profile API. See the official documentation for
- * $options 'field selector' formatting:
- *
- * http://developer.linkedin.com/docs/DOC-1014
- * http://developer.linkedin.com/docs/DOC-1259
- *
- * @param str $options
- * Data retrieval options.
- * @param bool $by_email
- * [OPTIONAL] Search by email domain?
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function company($options, $by_email = false) {
- // check passed data
- if(!is_string($options)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->company(): bad data passed, $options must be of type string.');
- }
- if(!is_bool($by_email)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->company(): bad data passed, $by_email must be of type boolean.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/companies' . ($by_email ? '' : '/') . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Company products and their associated recommendations.
- *
- * The product data type contains details about a company's product or
- * service, including recommendations from LinkedIn members, and replies from
- * company representatives.
- *
- * http://developer.linkedin.com/docs/DOC-1327
- *
- * @param str $cid
- * Company ID you want the product for.
- * @param str $options
- * [OPTIONAL] Data retrieval options.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function companyProducts($cid, $options = '') {
- // check passed data
- if(!is_string($cid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->companyProducts(): bad data passed, $cid must be of type string.');
- }
- if(!is_string($options)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->companyProducts(): bad data passed, $options must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/companies/' . trim($cid) . '/products' . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Connection retrieval function.
- *
- * Takes a string of parameters as input and requests connection-related data
- * from the Linkedin Connections API. See the official documentation for
- * $options 'field selector' formatting:
- *
- * http://developer.linkedin.com/docs/DOC-1014
- *
- * @param str $options
- * [OPTIONAL] Data retrieval options.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function connections($options = '~/connections') {
- // check passed data
- if(!is_string($options)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->connections(): bad data passed, $options must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/' . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * This creates a post in the specified group with the specified title and specified summary.
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $gid
- * The group id.
- * @param str $title
- * The title of the post. This must be non-empty.
- * @param str $summary
- * [OPTIONAL] The content or summary of the post. This can be empty.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function createPost($gid, $title, $summary = '') {
- if(!is_string($gid)) {
- throw new LinkedInException('LinkedIn->createPost(): bad data passed, $gid must be of type string.');
- }
- if(!is_string($title) || empty($title)) {
- throw new LinkedInException('LinkedIn->createPost(): bad data passed, $title must be a non-empty string.');
- }
- if(!is_string($summary)) {
- throw new LinkedInException('LinkedIn->createPost(): bad data passed, $summary must be of type string.');
- }
-
- // construct the XML
- $data = '
-
- '. $title . '
- ' . $summary . '
- ';
-
- // construct and send the request
- $query = self::_URL_API . '/v1/groups/' . trim($gid) . '/posts';
- $response = $this->fetch('POST', $query, $data);
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * This deletes the specified post if you are the owner or moderator that post.
- * Otherwise, it just flags the post as inappropriate.
- *
- * https://developer.linkedin.com/documents/groups-api
- *
- * @param str $pid
- * The post id.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function deletePost($pid) {
- if(!is_string($pid)) {
- throw new LinkedInException('LinkedIn->deletePost(): bad data passed, $pid must be of type string');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/posts/' . trim($pid);
- $response = $this->fetch('DELETE', $query);
-
- /**
- * Check for successful request (a 204 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(204, $response);
- }
-
- /**
- * Edit a job.
- *
- * Calling this method causes the passed job to be edited, with the passed
- * XML instructing which fields to change, per:
- *
- * http://developer.linkedin.com/docs/DOC-1154
- * http://developer.linkedin.com/docs/DOC-1142
- *
- * @param str $jid
- * Job ID you want to renew.
- * @param str $xml
- * The XML containing the job fields to edit.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function editJob($jid, $xml) {
- // check passed data
- if(!is_string($jid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->editJob(): bad data passed, $jid must be of string value.');
- }
- if(is_string($xml)) {
- $xml = trim(stripslashes($xml));
- } else {
- // bad data passed
- throw new LinkedInException('LinkedIn->editJob(): bad data passed, $xml must be of string value.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/jobs/partner-job-id=' . trim($jid);
- $response = $this->fetch('PUT', $query, $xml);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * General data send/request method.
- *
- * @param str $method
- * The data communication method.
- * @param str $url
- * The Linkedin API endpoint to connect with.
- * @param str $data
- * [OPTIONAL] The data to send to LinkedIn.
- * @param arr $parameters
- * [OPTIONAL] Addition OAuth parameters to send to LinkedIn.
- *
- * @return arr
- * array containing:
- *
- * array(
- * 'info' => Connection information,
- * 'linkedin' => LinkedIn response,
- * 'oauth' => The OAuth request string that was sent to LinkedIn
- * )
- */
- protected function fetch($method, $url, $data = null, $parameters = array()) {
- // check for cURL
- if(!extension_loaded('curl')) {
- // cURL not present
- throw new LinkedInException('LinkedIn->fetch(): PHP cURL extension does not appear to be loaded/present.');
- }
-
- try {
- // generate OAuth values
- $oauth_consumer = new OAuthConsumer($this->getApplicationKey(), $this->getApplicationSecret(), $this->getCallbackUrl());
- $oauth_token = $this->getToken();
- $oauth_token = (!is_null($oauth_token)) ? new OAuthToken($oauth_token['oauth_token'], $oauth_token['oauth_token_secret']) : null;
- $defaults = array(
- 'oauth_version' => self::_API_OAUTH_VERSION
- );
- $parameters = array_merge($defaults, $parameters);
-
- // generate OAuth request
- $oauth_req = OAuthRequest::from_consumer_and_token($oauth_consumer, $oauth_token, $method, $url, $parameters);
- $oauth_req->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $oauth_consumer, $oauth_token);
-
- // start cURL, checking for a successful initiation
- if(!$handle = curl_init()) {
- // cURL failed to start
- throw new LinkedInException('LinkedIn->fetch(): cURL did not initialize properly.');
- }
-
- // set cURL options, based on parameters passed
- curl_setopt($handle, CURLOPT_CUSTOMREQUEST, $method);
- curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($handle, CURLOPT_URL, $url);
- curl_setopt($handle, CURLOPT_VERBOSE, false);
-
- // Restrict the request timeout to 5 seconds. Linkedin is sometimes very
- // slow and we don't want to trigger a PHP timeout on our end.
- curl_setopt($handle, CURLOPT_TIMEOUT, 5);
-
- if ( isset ( Hybrid_Auth::$config["proxy"] ) ) {
- curl_setopt($handle, CURLOPT_PROXY, Hybrid_Auth::$config["proxy"]);
- }
-
- // configure the header we are sending to LinkedIn - http://developer.linkedin.com/docs/DOC-1203
- $header = array($oauth_req->to_header(self::_API_OAUTH_REALM));
- if(is_null($data)) {
- // not sending data, identify the content type
- $header[] = 'Content-Type: text/plain; charset=UTF-8';
- switch($this->getResponseFormat()) {
- case self::_RESPONSE_JSON:
- $header[] = 'x-li-format: json';
- break;
- case self::_RESPONSE_JSONP:
- $header[] = 'x-li-format: jsonp';
- break;
- }
- } else {
- $header[] = 'Content-Type: text/xml; charset=UTF-8';
- curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
- }
- curl_setopt($handle, CURLOPT_HTTPHEADER, $header);
-
- // set the last url, headers
- $this->last_request_url = $url;
- $this->last_request_headers = $header;
-
- // gather the response
- $return_data['linkedin'] = curl_exec($handle);
- if( $return_data['linkedin'] === false ) {
- Hybrid_Logger::error( "LinkedIn::fetch(). curl_exec error: ", curl_error($handle) );
- }
- $return_data['info'] = curl_getinfo($handle);
- $return_data['oauth']['header'] = $oauth_req->to_header(self::_API_OAUTH_REALM);
- $return_data['oauth']['string'] = $oauth_req->base_string;
-
- // check for throttling
- if(self::isThrottled($return_data['linkedin'])) {
- throw new LinkedInException('LinkedIn->fetch(): throttling limit for this user/application has been reached for LinkedIn resource - ' . $url);
- }
-
- //TODO - add check for NO response (http_code = 0) from cURL
-
- // close cURL connection
- curl_close($handle);
-
- // no exceptions thrown, return the data
- return $return_data;
- } catch(OAuthException $e) {
- // oauth exception raised
- throw new LinkedInException('OAuth exception caught: ' . $e->getMessage());
- }
- }
-
- /**
- * This flags a specified post as specified by type.
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $pid
- * The post id.
- * @param str $type
- * The type to flag the post as.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function flagPost($pid, $type) {
- if(!is_string($pid)) {
- throw new LinkedInException('LinkedIn->flagPost(): bad data passed, $pid must be of type string');
- }
- if(!is_string($type)) {
- throw new LinkedInException('LinkedIn->flagPost(): bad data passed, $like must be of type string');
- }
- //Constructing the xml
- $data = '';
- switch($type) {
- case 'promotion':
- $data .= 'promotion
';
- break;
- case 'job':
- $data .= 'job
';
- break;
- default:
- throw new LinkedInException('LinkedIn->flagPost(): invalid value for $type, must be one of: "promotion", "job"');
- break;
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/posts/' . $pid . '/category/code';
- $response = $this->fetch('PUT', $query, $data);
-
- /**
- * Check for successful request (a 204 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(204, $response);
- }
-
- /**
- * Follow a company.
- *
- * Calling this method causes the current user to start following the
- * specified company, per:
- *
- * http://developer.linkedin.com/docs/DOC-1324
- *
- * @param str $cid
- * Company ID you want to follow.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function followCompany($cid) {
- // check passed data
- if(!is_string($cid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->followCompany(): bad data passed, $cid must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/following/companies';
- $response = $this->fetch('POST', $query, '' . trim($cid) . ' ');
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * Follows/Unfollows the specified post.
- *
- * https://developer.linkedin.com/documents/groups-api
- *
- * @param str $pid
- * The post id.
- * @param bool $follow
- * Determines whether to follow or unfollow the post. true = follow, false = unfollow
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
-
- public function followPost($pid, $follow) {
- if(!is_string($pid)) {
- throw new LinkedInException('LinkedIn->followPost(): bad data passed, $pid must be of type string');
- }
- if(!($follow === true || $follow === false)) {
- throw new LinkedInException('LinkedIn->followPost(): bad data passed, $follow must be of type boolean');
- }
-
- // construct the XML
- $data = '
- '. (($follow) ? 'true' : 'false'). ' ';
-
- // construct and send the request
- $query = self::_URL_API . '/v1/posts/' . trim($pid) . '/relation-to-viewer/is-following';
- $response = $this->fetch('PUT', $query, $data);
-
- /**
- * Check for successful request (a 204 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(204, $response);
- }
-
- /**
- * Get list of companies you follow.
- *
- * Returns a list of companies the current user is currently following, per:
- *
- * http://developer.linkedin.com/docs/DOC-1324
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function followedCompanies() {
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/following/companies';
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Get the application_key property.
- *
- * @return str
- * The application key.
- */
- public function getApplicationKey() {
- return $this->application_key;
- }
-
- /**
- * Get the application_secret property.
- *
- * @return str
- * The application secret.
- */
- public function getApplicationSecret() {
- return $this->application_secret;
- }
-
- /**
- * Get the callback property.
- *
- * @return str
- * The callback url.
- */
- public function getCallbackUrl() {
- return $this->callback;
- }
-
- /**
- * Get the response_format property.
- *
- * @return str
- * The response format.
- */
- public function getResponseFormat() {
- return $this->response_format;
- }
-
- /**
- * Get the token_access property.
- *
- * @return arr
- * The access token.
- */
- public function getToken() {
- return $this->token;
- }
-
- /**
- * [DEPRECATED] Get the token_access property.
- *
- * @return arr
- * The access token.
- */
- public function getTokenAccess() {
- return $this->getToken();
- }
-
- /**
- *
- * Get information about a specific group.
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $gid
- * The group id.
- *
- * @param str $options
- * [OPTIONAL] Field selectors for the group.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
-
- public function group($gid, $options = '') {
- if(!is_string($gid)){
- throw new LinkedInException('LinkedIn->group(): bad data passed, $gid must be of type string.');
- }
- if(!is_string($options)) {
- throw new LinkedInException('LinkedIn->group(): bad data passed, $options must be of type string');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/groups/' . trim($gid) . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * This returns all the groups the user is a member of.
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $options
- * [OPTIONAL] Field selectors for the groups.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function groupMemberships($options = '') {
- if(!is_string($options)) {
- throw new LinkedInException('LinkedIn->groupMemberships(): bad data passed, $options must be of type string');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/group-memberships' . trim($options) . '?membership-state=member';
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * This gets a specified post made within a group.
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $pid
- * The post id.
- * @param str $options
- * [OPTIONAL] Field selectors for the post.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function groupPost($pid, $options = '') {
- if(!is_string($pid)) {
- throw new LinkedInException('LinkedIn->groupPost(): bad data passed, $pid must be of type string.');
- }
- if(!is_string($options)) {
- throw new LinkedInException('LinkedIn->groupPost(): bad data passed, $options must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/posts/' . trim($pid) . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * This returns all the comments made on the specified post within a group.
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $pid
- * The post id.
- * @param str $options
- * [OPTIONAL] Field selectors for the post comments.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function groupPostComments($pid, $options = ''){
- if(!is_string($pid)){
- throw new LinkedInException('LinkedIn->groupPostComments(): bad data passed, $pid must be of type string.');
- }
- if(!is_string($options)) {
- throw new LinkedInException('LinkedIn->groupPostComments(): bad data passed, $options must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/posts/' . trim($pid) . '/comments' . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * This returns all the posts within a group.
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $gid
- * The group id.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function groupPosts($gid, $options = '') {
- if(!is_string($gid)){
- throw new LinkedInException('LinkedIn->groupPosts(): bad data passed, $gid must be of type string');
- }
- if(!is_string($options)){
- throw new LinkedInException('LinkedIn->groupPosts(): bad data passed, $options must be of type string');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/groups/' . trim($gid) .'/posts' . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * This returns the group settings of the specified group
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $gid
- * The group id.
- * @param str $options
- * [OPTIONAL] Field selectors for the group.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function groupSettings($gid, $options = '') {
- if(!is_string($gid)) {
- throw new LinkedInException('LinkedIn->groupSettings(): bad data passed, $gid must be of type string');
- }
- if(!is_string($options)) {
- throw new LinkedInException('LinkedIn->groupSettings(): bad data passed, $options must be of type string');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/group-memberships/' . trim($gid) . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Send connection invitations.
- *
- * Send an invitation to connect to your network, either by email address or
- * by LinkedIn ID. Details on the API here:
- *
- * http://developer.linkedin.com/docs/DOC-1012
- *
- * @param str $method
- * The invitation method to process.
- * @param str $recipient
- * The email/id to send the invitation to.
- * @param str $subject
- * The subject of the invitation to send.
- * @param str $body
- * The body of the invitation to send.
- * @param str $type
- * [OPTIONAL] The invitation request type (only friend is supported at this time by the Invite API).
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function invite($method, $recipient, $subject, $body, $type = 'friend') {
- /**
- * Clean up the passed data per these rules:
- *
- * 1) Message must be sent to one recipient (only a single recipient permitted for the Invitation API)
- * 2) No HTML permitted
- * 3) 200 characters max in the invitation subject
- * 4) Only able to connect as a friend at this point
- */
- // check passed data
- if(empty($recipient)) {
- throw new LinkedInException('LinkedIn->invite(): you must provide an invitation recipient.');
- }
- switch($method) {
- case 'email':
- if(is_array($recipient)) {
- $recipient = array_map('trim', $recipient);
- } else {
- // bad format for recipient for email method
- throw new LinkedInException('LinkedIn->invite(): invitation recipient email/name array is malformed.');
- }
- break;
- case 'id':
- $recipient = trim($recipient);
- if(!self::isId($recipient)) {
- // bad format for recipient for id method
- throw new LinkedInException('LinkedIn->invite(): invitation recipient ID does not match LinkedIn format.');
- }
- break;
- default:
- throw new LinkedInException('LinkedIn->invite(): bad invitation method, must be one of: email, id.');
- break;
- }
- if(!empty($subject)) {
- $subject = trim(htmlspecialchars(strip_tags(stripslashes($subject))));
- } else {
- throw new LinkedInException('LinkedIn->invite(): message subject is empty.');
- }
- if(!empty($body)) {
- $body = trim(htmlspecialchars(strip_tags(stripslashes($body))));
- if(strlen($body) > self::_INV_BODY_LENGTH) {
- throw new LinkedInException('LinkedIn->invite(): message body length is too long - max length is ' . self::_INV_BODY_LENGTH . ' characters.');
- }
- } else {
- throw new LinkedInException('LinkedIn->invite(): message body is empty.');
- }
- switch($type) {
- case 'friend':
- break;
- default:
- throw new LinkedInException('LinkedIn->invite(): bad invitation type, must be one of: friend.');
- break;
- }
-
- // construct the xml data
- $data = '
-
-
- ';
- switch($method) {
- case 'email':
- // email-based invitation
- $data .= '
- ' . htmlspecialchars($recipient['first-name']) . '
- ' . htmlspecialchars($recipient['last-name']) . '
- ';
- break;
- case 'id':
- // id-based invitation
- $data .= ' ';
- break;
- }
- $data .= '
-
- ' . $subject . '
- ' . $body . '
-
-
- ';
- switch($type) {
- case 'friend':
- $data .= 'friend';
- break;
- }
- $data .= ' ';
- switch($method) {
- case 'id':
- // id-based invitation, we need to get the authorization information
- $query = 'id=' . $recipient . ':(api-standard-profile-request)';
- $response = self::profile($query);
- if($response['info']['http_code'] == 200) {
- $response['linkedin'] = self::xmlToarray($response['linkedin']);
- if($response['linkedin'] === false) {
- // bad XML data
- throw new LinkedInException('LinkedIn->invite(): LinkedIn returned bad XML data.');
- }
- $authentication = explode(':', $response['linkedin']['person']['children']['api-standard-profile-request']['children']['headers']['children']['http-header']['children']['value']['content']);
-
- // complete the xml
- $data .= '
- ' . $authentication[0] . '
- ' . $authentication[1] . '
- ';
- } else {
- // bad response from the profile request, not a valid ID?
- throw new LinkedInException('LinkedIn->invite(): could not send invitation, LinkedIn says: ' . print_r($response['linkedin'], true));
- }
- break;
- }
- $data .= '
-
- ';
-
- // send request
- $query = self::_URL_API . '/v1/people/~/mailbox';
- $response = $this->fetch('POST', $query, $data);
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * LinkedIn ID validation.
- *
- * Checks the passed string $id to see if it has a valid LinkedIn ID format,
- * which is, as of October 15th, 2010:
- *
- * 10 alpha-numeric mixed-case characters, plus underscores and dashes.
- *
- * @param str $id
- * A possible LinkedIn ID.
- *
- * @return bool
- * true/false depending on valid ID format determination.
- */
- public static function isId($id) {
- // check passed data
- if(!is_string($id)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->isId(): bad data passed, $id must be of type string.');
- }
-
- $pattern = '/^[a-z0-9_\-]{10}$/i';
- if($match = preg_match($pattern, $id)) {
- // we have a match
- $return_data = true;
- } else {
- // no match
- $return_data = false;
- }
- return $return_data;
- }
-
- /**
- * Throttling check.
- *
- * Checks the passed LinkedIn response to see if we have hit a throttling
- * limit:
- *
- * http://developer.linkedin.com/docs/DOC-1112
- *
- * @param arr $response
- * The LinkedIn response.
- *
- * @return bool
- * true/false depending on content of response.
- */
- public static function isThrottled($response) {
- $return_data = false;
-
- // check the variable
- if(!empty($response) && is_string($response)) {
- // we have an array and have a properly formatted LinkedIn response
-
- // store the response in a temp variable
- $temp_response = self::xmlToarray($response);
- if($temp_response !== false) {
- // check to see if we have an error
- if(array_key_exists('error', $temp_response) && ($temp_response['error']['children']['status']['content'] == 403) && preg_match('/throttle/i', $temp_response['error']['children']['message']['content'])) {
- // we have an error, it is 403 and we have hit a throttle limit
- $return_data = true;
- }
- }
- }
- return $return_data;
- }
-
- /**
- * Job posting detail info retrieval function.
- *
- * The Jobs API returns detailed information about job postings on LinkedIn.
- * Find the job summary, description, location, and apply our professional graph
- * to present the relationship between the current member and the job poster or
- * hiring manager.
- *
- * http://developer.linkedin.com/docs/DOC-1322
- *
- * @param str $jid
- * ID of the job you want to look up.
- * @param str $options
- * [OPTIONAL] Data retrieval options.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function job($jid, $options = '') {
- // check passed data
- if(!is_string($jid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->job(): bad data passed, $jid must be of type string.');
- }
- if(!is_string($options)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->job(): bad data passed, $options must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/jobs/' . trim($jid) . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Join the specified group, per:
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $gid
- * The group id.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function joinGroup($gid) {
- if(!is_string($gid)) {
- throw new LinkedInException('LinkedIn->joinGroup(): bad data passed, $gid must be of type string.');
- }
-
- // constructing the XML
- $data = '
-
-
- member
-
- ';
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/group-memberships/' . trim($gid);
- $response = $this->fetch('PUT', $query, $data);
-
- /**
- * Check for successful request (a 200 or 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(array(200, 201), $response);
- }
-
- /**
- * Returns the last request header from the previous call to the
- * LinkedIn API.
- *
- * @returns str
- * The header, in string format.
- */
- public function lastRequestHeader() {
- return $this->last_request_headers;
- }
-
- /**
- * Returns the last request url from the previous call to the
- * LinkedIn API.
- *
- * @returns str
- * The url, in string format.
- */
- public function lastRequestUrl() {
- return $this->last_request_url;
- }
-
- /**
- * Leave the specified group, per:.
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $gid
- * The group id.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function leaveGroup($gid){
- if(!is_string($gid)) {
- throw new LinkedInException('LinkedIn->leaveGroup(): bad data passed, $gid must be of type string');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/group-memberships/' .trim($gid);
- $response = $this->fetch('DELETE', $query);
-
- /**
- * Check for successful request (a 204 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(204, $response);
- }
-
- /**
- * Like another user's network update, per:
- *
- * http://developer.linkedin.com/docs/DOC-1043
- *
- * @param str $uid
- * The LinkedIn update ID.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function like($uid) {
- // check passed data
- if(!is_string($uid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->like(): bad data passed, $uid must be of type string.');
- }
-
- // construct the XML
- $data = '
- true ';
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/network/updates/key=' . $uid . '/is-liked';
- $response = $this->fetch('PUT', $query, $data);
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * Likes/unlikes the specified post, per:
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $pid
- * The post id.
- * @param bool $like
- * Determines whether to like or unlike. true = like, false = unlike.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function likePost($pid, $like) {
- if(!is_string($pid)) {
- throw new LinkedInException ('LinkedIn->likePost(): bad data passed, $pid must be of type string');
- }
- if(!($like === true || $like === false)) {
- throw new LinkedInException('LinkedIn->likePost(): bad data passed, $like must be of type boolean');
- }
-
- // construct the XML
- $data = '
- '.(($like) ? 'true': 'false').' ';
-
- // construct and send the request
- $query = self::_URL_API . '/v1/posts/' . trim($pid) . '/relation-to-viewer/is-liked';
- $response = $this->fetch('PUT', $query, $data);
-
- /**
- * Check for successful request (a 204 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(204, $response);
- }
-
- /**
- * Retrieve network update likes.
- *
- * Return all likes associated with a given network update:
- *
- * http://developer.linkedin.com/docs/DOC-1043
- *
- * @param str $uid
- * The LinkedIn update ID.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function likes($uid) {
- // check passed data
- if(!is_string($uid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->likes(): bad data passed, $uid must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/network/updates/key=' . $uid . '/likes';
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Connection messaging method.
- *
- * Send a message to your network connection(s), optionally copying yourself.
- * Full details from LinkedIn on this functionality can be found here:
- *
- * http://developer.linkedin.com/docs/DOC-1044
- *
- * @param arr $recipients
- * The connection(s) to send the message to.
- * @param str $subject
- * The subject of the message to send.
- * @param str $body
- * The body of the message to send.
- * @param bool $copy_self
- * [OPTIONAL] Also update the teathered Twitter account.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function message($recipients, $subject, $body, $copy_self = false) {
- /**
- * Clean up the passed data per these rules:
- *
- * 1) Message must be sent to at least one recipient
- * 2) No HTML permitted
- */
- if(!empty($subject) && is_string($subject)) {
- $subject = trim(strip_tags(stripslashes($subject)));
- } else {
- throw new LinkedInException('LinkedIn->message(): bad data passed, $subject must be of type string.');
- }
- if(!empty($body) && is_string($body)) {
- $body = trim(strip_tags(stripslashes($body)));
- } else {
- throw new LinkedInException('LinkedIn->message(): bad data passed, $body must be of type string.');
- }
- if(!is_array($recipients) || count($recipients) < 1) {
- // no recipients, and/or bad data
- throw new LinkedInException('LinkedIn->message(): at least one message recipient required.');
- }
-
- // construct the xml data
- $data = '
-
- ';
- $data .= ($copy_self) ? ' ' : '';
- for($i = 0; $i < count($recipients); $i++) {
- if(is_string($recipients[$i])) {
- $data .= ' ';
- } else {
- throw new LinkedInException ('LinkedIn->message(): bad data passed, $recipients must be an array of type string.');
- }
- }
- $data .= '
- ' . htmlspecialchars($subject) . '
- ' . htmlspecialchars($body) . '
- ';
-
- // send request
- $query = self::_URL_API . '/v1/people/~/mailbox';
- $response = $this->fetch('POST', $query, $data);
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * Job posting method.
- *
- * Post a job to LinkedIn, assuming that you have access to this feature.
- * Full details from LinkedIn on this functionality can be found here:
- *
- * http://developer.linkedin.com/community/jobs?view=documents
- *
- * @param str $xml
- * The XML defining a job to post.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function postJob($xml) {
- // check passed data
- if(is_string($xml)) {
- $xml = trim(stripslashes($xml));
- } else {
- throw new LinkedInException('LinkedIn->postJob(): bad data passed, $xml must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/jobs';
- $response = $this->fetch('POST', $query, $xml);
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * General profile retrieval function.
- *
- * Takes a string of parameters as input and requests profile data from the
- * Linkedin Profile API. See the official documentation for $options
- * 'field selector' formatting:
- *
- * http://developer.linkedin.com/docs/DOC-1014
- * http://developer.linkedin.com/docs/DOC-1002
- *
- * @param str $options
- * [OPTIONAL] Data retrieval options.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function profile($options = '~') {
- // check passed data
- if(!is_string($options)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->profile(): bad data passed, $options must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/' . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Send a message
- *
- * Send a message to another member or members
- *
- * @author @timersys
- *
- * @param array $recipients
- * The id or ids to send the message to.
- * @param str $subject
- * The subject of the invitation to send.
- * @param str $body
- * The body of the invitation to send.
- *
- * @return arr array
- * Containing retrieval success, LinkedIn response.
- */
- public function send_msg($recipients, $subject, $body) {
- /**
- * Clean up the passed data per these rules:
- *
- * 1) No HTML permitted
- * 2) 200 characters max in the invitation subject
- * 3) Only able to connect as a friend at this point
- */
-
- // check passed data
- if(empty($recipients)) {
- throw new LinkedInException('LinkedIn->send_msg(): you must provide an invitation recipient.');
- }
- if(!empty($subject)) {
- $subject = trim(htmlspecialchars(strip_tags(stripslashes($subject))));
- } else {
- throw new LinkedInException('LinkedIn->send_msg(): message subject is empty.');
- }
- if(!empty($body)) {
- $body = trim(htmlspecialchars(strip_tags(stripslashes($body))));
-
- if(strlen($body) > self::_INV_BODY_LENGTH) {
- throw new LinkedInException('LinkedIn->send_msg(): message body length is too long - max length is ' . self::_INV_BODY_LENGTH . ' characters.');
- }
- } else {
- throw new LinkedInException('LinkedIn->send_msg(): message body is empty.');
- }
-
- // construct the xml data
- $data = '
-
- ';
-
- foreach( $recipients as $recipient )
- {
- $data .= '';
- $data .= ' ';
- $data .= ' ';
- }
- $data .= '
- ' . $subject . '
- ' . $body . '
- ';
- // send request
- $query = self::_URL_API . '/v1/people/~/mailbox';
- $response = $this->fetch('POST', $query, $data);
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * Manual API call method, allowing for support for un-implemented API
- * functionality to be supported.
- *
- * @param str $method
- * The data communication method.
- * @param str $url
- * The Linkedin API endpoint to connect with - should NOT include the
- * leading https://api.linkedin.com/v1.
- * @param str $body
- * [OPTIONAL] The URL-encoded body data to send to LinkedIn with the request.
- *
- * @return arr
- * array containing retrieval information, LinkedIn response. Note that you
- * must manually check the return code and compare this to the expected
- * API response to determine if the raw call was successful.
- */
- public function raw($method, $url, $body = null) {
- if(!is_string($method)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->raw(): bad data passed, $method must be of string value.');
- }
- if(!is_string($url)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->raw(): bad data passed, $url must be of string value.');
- }
- if(!is_null($body) && !is_string($url)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->raw(): bad data passed, $body must be of string value.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1' . trim($url);
- return $this->fetch($method, $query, $body);
- }
-
- /**
- * This removes the specified group from the group suggestions, per:
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $gid
- * The group id.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function removeSuggestedGroup($gid) {
- if(!is_string($gid)) {
- throw new LinkedInException('LinkedIn->removeSuggestedGroup(): bad data passed, $gid must be of type string');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/suggestions/groups/' .trim($gid);
- $response = $this->fetch('DELETE', $query);
-
- /**
- * Check for successful request (a 204 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(204, $response);
- }
-
- /**
- * Renew a job.
- *
- * Calling this method causes the passed job to be renewed, per:
- *
- * http://developer.linkedin.com/docs/DOC-1154
- *
- * @param str $jid
- * Job ID you want to renew.
- * @param str $cid
- * Contract ID that covers the passed Job ID.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function renewJob($jid, $cid) {
- // check passed data
- if(!is_string($jid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->renewJob(): bad data passed, $jid must be of string value.');
- }
- if(!is_string($cid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->renewJob(): bad data passed, $cid must be of string value.');
- }
-
- // construct the xml data
- $data = '
-
- ' . trim($cid) . '
-
- ';
-
- // construct and send the request
- $query = self::_URL_API . '/v1/jobs/partner-job-id=' . trim($jid);
- $response = $this->fetch('PUT', $query, $data);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Access token retrieval.
- *
- * Request the user's access token from the Linkedin API.
- *
- * @param str $token
- * The token returned from the user authorization stage.
- * @param str $secret
- * The secret returned from the request token stage.
- * @param str $verifier
- * The verification value from LinkedIn.
- *
- * @return arr
- * The Linkedin OAuth/http response, in array format.
- */
- public function retrieveTokenAccess($token, $secret, $verifier) {
- // check passed data
- if(!is_string($token) || !is_string($secret) || !is_string($verifier)) {
- // nothing passed, raise an exception
- throw new LinkedInException('LinkedIn->retrieveTokenAccess(): bad data passed, string type is required for $token, $secret and $verifier.');
- }
-
- // start retrieval process
- $this->setToken(array('oauth_token' => $token, 'oauth_token_secret' => $secret));
- $parameters = array(
- 'oauth_verifier' => $verifier
- );
- $response = $this->fetch(self::_METHOD_TOKENS, self::_URL_ACCESS, null, $parameters);
- parse_str($response['linkedin'], $response['linkedin']);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- if($response['info']['http_code'] == 200) {
- // tokens retrieved
- $this->setToken($response['linkedin']);
-
- // set the response
- $return_data = $response;
- $return_data['success'] = true;
- } else {
- // error getting the request tokens
- $this->setToken(null);
-
- // set the response
- $return_data = $response;
- $return_data['error'] = 'HTTP response from LinkedIn end-point was not code 200';
- $return_data['success'] = false;
- }
- return $return_data;
- }
-
- /**
- * Request token retrieval.
- *
- * Get the request token from the Linkedin API.
- *
- * @return arr
- * The Linkedin OAuth/http response, in array format.
- */
- public function retrieveTokenRequest() {
- $parameters = array(
- 'oauth_callback' => $this->getCallbackUrl()
- );
- $response = $this->fetch(self::_METHOD_TOKENS, self::_URL_REQUEST, null, $parameters);
- parse_str($response['linkedin'], $response['linkedin']);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- if(($response['info']['http_code'] == 200) && (array_key_exists('oauth_callback_confirmed', $response['linkedin'])) && ($response['linkedin']['oauth_callback_confirmed'] == 'true')) {
- // tokens retrieved
- $this->setToken($response['linkedin']);
-
- // set the response
- $return_data = $response;
- $return_data['success'] = true;
- } else {
- // error getting the request tokens
- $this->setToken(null);
-
- // set the response
- $return_data = $response;
- if((array_key_exists('oauth_callback_confirmed', $response['linkedin'])) && ($response['linkedin']['oauth_callback_confirmed'] == 'true')) {
- $return_data['error'] = 'HTTP response from LinkedIn end-point was not code 200';
- } else {
- $return_data['error'] = 'OAuth callback URL was not confirmed by the LinkedIn end-point';
- }
- $return_data['success'] = false;
- }
- return $return_data;
- }
-
- /**
- * User authorization revocation.
- *
- * Revoke the current user's access token, clear the access token's from
- * current LinkedIn object. The current documentation for this feature is
- * found in a blog entry from April 29th, 2010:
- *
- * http://developer.linkedin.com/community/apis/blog/2010/04/29/oauth--now-for-authentication
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function revoke() {
- // construct and send the request
- $response = $this->fetch('GET', self::_URL_REVOKE);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * [DEPRECATED] General people search function.
- *
- * Takes a string of parameters as input and requests profile data from the
- * Linkedin People Search API. See the official documentation for $options
- * querystring formatting:
- *
- * http://developer.linkedin.com/docs/DOC-1191
- *
- * @param str $options
- * [OPTIONAL] Data retrieval options.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function search($options = null) {
- return searchPeople($options);
- }
-
- /**
- * Company search.
- *
- * Uses the Company Search API to find companies using keywords, industry,
- * location, or some other criteria. It returns a collection of matching
- * companies.
- *
- * http://developer.linkedin.com/docs/DOC-1325
- *
- * @param str $options
- * [OPTIONAL] Search options.
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function searchCompanies($options = '') {
- // check passed data
- if(!is_string($options)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->searchCompanies(): bad data passed, $options must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/company-search' . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Jobs search.
- *
- * Use the Job Search API to find jobs using keywords, company, location,
- * or some other criteria. It returns a collection of matching jobs. Each
- * entry can contain much of the information available on the job listing.
- *
- * http://developer.linkedin.com/docs/DOC-1321
- *
- * @param str $options
- * [OPTIONAL] Data retrieval options.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function searchJobs($options = '') {
- // check passed data
- if(!is_string($options)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->jobsSearch(): bad data passed, $options must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/job-search' . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * General people search function.
- *
- * Takes a string of parameters as input and requests profile data from the
- * Linkedin People Search API. See the official documentation for $options
- * querystring formatting:
- *
- * http://developer.linkedin.com/docs/DOC-1191
- *
- * @param str $options
- * [OPTIONAL] Data retrieval options.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function searchPeople($options = null) {
- // check passed data
- if(!is_null($options) && !is_string($options)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->search(): bad data passed, $options must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people-search' . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Set the application_key property.
- *
- * @param str $key
- * The application key.
- */
- public function setApplicationKey($key) {
- $this->application_key = $key;
- }
-
- /**
- * Set the application_secret property.
- *
- * @param str $secret
- * The application secret.
- */
- public function setApplicationSecret($secret) {
- $this->application_secret = $secret;
- }
-
- /**
- * Set the callback property.
- *
- * @param str $url
- * The callback url.
- */
- public function setCallbackUrl($url) {
- $this->callback = $url;
- }
-
- /**
- * This sets the group settings of the specified group.
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @param str $gid
- * The group id.
- * @param str $xml
- * The group settings to set. The settings are:
- * -
- * -
- * -
- * -
- * -
- * -
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function setGroupSettings($gid, $xml) {
- if(!is_string ($gid)) {
- throw new LinkedInException('LinkedIn->setGroupSettings(): bad data passed, $token_access should be in array format.');
- }
- if(!is_string ($xml)) {
- throw new LinkedInException('LinkedIn->setGroupSettings(): bad data passed, $token_access should be in array format.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/group-memberships/' . trim($gid);
- $response = $this->fetch('PUT', $query, $xml);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Set the response_format property.
- *
- * @param str $format
- * [OPTIONAL] The response format to specify to LinkedIn.
- */
- public function setResponseFormat($format = self::_DEFAULT_RESPONSE_FORMAT) {
- $this->response_format = $format;
- }
-
- /**
- * Set the token property.
- *
- * @return arr $token
- * The LinkedIn OAuth token.
- */
- public function setToken($token) {
- // check passed data
- if(!is_null($token) && !is_array($token)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->setToken(): bad data passed, $token_access should be in array format.');
- }
-
- // set token
- $this->token = $token;
- }
-
- /**
- * [DEPRECATED] Set the token_access property.
- *
- * @return arr $token_access
- * [OPTIONAL] The LinkedIn OAuth access token.
- */
- public function setTokenAccess($token_access) {
- $this->setToken($token_access);
- }
-
- /**
- * Post a share.
- *
- * Create a new or reshare another user's shared content. Full details from
- * LinkedIn on this functionality can be found here:
- *
- * http://developer.linkedin.com/docs/DOC-1212
- *
- * $action values: ('new', 'reshare')
- * $content format:
- * $action = 'new'; $content => ('comment' => 'xxx', 'title' => 'xxx', 'submitted-url' => 'xxx', 'submitted-image-url' => 'xxx', 'description' => 'xxx')
- * $action = 'reshare'; $content => ('comment' => 'xxx', 'id' => 'xxx')
- *
- * @param str $action
- * The sharing action to perform.
- * @param str $content
- * The share content.
- * @param bool $private
- * [OPTIONAL] Should we restrict this shared item to connections only?
- * @param bool $twitter
- * [OPTIONAL] Also update the teathered Twitter account.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function share($action, $content, $private = true, $twitter = false) {
- // check the status itself
- if(!empty($action) && !empty($content)) {
- /**
- * Status is not empty, wrap a cleaned version of it in xml. Status
- * rules:
- *
- * 1) Comments are 700 chars max (if this changes, change _SHARE_COMMENT_LENGTH constant)
- * 2) Content/title 200 chars max (if this changes, change _SHARE_CONTENT_TITLE_LENGTH constant)
- * 3) Content/description 400 chars max (if this changes, change _SHARE_CONTENT_DESC_LENGTH constant)
- * 4a) New shares must contain a comment and/or (content/title and content/submitted-url)
- * 4b) Reshared content must contain an attribution id.
- * 4c) Reshared content must contain actual content, not just a comment.
- * 5) No HTML permitted in comment, content/title, content/description.
- */
-
- // prepare the share data per the rules above
- $share_flag = false;
- $content_xml = null;
- switch($action) {
- case 'new':
- // share can be an article
- if(array_key_exists('title', $content) && array_key_exists('submitted-url', $content)) {
- // we have shared content, format it as needed per rules above
- $content_title = trim(htmlspecialchars(strip_tags(stripslashes($content['title']))));
- if(strlen($content_title) > self::_SHARE_CONTENT_TITLE_LENGTH) {
- throw new LinkedInException('LinkedIn->share(): title length is too long - max length is ' . self::_SHARE_CONTENT_TITLE_LENGTH . ' characters.');
- }
- $content_xml .= '
- ' . $content_title . '
- ' . trim(htmlspecialchars($content['submitted-url'])) . ' ';
- if(array_key_exists('submitted-image-url', $content)) {
- $content_xml .= '' . trim(htmlspecialchars($content['submitted-image-url'])) . ' ';
- }
- if(array_key_exists('description', $content)) {
- $content_desc = trim(htmlspecialchars(strip_tags(stripslashes($content['description']))));
- if(strlen($content_desc) > self::_SHARE_CONTENT_DESC_LENGTH) {
- throw new LinkedInException('LinkedIn->share(): description length is too long - max length is ' . self::_SHARE_CONTENT_DESC_LENGTH . ' characters.');
- }
- $content_xml .= '' . $content_desc . ' ';
- }
- $content_xml .= ' ';
-
- $share_flag = true;
- }
-
- // share can be just a comment
- if(array_key_exists('comment', $content)) {
- // comment located
- $comment = htmlspecialchars(trim(strip_tags(stripslashes($content['comment']))));
- if(strlen($comment) > self::_SHARE_COMMENT_LENGTH) {
- throw new LinkedInException('LinkedIn->share(): comment length is too long - max length is ' . self::_SHARE_COMMENT_LENGTH . ' characters.');
- }
- $content_xml .= '' . $comment . ' ';
-
- $share_flag = true;
- }
- break;
- case 'reshare':
- if(array_key_exists('id', $content)) {
- // put together the re-share attribution XML
- $content_xml .= '
-
- ' . trim($content['id']) . '
-
- ';
-
- // optional additional comment
- if(array_key_exists('comment', $content)) {
- // comment located
- $comment = htmlspecialchars(trim(strip_tags(stripslashes($content['comment']))));
- if(strlen($comment) > self::_SHARE_COMMENT_LENGTH) {
- throw new LinkedInException('LinkedIn->share(): comment length is too long - max length is ' . self::_SHARE_COMMENT_LENGTH . ' characters.');
- }
- $content_xml .= '' . $comment . ' ';
- }
-
- $share_flag = true;
- }
- break;
- default:
- // bad action passed
- throw new LinkedInException('LinkedIn->share(): share action is an invalid value, must be one of: share, reshare.');
- break;
- }
-
- // should we proceed?
- if($share_flag) {
- // put all of the xml together
- $visibility = ($private) ? 'connections-only' : 'anyone';
- $data = '
-
- ' . $content_xml . '
-
- ' . $visibility . '
-
- ';
-
- // create the proper url
- $share_url = self::_URL_API . '/v1/people/~/shares';
- if($twitter) {
- // update twitter as well
- $share_url .= '?twitter-post=true';
- }
-
- // send request
- $response = $this->fetch('POST', $share_url, $data);
- } else {
- // data constraints/rules not met, raise an exception
- throw new LinkedInException('LinkedIn->share(): sharing data constraints not met; check that you have supplied valid content and combinations of content to share.');
- }
- } else {
- // data missing, raise an exception
- throw new LinkedInException('LinkedIn->share(): sharing action or shared content is missing.');
- }
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * Network statistics.
- *
- * General network statistics retrieval function, returns the number of connections,
- * second-connections an authenticated user has. More information here:
- *
- * http://developer.linkedin.com/docs/DOC-1006
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function statistics() {
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/network/network-stats';
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Companies you may want to follow.
- *
- * Returns a list of companies the current user may want to follow, per:
- *
- * http://developer.linkedin.com/docs/DOC-1324
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function suggestedCompanies() {
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/suggestions/to-follow/companies';
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Retrieves suggested groups for the user, per:
- *
- * http://developer.linkedin.com/documents/groups-api
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function suggestedGroups() {
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/suggestions/groups:(id,name,is-open-to-non-members)';
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse (200, $response);
- }
-
- /**
- * Jobs you may be interested in.
- *
- * Returns a list of jobs the current user may be interested in, per:
- *
- * http://developer.linkedin.com/docs/DOC-1323
- *
- * @param str $options
- * [OPTIONAL] Data retrieval options.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function suggestedJobs($options = ':(jobs)') {
- // check passed data
- if(!is_string($options)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->suggestedJobs(): bad data passed, $options must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/suggestions/job-suggestions' . trim($options);
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Unbookmark a job.
- *
- * Calling this method causes the current user to remove a bookmark for the
- * specified job:
- *
- * http://developer.linkedin.com/docs/DOC-1323
- *
- * @param str $jid
- * Job ID you want to unbookmark.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function unbookmarkJob($jid) {
- // check passed data
- if(!is_string($jid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->unbookmarkJob(): bad data passed, $jid must be of type string.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/job-bookmarks/' . trim($jid);
- $response = $this->fetch('DELETE', $query);
-
- /**
- * Check for successful request (a 204 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(204, $response);
- }
-
- /**
- * Unfollow a company.
- *
- * Calling this method causes the current user to stop following the specified
- * company, per:
- *
- * http://developer.linkedin.com/docs/DOC-1324
- *
- * @param str $cid
- * Company ID you want to unfollow.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function unfollowCompany($cid) {
- // check passed data
- if(!is_string($cid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->unfollowCompany(): bad data passed, $cid must be of string value.');
- }
-
- // construct and send the request
- $query = self::_URL_API . '/v1/people/~/following/companies/id=' . trim($cid);
- $response = $this->fetch('DELETE', $query);
-
- /**
- * Check for successful request (a 204 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(204, $response);
- }
-
- /**
- * Unlike a network update.
- *
- * Unlike another user's network update:
- *
- * http://developer.linkedin.com/docs/DOC-1043
- *
- * @param str $uid
- * The LinkedIn update ID.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function unlike($uid) {
- // check passed data
- if(!is_string($uid)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->unlike(): bad data passed, $uid must be of type string.');
- }
-
- // construct the xml data
- $data = '
- false ';
-
- // send request
- $query = self::_URL_API . '/v1/people/~/network/updates/key=' . $uid . '/is-liked';
- $response = $this->fetch('PUT', $query, $data);
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- }
-
- /**
- * Post network update.
- *
- * Update the user's Linkedin network status. Full details from LinkedIn
- * on this functionality can be found here:
- *
- * http://developer.linkedin.com/docs/DOC-1009
- * http://developer.linkedin.com/docs/DOC-1009#comment-1077
- *
- * @param str $update
- * The network update.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function updateNetwork($update) {
- // check passed data
- if(!is_string($update)) {
- // nothing/non-string passed, raise an exception
- throw new LinkedInException('LinkedIn->updateNetwork(): bad data passed, $update must be a non-zero length string.');
- }
-
- /**
- * Network update is not empty, wrap a cleaned version of it in xml.
- * Network update rules:
- *
- * 1) No HTML permitted except those found in _NETWORK_HTML constant
- * 2) Update cannot be longer than 140 characters.
- */
- // get the user data
- $response = self::profile('~:(first-name,last-name,site-standard-profile-request)');
- if($response['success'] === true) {
- /**
- * We are converting response to usable data. I'd use SimpleXML here, but
- * to keep the class self-contained, we will use a portable XML parsing
- * routine, self::xmlToarray.
- */
- $person = self::xmlToarray($response['linkedin']);
- if($person === false) {
- // bad xml data
- throw new LinkedInException('LinkedIn->updateNetwork(): LinkedIn returned bad XML data.');
- }
- $fields = $person['person']['children'];
-
- // prepare user data
- $first_name = trim($fields['first-name']['content']);
- $last_name = trim($fields['last-name']['content']);
- $profile_url = trim($fields['site-standard-profile-request']['children']['url']['content']);
-
- // create the network update
- $update = trim(htmlspecialchars(strip_tags($update, self::_NETWORK_HTML)));
- if(strlen($update) > self::_NETWORK_LENGTH) {
- throw new LinkedInException('LinkedIn->share(): update length is too long - max length is ' . self::_NETWORK_LENGTH . ' characters.');
- }
- $user = htmlspecialchars('' . $first_name . ' ' . $last_name . ' ');
- $data = '
- linkedin-html
- ' . $user . ' ' . $update . '
- ';
-
- // send request
- $query = self::_URL_API . '/v1/people/~/person-activities';
- $response = $this->fetch('POST', $query, $data);
-
- /**
- * Check for successful request (a 201 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(201, $response);
- } else {
- // profile retrieval failed
- throw new LinkedInException('LinkedIn->updateNetwork(): profile data could not be retrieved.');
- }
- }
-
- /**
- * General network update retrieval function.
- *
- * Takes a string of parameters as input and requests update-related data
- * from the Linkedin Network Updates API. See the official documentation for
- * $options parameter formatting:
- *
- * http://developer.linkedin.com/docs/DOC-1006
- *
- * For getting more comments, likes, etc, see here:
- *
- * http://developer.linkedin.com/docs/DOC-1043
- *
- * @param str $options
- * [OPTIONAL] Data retrieval options.
- * @param str $id
- * [OPTIONAL] The LinkedIn ID to restrict the updates for.
- *
- * @return arr
- * array containing retrieval success, LinkedIn response.
- */
- public function updates($options = null, $id = null) {
- // check passed data
- if(!is_null($options) && !is_string($options)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->updates(): bad data passed, $options must be of type string.');
- }
- if(!is_null($id) && !is_string($id)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->updates(): bad data passed, $id must be of type string.');
- }
-
- // construct and send the request
- if(!is_null($id) && self::isId($id)) {
- $query = self::_URL_API . '/v1/people/' . $id . '/network/updates' . trim($options);
- } else {
- $query = self::_URL_API . '/v1/people/~/network/updates' . trim($options);
- }
- $response = $this->fetch('GET', $query);
-
- /**
- * Check for successful request (a 200 response from LinkedIn server)
- * per the documentation linked in method comments above.
- */
- return $this->checkResponse(200, $response);
- }
-
- /**
- * Converts passed XML data to an array.
- *
- * @param str $xml
- * The XML to convert to an array.
- *
- * @return arr
- * array containing the XML data.
- * @return bool
- * false if passed data cannot be parsed to an array.
- */
- public static function xmlToarray($xml) {
- // check passed data
- if(!is_string($xml)) {
- // bad data passed
- throw new LinkedInException('LinkedIn->xmlToarray(): bad data passed, $xml must be a non-zero length string.');
- }
-
- $parser = xml_parser_create();
- xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
- xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
- if(xml_parse_into_struct($parser, $xml, $tags)) {
- $elements = array();
- $stack = array();
- foreach($tags as $tag) {
- $index = count($elements);
- if($tag['type'] == 'complete' || $tag['type'] == 'open') {
- $elements[$tag['tag']] = array();
- $elements[$tag['tag']]['attributes'] = (array_key_exists('attributes', $tag)) ? $tag['attributes'] : null;
- $elements[$tag['tag']]['content'] = (array_key_exists('value', $tag)) ? $tag['value'] : null;
- if($tag['type'] == 'open') {
- $elements[$tag['tag']]['children'] = array();
- $stack[count($stack)] = &$elements;
- $elements = &$elements[$tag['tag']]['children'];
- }
- }
- if($tag['type'] == 'close') {
- $elements = &$stack[count($stack) - 1];
- unset($stack[count($stack) - 1]);
- }
- }
- $return_data = $elements;
- } else {
- // not valid xml data
- $return_data = false;
- }
- xml_parser_free($parser);
- return $return_data;
- }
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/thirdparty/OAuth/OAuth.php b/milfs/librerias/hybridauth/Hybrid/thirdparty/OAuth/OAuth.php
deleted file mode 100644
index e09d77c..0000000
--- a/milfs/librerias/hybridauth/Hybrid/thirdparty/OAuth/OAuth.php
+++ /dev/null
@@ -1,901 +0,0 @@
-key = $key;
- $this->secret = $secret;
- $this->callback_url = $callback_url;
- }
-
- function __toString() {
- return "OAuthConsumer[key=$this->key,secret=$this->secret]";
- }
-}
-
-class OAuthToken {
- // access tokens and request tokens
- public $key;
- public $secret;
-
- /**
- * key = the token
- * secret = the token secret
- */
- function __construct($key, $secret) {
- $this->key = $key;
- $this->secret = $secret;
- }
-
- /**
- * generates the basic string serialization of a token that a server
- * would respond to request_token and access_token calls with
- */
- function to_string() {
- return "oauth_token=" .
- OAuthUtil::urlencode_rfc3986($this->key) .
- "&oauth_token_secret=" .
- OAuthUtil::urlencode_rfc3986($this->secret);
- }
-
- function __toString() {
- return $this->to_string();
- }
-}
-
-/**
- * A class for implementing a Signature Method
- * See section 9 ("Signing Requests") in the spec
- */
-abstract class OAuthSignatureMethod {
- /**
- * Needs to return the name of the Signature Method (ie HMAC-SHA1)
- * @return string
- */
- abstract public function get_name();
-
- /**
- * Build up the signature
- * NOTE: The output of this function MUST NOT be urlencoded.
- * the encoding is handled in OAuthRequest when the final
- * request is serialized
- * @param OAuthRequest $request
- * @param OAuthConsumer $consumer
- * @param OAuthToken $token
- * @return string
- */
- abstract public function build_signature($request, $consumer, $token);
-
- /**
- * Verifies that a given signature is correct
- * @param OAuthRequest $request
- * @param OAuthConsumer $consumer
- * @param OAuthToken $token
- * @param string $signature
- * @return bool
- */
- public function check_signature($request, $consumer, $token, $signature) {
- $built = $this->build_signature($request, $consumer, $token);
-
- // Check for zero length, although unlikely here
- if (strlen($built) == 0 || strlen($signature) == 0) {
- return false;
- }
-
- if (strlen($built) != strlen($signature)) {
- return false;
- }
-
- // Avoid a timing leak with a (hopefully) time insensitive compare
- $result = 0;
- for ($i = 0; $i < strlen($signature); $i++) {
- $result |= ord($built{$i}) ^ ord($signature{$i});
- }
-
- return $result == 0;
- }
-}
-
-/**
- * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
- * where the Signature Base String is the text and the key is the concatenated values (each first
- * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
- * character (ASCII code 38) even if empty.
- * - Chapter 9.2 ("HMAC-SHA1")
- */
-class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
- function get_name() {
- return "HMAC-SHA1";
- }
-
- public function build_signature($request, $consumer, $token) {
- $base_string = $request->get_signature_base_string();
- $request->base_string = $base_string;
-
- $key_parts = array(
- $consumer->secret,
- ($token) ? $token->secret : ""
- );
-
- $key_parts = OAuthUtil::urlencode_rfc3986($key_parts);
- $key = implode('&', $key_parts);
-
- return base64_encode(hash_hmac('sha1', $base_string, $key, true));
- }
-}
-
-/**
- * The PLAINTEXT method does not provide any security protection and SHOULD only be used
- * over a secure channel such as HTTPS. It does not use the Signature Base String.
- * - Chapter 9.4 ("PLAINTEXT")
- */
-class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
- public function get_name() {
- return "PLAINTEXT";
- }
-
- /**
- * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
- * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
- * empty. The result MUST be encoded again.
- * - Chapter 9.4.1 ("Generating Signatures")
- *
- * Please note that the second encoding MUST NOT happen in the SignatureMethod, as
- * OAuthRequest handles this!
- */
- public function build_signature($request, $consumer, $token) {
- $key_parts = array(
- $consumer->secret,
- ($token) ? $token->secret : ""
- );
-
- $key_parts = OAuthUtil::urlencode_rfc3986($key_parts);
- $key = implode('&', $key_parts);
- $request->base_string = $key;
-
- return $key;
- }
-}
-
-/**
- * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
- * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
- * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
- * verified way to the Service Provider, in a manner which is beyond the scope of this
- * specification.
- * - Chapter 9.3 ("RSA-SHA1")
- */
-abstract class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod {
- public function get_name() {
- return "RSA-SHA1";
- }
-
- // Up to the SP to implement this lookup of keys. Possible ideas are:
- // (1) do a lookup in a table of trusted certs keyed off of consumer
- // (2) fetch via http using a url provided by the requester
- // (3) some sort of specific discovery code based on request
- //
- // Either way should return a string representation of the certificate
- protected abstract function fetch_public_cert(&$request);
-
- // Up to the SP to implement this lookup of keys. Possible ideas are:
- // (1) do a lookup in a table of trusted certs keyed off of consumer
- //
- // Either way should return a string representation of the certificate
- protected abstract function fetch_private_cert(&$request);
-
- public function build_signature($request, $consumer, $token) {
- $base_string = $request->get_signature_base_string();
- $request->base_string = $base_string;
-
- // Fetch the private key cert based on the request
- $cert = $this->fetch_private_cert($request);
-
- // Pull the private key ID from the certificate
- $privatekeyid = openssl_get_privatekey($cert);
-
- // Sign using the key
- $ok = openssl_sign($base_string, $signature, $privatekeyid);
-
- // Release the key resource
- openssl_free_key($privatekeyid);
-
- return base64_encode($signature);
- }
-
- public function check_signature($request, $consumer, $token, $signature) {
- $decoded_sig = base64_decode($signature);
-
- $base_string = $request->get_signature_base_string();
-
- // Fetch the public key cert based on the request
- $cert = $this->fetch_public_cert($request);
-
- // Pull the public key ID from the certificate
- $publickeyid = openssl_get_publickey($cert);
-
- // Check the computed signature against the one passed in the query
- $ok = openssl_verify($base_string, $decoded_sig, $publickeyid);
-
- // Release the key resource
- openssl_free_key($publickeyid);
-
- return $ok == 1;
- }
-}
-
-class OAuthRequest {
- protected $parameters;
- protected $http_method;
- protected $http_url;
- // for debug purposes
- public $base_string;
- public static $version = '1.0';
- public static $POST_INPUT = 'php://input';
-
- function __construct($http_method, $http_url, $parameters=null) {
- $parameters = ($parameters) ? $parameters : array();
- $parameters = array_merge( OAuthUtil::parse_parameters(parse_url($http_url, PHP_URL_QUERY)), $parameters);
- $this->parameters = $parameters;
- $this->http_method = $http_method;
- $this->http_url = $http_url;
- }
-
-
- /**
- * attempt to build up a request from what was passed to the server
- */
- public static function from_request($http_method=null, $http_url=null, $parameters=null) {
- $scheme = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on")
- ? 'http'
- : 'https';
- if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
- $scheme = $_SERVER['HTTP_X_FORWARDED_PROTO'];
- }
- $http_url = ($http_url) ? $http_url : $scheme .
- '://' . $_SERVER['SERVER_NAME'] .
- ':' .
- $_SERVER['SERVER_PORT'] .
- $_SERVER['REQUEST_URI'];
- $http_method = ($http_method) ? $http_method : $_SERVER['REQUEST_METHOD'];
-
- // We weren't handed any parameters, so let's find the ones relevant to
- // this request.
- // If you run XML-RPC or similar you should use this to provide your own
- // parsed parameter-list
- if (!$parameters) {
- // Find request headers
- $request_headers = OAuthUtil::get_headers();
-
- // Parse the query-string to find GET parameters
- $parameters = OAuthUtil::parse_parameters($_SERVER['QUERY_STRING']);
-
- // It's a POST request of the proper content-type, so parse POST
- // parameters and add those overriding any duplicates from GET
- if ($http_method == "POST"
- && isset($request_headers['Content-Type'])
- && strstr($request_headers['Content-Type'],
- 'application/x-www-form-urlencoded')
- ) {
- $post_data = OAuthUtil::parse_parameters(
- file_get_contents(self::$POST_INPUT)
- );
- $parameters = array_merge($parameters, $post_data);
- }
-
- // We have a Authorization-header with OAuth data. Parse the header
- // and add those overriding any duplicates from GET or POST
- if (isset($request_headers['Authorization']) && substr($request_headers['Authorization'], 0, 6) == 'OAuth ') {
- $header_parameters = OAuthUtil::split_header(
- $request_headers['Authorization']
- );
- $parameters = array_merge($parameters, $header_parameters);
- }
-
- }
-
- return new OAuthRequest($http_method, $http_url, $parameters);
- }
-
- /**
- * pretty much a helper function to set up the request
- */
- public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters=null) {
- $parameters = ($parameters) ? $parameters : array();
- $defaults = array("oauth_version" => OAuthRequest::$version,
- "oauth_nonce" => OAuthRequest::generate_nonce(),
- "oauth_timestamp" => OAuthRequest::generate_timestamp(),
- "oauth_consumer_key" => $consumer->key);
- if ($token)
- $defaults['oauth_token'] = $token->key;
-
- $parameters = array_merge($defaults, $parameters);
-
- return new OAuthRequest($http_method, $http_url, $parameters);
- }
-
- public function set_parameter($name, $value, $allow_duplicates = true) {
- if ($allow_duplicates && isset($this->parameters[$name])) {
- // We have already added parameter(s) with this name, so add to the list
- if (is_scalar($this->parameters[$name])) {
- // This is the first duplicate, so transform scalar (string)
- // into an array so we can add the duplicates
- $this->parameters[$name] = array($this->parameters[$name]);
- }
-
- $this->parameters[$name][] = $value;
- } else {
- $this->parameters[$name] = $value;
- }
- }
-
- public function get_parameter($name) {
- return isset($this->parameters[$name]) ? $this->parameters[$name] : null;
- }
-
- public function get_parameters() {
- return $this->parameters;
- }
-
- public function unset_parameter($name) {
- unset($this->parameters[$name]);
- }
-
- /**
- * The request parameters, sorted and concatenated into a normalized string.
- * @return string
- */
- public function get_signable_parameters() {
- // Grab all parameters
- $params = $this->parameters;
-
- // Remove oauth_signature if present
- // Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.")
- if (isset($params['oauth_signature'])) {
- unset($params['oauth_signature']);
- }
-
- return OAuthUtil::build_http_query($params);
- }
-
- /**
- * Returns the base string of this request
- *
- * The base string defined as the method, the url
- * and the parameters (normalized), each urlencoded
- * and the concated with &.
- */
- public function get_signature_base_string() {
- $parts = array(
- $this->get_normalized_http_method(),
- $this->get_normalized_http_url(),
- $this->get_signable_parameters()
- );
-
- $parts = OAuthUtil::urlencode_rfc3986($parts);
-
- return implode('&', $parts);
- }
-
- /**
- * just uppercases the http method
- */
- public function get_normalized_http_method() {
- return strtoupper($this->http_method);
- }
-
- /**
- * parses the url and rebuilds it to be
- * scheme://host/path
- */
- public function get_normalized_http_url() {
- $parts = parse_url($this->http_url);
-
- $scheme = (isset($parts['scheme'])) ? $parts['scheme'] : 'http';
- $port = (isset($parts['port'])) ? $parts['port'] : (($scheme == 'https') ? '443' : '80');
- $host = (isset($parts['host'])) ? strtolower($parts['host']) : '';
- $path = (isset($parts['path'])) ? $parts['path'] : '';
-
- if (($scheme == 'https' && $port != '443')
- || ($scheme == 'http' && $port != '80')) {
- $host = "$host:$port";
- }
- return "$scheme://$host$path";
- }
-
- /**
- * builds a url usable for a GET request
- */
- public function to_url() {
- $post_data = $this->to_postdata();
- $out = $this->get_normalized_http_url();
- if ($post_data) {
- $out .= '?'.$post_data;
- }
- return $out;
- }
-
- /**
- * builds the data one would send in a POST request
- */
- public function to_postdata() {
- return OAuthUtil::build_http_query($this->parameters);
- }
-
- /**
- * builds the Authorization: header
- */
- public function to_header($realm=null) {
- $first = true;
- if($realm) {
- $out = 'Authorization: OAuth realm="' . OAuthUtil::urlencode_rfc3986($realm) . '"';
- $first = false;
- } else
- $out = 'Authorization: OAuth';
-
- $total = array();
- foreach ($this->parameters as $k => $v) {
- if (substr($k, 0, 5) != "oauth") continue;
- if (is_array($v)) {
- throw new OAuthException('arrays not supported in headers');
- }
- $out .= ($first) ? ' ' : ',';
- $out .= OAuthUtil::urlencode_rfc3986($k) .
- '="' .
- OAuthUtil::urlencode_rfc3986($v) .
- '"';
- $first = false;
- }
- return $out;
- }
-
- public function __toString() {
- return $this->to_url();
- }
-
-
- public function sign_request($signature_method, $consumer, $token) {
- $this->set_parameter(
- "oauth_signature_method",
- $signature_method->get_name(),
- false
- );
- $signature = $this->build_signature($signature_method, $consumer, $token);
- $this->set_parameter("oauth_signature", $signature, false);
- }
-
- public function build_signature($signature_method, $consumer, $token) {
- $signature = $signature_method->build_signature($this, $consumer, $token);
- return $signature;
- }
-
- /**
- * util function: current timestamp
- */
- private static function generate_timestamp() {
- return time();
- }
-
- /**
- * util function: current nonce
- */
- private static function generate_nonce() {
- $mt = microtime();
- $rand = mt_rand();
-
- return md5($mt . $rand); // md5s look nicer than numbers
- }
-}
-
-class OAuthServer {
- protected $timestamp_threshold = 300; // in seconds, five minutes
- protected $version = '1.0'; // hi blaine
- protected $signature_methods = array();
-
- protected $data_store;
-
- function __construct($data_store) {
- $this->data_store = $data_store;
- }
-
- public function add_signature_method($signature_method) {
- $this->signature_methods[$signature_method->get_name()] =
- $signature_method;
- }
-
- // high level functions
-
- /**
- * process a request_token request
- * returns the request token on success
- */
- public function fetch_request_token(&$request) {
- $this->get_version($request);
-
- $consumer = $this->get_consumer($request);
-
- // no token required for the initial token request
- $token = null;
-
- $this->check_signature($request, $consumer, $token);
-
- // Rev A change
- $callback = $request->get_parameter('oauth_callback');
- $new_token = $this->data_store->new_request_token($consumer, $callback);
-
- return $new_token;
- }
-
- /**
- * process an access_token request
- * returns the access token on success
- */
- public function fetch_access_token(&$request) {
- $this->get_version($request);
-
- $consumer = $this->get_consumer($request);
-
- // requires authorized request token
- $token = $this->get_token($request, $consumer, "request");
-
- $this->check_signature($request, $consumer, $token);
-
- // Rev A change
- $verifier = $request->get_parameter('oauth_verifier');
- $new_token = $this->data_store->new_access_token($token, $consumer, $verifier);
-
- return $new_token;
- }
-
- /**
- * verify an api call, checks all the parameters
- */
- public function verify_request(&$request) {
- $this->get_version($request);
- $consumer = $this->get_consumer($request);
- $token = $this->get_token($request, $consumer, "access");
- $this->check_signature($request, $consumer, $token);
- return array($consumer, $token);
- }
-
- // Internals from here
- /**
- * version 1
- */
- private function get_version(&$request) {
- $version = $request->get_parameter("oauth_version");
- if (!$version) {
- // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
- // Chapter 7.0 ("Accessing Protected Ressources")
- $version = '1.0';
- }
- if ($version !== $this->version) {
- throw new OAuthException("OAuth version '$version' not supported");
- }
- return $version;
- }
-
- /**
- * figure out the signature with some defaults
- */
- private function get_signature_method($request) {
- $signature_method = $request instanceof OAuthRequest
- ? $request->get_parameter("oauth_signature_method")
- : null;
-
- if (!$signature_method) {
- // According to chapter 7 ("Accessing Protected Ressources") the signature-method
- // parameter is required, and we can't just fallback to PLAINTEXT
- throw new OAuthException('No signature method parameter. This parameter is required');
- }
-
- if (!in_array($signature_method,
- array_keys($this->signature_methods))) {
- throw new OAuthException(
- "Signature method '$signature_method' not supported " .
- "try one of the following: " .
- implode(", ", array_keys($this->signature_methods))
- );
- }
- return $this->signature_methods[$signature_method];
- }
-
- /**
- * try to find the consumer for the provided request's consumer key
- */
- private function get_consumer($request) {
- $consumer_key = $request instanceof OAuthRequest
- ? $request->get_parameter("oauth_consumer_key")
- : null;
-
- if (!$consumer_key) {
- throw new OAuthException("Invalid consumer key");
- }
-
- $consumer = $this->data_store->lookup_consumer($consumer_key);
- if (!$consumer) {
- throw new OAuthException("Invalid consumer");
- }
-
- return $consumer;
- }
-
- /**
- * try to find the token for the provided request's token key
- */
- private function get_token($request, $consumer, $token_type="access") {
- $token_field = $request instanceof OAuthRequest
- ? $request->get_parameter('oauth_token')
- : null;
-
- $token = $this->data_store->lookup_token(
- $consumer, $token_type, $token_field
- );
- if (!$token) {
- throw new OAuthException("Invalid $token_type token: $token_field");
- }
- return $token;
- }
-
- /**
- * all-in-one function to check the signature on a request
- * should guess the signature method appropriately
- */
- private function check_signature($request, $consumer, $token) {
- // this should probably be in a different method
- $timestamp = $request instanceof OAuthRequest
- ? $request->get_parameter('oauth_timestamp')
- : null;
- $nonce = $request instanceof OAuthRequest
- ? $request->get_parameter('oauth_nonce')
- : null;
-
- $this->check_timestamp($timestamp);
- $this->check_nonce($consumer, $token, $nonce, $timestamp);
-
- $signature_method = $this->get_signature_method($request);
-
- $signature = $request->get_parameter('oauth_signature');
- $valid_sig = $signature_method->check_signature(
- $request,
- $consumer,
- $token,
- $signature
- );
-
- if (!$valid_sig) {
- throw new OAuthException("Invalid signature");
- }
- }
-
- /**
- * check that the timestamp is new enough
- */
- private function check_timestamp($timestamp) {
- if( ! $timestamp )
- throw new OAuthException(
- 'Missing timestamp parameter. The parameter is required'
- );
-
- // verify that timestamp is recentish
- $now = time();
- if (abs($now - $timestamp) > $this->timestamp_threshold) {
- throw new OAuthException(
- "Expired timestamp, yours $timestamp, ours $now"
- );
- }
- }
-
- /**
- * check that the nonce is not repeated
- */
- private function check_nonce($consumer, $token, $nonce, $timestamp) {
- if( ! $nonce )
- throw new OAuthException(
- 'Missing nonce parameter. The parameter is required'
- );
-
- // verify that the nonce is uniqueish
- $found = $this->data_store->lookup_nonce(
- $consumer,
- $token,
- $nonce,
- $timestamp
- );
- if ($found) {
- throw new OAuthException("Nonce already used: $nonce");
- }
- }
-
-}
-
-class OAuthDataStore {
- function lookup_consumer($consumer_key) {
- // implement me
- }
-
- function lookup_token($consumer, $token_type, $token) {
- // implement me
- }
-
- function lookup_nonce($consumer, $token, $nonce, $timestamp) {
- // implement me
- }
-
- function new_request_token($consumer, $callback = null) {
- // return a new token attached to this consumer
- }
-
- function new_access_token($token, $consumer, $verifier = null) {
- // return a new access token attached to this consumer
- // for the user associated with this token if the request token
- // is authorized
- // should also invalidate the request token
- }
-
-}
-
-class OAuthUtil {
- public static function urlencode_rfc3986($input) {
- if (is_array($input)) {
- return array_map(array('OAuthUtil', 'urlencode_rfc3986'), $input);
- } else if (is_scalar($input)) {
- return str_replace(
- '+',
- ' ',
- str_replace('%7E', '~', rawurlencode($input))
- );
- } else {
- return '';
- }
-}
-
-
- // This decode function isn't taking into consideration the above
- // modifications to the encoding process. However, this method doesn't
- // seem to be used anywhere so leaving it as is.
- public static function urldecode_rfc3986($string) {
- return urldecode($string);
- }
-
- // Utility function for turning the Authorization: header into
- // parameters, has to do some unescaping
- // Can filter out any non-oauth parameters if needed (default behaviour)
- // May 28th, 2010 - method updated to tjerk.meesters for a speed improvement.
- // see http://code.google.com/p/oauth/issues/detail?id=163
- public static function split_header($header, $only_allow_oauth_parameters = true) {
- $params = array();
- if (preg_match_all('/('.($only_allow_oauth_parameters ? 'oauth_' : '').'[a-z_-]*)=(:?"([^"]*)"|([^,]*))/', $header, $matches)) {
- foreach ($matches[1] as $i => $h) {
- $params[$h] = OAuthUtil::urldecode_rfc3986(empty($matches[3][$i]) ? $matches[4][$i] : $matches[3][$i]);
- }
- if (isset($params['realm'])) {
- unset($params['realm']);
- }
- }
- return $params;
- }
-
- // helper to try to sort out headers for people who aren't running apache
- public static function get_headers() {
- if (function_exists('apache_request_headers')) {
- // we need this to get the actual Authorization: header
- // because apache tends to tell us it doesn't exist
- $headers = apache_request_headers();
-
- // sanitize the output of apache_request_headers because
- // we always want the keys to be Cased-Like-This and arh()
- // returns the headers in the same case as they are in the
- // request
- $out = array();
- foreach ($headers AS $key => $value) {
- $key = str_replace(
- " ",
- "-",
- ucwords(strtolower(str_replace("-", " ", $key)))
- );
- $out[$key] = $value;
- }
- } else {
- // otherwise we don't have apache and are just going to have to hope
- // that $_SERVER actually contains what we need
- $out = array();
- if( isset($_SERVER['CONTENT_TYPE']) )
- $out['Content-Type'] = $_SERVER['CONTENT_TYPE'];
- if( isset($_ENV['CONTENT_TYPE']) )
- $out['Content-Type'] = $_ENV['CONTENT_TYPE'];
-
- foreach ($_SERVER as $key => $value) {
- if (substr($key, 0, 5) == "HTTP_") {
- // this is chaos, basically it is just there to capitalize the first
- // letter of every word that is not an initial HTTP and strip HTTP
- // code from przemek
- $key = str_replace(
- " ",
- "-",
- ucwords(strtolower(str_replace("_", " ", substr($key, 5))))
- );
- $out[$key] = $value;
- }
- }
- }
- return $out;
- }
-
- // This function takes a input like a=b&a=c&d=e and returns the parsed
- // parameters like this
- // array('a' => array('b','c'), 'd' => 'e')
- public static function parse_parameters( $input ) {
- if (!isset($input) || !$input) return array();
-
- $pairs = explode('&', $input);
-
- $parsed_parameters = array();
- foreach ($pairs as $pair) {
- $split = explode('=', $pair, 2);
- $parameter = OAuthUtil::urldecode_rfc3986($split[0]);
- $value = isset($split[1]) ? OAuthUtil::urldecode_rfc3986($split[1]) : '';
-
- if (isset($parsed_parameters[$parameter])) {
- // We have already recieved parameter(s) with this name, so add to the list
- // of parameters with this name
-
- if (is_scalar($parsed_parameters[$parameter])) {
- // This is the first duplicate, so transform scalar (string) into an array
- // so we can add the duplicates
- $parsed_parameters[$parameter] = array($parsed_parameters[$parameter]);
- }
-
- $parsed_parameters[$parameter][] = $value;
- } else {
- $parsed_parameters[$parameter] = $value;
- }
- }
- return $parsed_parameters;
- }
-
- public static function build_http_query($params) {
- if (!$params) return '';
-
- // Urlencode both keys and values
- $keys = OAuthUtil::urlencode_rfc3986(array_keys($params));
- $values = OAuthUtil::urlencode_rfc3986(array_values($params));
- $params = array_combine($keys, $values);
-
- // Parameters are sorted by name, using lexicographical byte value ordering.
- // Ref: Spec: 9.1.1 (1)
- uksort($params, 'strcmp');
-
- $pairs = array();
- foreach ($params as $parameter => $value) {
- if (is_array($value)) {
- // If two or more parameters share the same name, they are sorted by their value
- // Ref: Spec: 9.1.1 (1)
- // June 12th, 2010 - changed to sort because of issue 164 by hidetaka
- sort($value, SORT_STRING);
- foreach ($value as $duplicate_value) {
- $pairs[] = $parameter . '=' . $duplicate_value;
- }
- } else {
- $pairs[] = $parameter . '=' . $value;
- }
- }
- // For each parameter, the name is separated from the corresponding value by an '=' character (ASCII code 61)
- // Each name-value pair is separated by an '&' character (ASCII code 38)
- return implode('&', $pairs);
- }
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/thirdparty/OAuth/OAuth1Client.php b/milfs/librerias/hybridauth/Hybrid/thirdparty/OAuth/OAuth1Client.php
deleted file mode 100644
index 64c03c8..0000000
--- a/milfs/librerias/hybridauth/Hybrid/thirdparty/OAuth/OAuth1Client.php
+++ /dev/null
@@ -1,264 +0,0 @@
-sha1_method = new OAuthSignatureMethod_HMAC_SHA1();
- $this->consumer = new OAuthConsumer( $consumer_key, $consumer_secret );
- $this->token = null;
-
- if ( $oauth_token && $oauth_token_secret ){
- $this->token = new OAuthConsumer( $oauth_token, $oauth_token_secret );
- }
- }
-
- /**
- * Build authorize url
- *
- * @return string
- */
- function authorizeUrl( $token, $extras =array() )
- {
- if ( is_array( $token ) ){
- $token = $token['oauth_token'];
- }
-
- $parameters = array( "oauth_token" => $token );
-
- if( count($extras) )
- foreach( $extras as $k=>$v )
- $parameters[$k] = $v;
-
- return $this->authorize_url . "?" . http_build_query( $parameters );
- }
-
- /**
- * Get a request_token from provider
- *
- * @return array a key/value array containing oauth_token and oauth_token_secret
- */
- function requestToken( $callback = null )
- {
- $parameters = array();
-
- if ( $callback ) {
- $this->redirect_uri = $parameters['oauth_callback'] = $callback;
- }
-
- $request = $this->signedRequest( $this->request_token_url, $this->request_token_method, $parameters );
- $token = OAuthUtil::parse_parameters( $request );
- $this->token = new OAuthConsumer( $token['oauth_token'], $token['oauth_token_secret'] );
-
- return $token;
- }
-
- /**
- * Exchange the request token and secret for an access token and secret, to sign API calls.
- *
- * @return array array('oauth_token' => the access token, 'oauth_token_secret' => the access secret)
- */
- function accessToken( $oauth_verifier = false, $oauth_token = false )
- {
- $parameters = array();
-
- // 1.0a
- if ( $oauth_verifier ) {
- $parameters['oauth_verifier'] = $oauth_verifier;
- }
-
- $request = $this->signedRequest( $this->access_token_url, $this->access_token_method, $parameters );
- $token = OAuthUtil::parse_parameters( $request );
- $this->token = new OAuthConsumer( $token['oauth_token'], $token['oauth_token_secret'] );
-
- return $token;
- }
-
- /**
- * GET wrapper for provider apis request
- */
- function get($url, $parameters = array(), $content_type = null)
- {
- return $this->api($url, 'GET', $parameters, null, $content_type);
- }
-
- /**
- * POST wrapper for provider apis request
- */
- function post($url, $parameters = array(), $body = null, $content_type = null, $multipart = false)
- {
- return $this->api($url, 'POST', $parameters, $body, $content_type, $multipart );
- }
-
- /**
- * Format and sign an oauth for provider api
- */
- function api( $url, $method = 'GET', $parameters = array(), $body = null, $content_type = null, $multipart = false )
- {
- if ( strrpos($url, 'http://') !== 0 && strrpos($url, 'https://') !== 0 ) {
- $url = $this->api_base_url . $url;
- }
-
- $response = $this->signedRequest( $url, $method, $parameters, $body, $content_type, $multipart );
-
- if( $this->decode_json ){
- $response = json_decode( $response );
- }
-
- return $this->response = $response;
- }
-
- /**
- * Return the response object afer the fact
- *
- * @return mixed
- */
- public function getResponse()
- {
- return $this->response;
- }
-
- /**
- * Make signed request
- */
- function signedRequest( $url, $method, $parameters, $body = null, $content_type = null, $multipart = false )
- {
-
- $signature_parameters = array();
-
- // when making a multipart request, use only oauth_* keys for signature
- foreach( $parameters AS $key => $value ){
- if( !$multipart || strpos( $key, 'oauth_' ) === 0 ){
- $signature_parameters[$key] = $value;
- }
- }
-
- $request = OAuthRequest::from_consumer_and_token($this->consumer, $this->token, $method, $url, $signature_parameters);
- $request->sign_request($this->sha1_method, $this->consumer, $this->token);
- switch ($method) {
- case 'GET': return $this->request( $request->to_url(), 'GET', null, null, $content_type );
- default :
- if ($body)
- return $this->request( $request->to_url(), $method, $body, $request->to_header(), $content_type );
- else
- return $this->request( $request->get_normalized_http_url(), $method, ($multipart ? $parameters : $request->to_postdata()), $request->to_header(), $content_type, $multipart ) ;
- }
- }
-
- /**
- * Make http request
- */
- function request( $url, $method, $postfields = null, $auth_header = null, $content_type = null, $multipart = false )
- {
- Hybrid_Logger::info( "Enter OAuth1Client::request( $method, $url )" );
- Hybrid_Logger::debug( "OAuth1Client::request(). dump post fields: ", serialize( $postfields ) );
-
- $this->http_info = array();
- $ci = curl_init();
-
- /* Curl settings */
- curl_setopt( $ci, CURLOPT_USERAGENT , $this->curl_useragent );
- curl_setopt( $ci, CURLOPT_CONNECTTIMEOUT, $this->curl_connect_time_out );
- curl_setopt( $ci, CURLOPT_TIMEOUT , $this->curl_time_out );
- curl_setopt( $ci, CURLOPT_RETURNTRANSFER, true );
- curl_setopt( $ci, CURLOPT_HTTPHEADER , array('Expect:') );
- curl_setopt( $ci, CURLOPT_SSL_VERIFYPEER, $this->curl_ssl_verifypeer );
- curl_setopt( $ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader') );
- curl_setopt( $ci, CURLOPT_HEADER , false );
-
- if( $multipart ){
- curl_setopt( $ci, CURLOPT_HTTPHEADER, array( 'Expect:', $auth_header ) );
-
- }elseif ($content_type)
- curl_setopt( $ci, CURLOPT_HTTPHEADER, array('Expect:', "Content-Type: $content_type") );
-
- if($this->curl_proxy){
- curl_setopt( $ci, CURLOPT_PROXY , $this->curl_proxy);
- }
-
- switch ($method){
- case 'POST':
- curl_setopt( $ci, CURLOPT_POST, true );
-
- if ( !empty($postfields) ){
- curl_setopt( $ci, CURLOPT_POSTFIELDS, $postfields );
- }
-
- if ( !empty($auth_header) && $this->curl_auth_header && !$multipart ){
- curl_setopt( $ci, CURLOPT_HTTPHEADER, array( 'Content-Type: application/atom+xml', $auth_header ) );
- }
- break;
- case 'DELETE':
- curl_setopt( $ci, CURLOPT_CUSTOMREQUEST, 'DELETE' );
- if ( !empty($postfields) ){
- $url = "{$url}?{$postfields}";
- }
- }
-
- curl_setopt($ci, CURLOPT_URL, $url);
- $response = curl_exec($ci);
- if( $response === false ) {
- Hybrid_Logger::error( "OAuth1Client::request(). curl_exec error: ", curl_error($ci) );
- }
-
-
- Hybrid_Logger::debug( "OAuth1Client::request(). dump request info: ", serialize( curl_getinfo($ci) ) );
- Hybrid_Logger::debug( "OAuth1Client::request(). dump request result: ", serialize( $response ) );
-
- $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
- $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
-
- curl_close ($ci);
-
- return $response;
- }
-
- /**
- * Get the header info to store.
- */
- function getHeader($ch, $header) {
- $i = strpos($header, ':');
-
- if ( !empty($i) ){
- $key = str_replace('-', '_', strtolower(substr($header, 0, $i)));
- $value = trim(substr($header, $i + 2));
- $this->http_header[$key] = $value;
- }
-
- return strlen($header);
- }
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/thirdparty/OAuth/OAuth2Client.php b/milfs/librerias/hybridauth/Hybrid/thirdparty/OAuth/OAuth2Client.php
deleted file mode 100644
index ceb42f3..0000000
--- a/milfs/librerias/hybridauth/Hybrid/thirdparty/OAuth/OAuth2Client.php
+++ /dev/null
@@ -1,266 +0,0 @@
-client_id = $client_id;
- $this->client_secret = $client_secret;
- $this->redirect_uri = $redirect_uri;
- $this->curl_compressed = $compressed;
- }
-
- public function authorizeUrl( $extras = array() )
- {
- $params = array(
- "client_id" => $this->client_id,
- "redirect_uri" => $this->redirect_uri,
- "response_type" => "code"
- );
-
- if( count($extras) )
- foreach( $extras as $k=>$v )
- $params[$k] = $v;
-
- return $this->authorize_url . "?" . http_build_query($params, '', '&');
- }
-
- public function authenticate( $code )
- {
- $params = array(
- "client_id" => $this->client_id,
- "client_secret" => $this->client_secret,
- "grant_type" => "authorization_code",
- "redirect_uri" => $this->redirect_uri,
- "code" => $code
- );
-
- $response = $this->request( $this->token_url, $params, $this->curl_authenticate_method );
-
- $response = $this->parseRequestResult( $response );
-
- if( ! $response || ! isset( $response->access_token ) ){
- throw new Exception( "The Authorization Service has return: " . $response->error );
- }
-
- if( isset( $response->access_token ) ) $this->access_token = $response->access_token;
- if( isset( $response->refresh_token ) ) $this->refresh_token = $response->refresh_token;
- if( isset( $response->expires_in ) ) $this->access_token_expires_in = $response->expires_in;
-
- // calculate when the access token expire
- if( isset($response->expires_in)) {
- $this->access_token_expires_at = time() + $response->expires_in;
- }
-
- return $response;
- }
-
- public function authenticated()
- {
- if ( $this->access_token ){
- if ( $this->token_info_url && $this->refresh_token ){
- // check if this access token has expired,
- $tokeninfo = $this->tokenInfo( $this->access_token );
-
- // if yes, access_token has expired, then ask for a new one
- if( $tokeninfo && isset( $tokeninfo->error ) ){
- $response = $this->refreshToken( $this->refresh_token );
-
- // if wrong response
- if( ! isset( $response->access_token ) || ! $response->access_token ){
- throw new Exception( "The Authorization Service has return an invalid response while requesting a new access token. given up!" );
- }
-
- // set new access_token
- $this->access_token = $response->access_token;
- }
- }
-
- return true;
- }
-
- return false;
- }
-
- /**
- * Format and sign an oauth for provider api
- */
- public function api( $url, $method = "GET", $parameters = array() )
- {
- if ( strrpos($url, 'http://') !== 0 && strrpos($url, 'https://') !== 0 ) {
- $url = $this->api_base_url . $url;
- }
-
- $parameters[$this->sign_token_name] = $this->access_token;
- $response = null;
-
- switch( $method ){
- case 'GET' : $response = $this->request( $url, $parameters, "GET" ); break;
- case 'POST' : $response = $this->request( $url, $parameters, "POST" ); break;
- }
-
- if( $response && $this->decode_json ){
- return $this->response = json_decode( $response );
- }
-
- return $this->response = $response;
- }
-
- /**
- * Return the response object afer the fact
- *
- * @return mixed
- */
- public function getResponse()
- {
- return $this->response;
- }
-
- /**
- * GET wrapper for provider apis request
- */
- function get( $url, $parameters = array() )
- {
- return $this->api( $url, 'GET', $parameters );
- }
-
- /**
- * POST wrapper for provider apis request
- */
- function post( $url, $parameters = array() )
- {
- return $this->api( $url, 'POST', $parameters );
- }
-
- // -- tokens
-
- public function tokenInfo($accesstoken)
- {
- $params['access_token'] = $this->access_token;
- $response = $this->request( $this->token_info_url, $params );
- return $this->parseRequestResult( $response );
- }
-
- public function refreshToken( $parameters = array() )
- {
- $params = array(
- "client_id" => $this->client_id,
- "client_secret" => $this->client_secret,
- "grant_type" => "refresh_token"
- );
-
- foreach($parameters as $k=>$v ){
- $params[$k] = $v;
- }
-
- $response = $this->request( $this->token_url, $params, "POST" );
- return $this->parseRequestResult( $response );
- }
-
- // -- utilities
-
- private function request( $url, $params=false, $type="GET" )
- {
- Hybrid_Logger::info( "Enter OAuth2Client::request( $url )" );
- Hybrid_Logger::debug( "OAuth2Client::request(). dump request params: ", serialize( $params ) );
-
- if( $type == "GET" ){
- $url = $url . ( strpos( $url, '?' ) ? '&' : '?' ) . http_build_query($params, '', '&');
- }
-
- $this->http_info = array();
- $ch = curl_init();
-
- curl_setopt($ch, CURLOPT_URL , $url );
- curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1 );
- curl_setopt($ch, CURLOPT_TIMEOUT , $this->curl_time_out );
- curl_setopt($ch, CURLOPT_USERAGENT , $this->curl_useragent );
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT , $this->curl_connect_time_out );
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , $this->curl_ssl_verifypeer );
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST , $this->curl_ssl_verifyhost );
- curl_setopt($ch, CURLOPT_HTTPHEADER , $this->curl_header );
-
- if ($this->curl_compressed){
- curl_setopt($ch, CURLOPT_ENCODING, "gzip,deflate");
- }
-
- if($this->curl_proxy){
- curl_setopt( $ch, CURLOPT_PROXY , $this->curl_proxy);
- }
-
- if( $type == "POST" ){
- curl_setopt($ch, CURLOPT_POST, 1);
- if($params) curl_setopt( $ch, CURLOPT_POSTFIELDS, $params );
- }
-
- $response = curl_exec($ch);
- if( $response === false ) {
- Hybrid_Logger::error( "OAuth2Client::request(). curl_exec error: ", curl_error($ch) );
- }
- Hybrid_Logger::debug( "OAuth2Client::request(). dump request info: ", serialize( curl_getinfo($ch) ) );
- Hybrid_Logger::debug( "OAuth2Client::request(). dump request result: ", serialize( $response ) );
-
- $this->http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- $this->http_info = array_merge($this->http_info, curl_getinfo($ch));
-
- curl_close ($ch);
-
- return $response;
- }
-
- private function parseRequestResult( $result )
- {
- if( json_decode( $result ) ) return json_decode( $result );
-
- parse_str( $result, $output );
-
- $result = new StdClass();
-
- foreach( $output as $k => $v )
- $result->$k = $v;
-
- return $result;
- }
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/thirdparty/OpenID/LightOpenID.php b/milfs/librerias/hybridauth/Hybrid/thirdparty/OpenID/LightOpenID.php
deleted file mode 100644
index a257d6c..0000000
--- a/milfs/librerias/hybridauth/Hybrid/thirdparty/OpenID/LightOpenID.php
+++ /dev/null
@@ -1,1051 +0,0 @@
-= 5.1.2 with cURL or HTTP/HTTPS stream wrappers enabled.
- *
- * @version v1.2.0 (2014-01-14)
- * @link https://code.google.com/p/lightopenid/ Project URL
- * @link https://github.com/iignatov/LightOpenID GitHub Repo
- * @author Mewp
- * @copyright Copyright (c) 2013 Mewp
- * @license http://opensource.org/licenses/mit-license.php MIT License
- */
-class LightOpenID
-{
- public $returnUrl
- , $required = array()
- , $optional = array()
- , $verify_peer = null
- , $capath = null
- , $cainfo = null
- , $cnmatch = null
- , $data
- , $oauth = array()
- , $curl_time_out = 30
- , $curl_connect_time_out = 30;
- private $identity, $claimed_id;
- protected $server, $version, $trustRoot, $aliases, $identifier_select = false
- , $ax = false, $sreg = false, $setup_url = null, $headers = array()
- , $proxy = null, $user_agent = 'LightOpenID'
- , $xrds_override_pattern = null, $xrds_override_replacement = null;
- static protected $ax_to_sreg = array(
- 'namePerson/friendly' => 'nickname',
- 'contact/email' => 'email',
- 'namePerson' => 'fullname',
- 'birthDate' => 'dob',
- 'person/gender' => 'gender',
- 'contact/postalCode/home' => 'postcode',
- 'contact/country/home' => 'country',
- 'pref/language' => 'language',
- 'pref/timezone' => 'timezone',
- );
-
- function __construct($host, $proxy = null)
- {
- $this->set_realm($host);
- $this->set_proxy($proxy);
-
- $uri = rtrim(preg_replace('#((?<=\?)|&)openid\.[^&]+#', '', $_SERVER['REQUEST_URI']), '?');
- $this->returnUrl = $this->trustRoot . $uri;
-
- $this->data = ($_SERVER['REQUEST_METHOD'] === 'POST') ? $_POST : $_GET;
-
- if(!function_exists('curl_init') && !in_array('https', stream_get_wrappers())) {
- throw new ErrorException('You must have either https wrappers or curl enabled.');
- }
- }
-
- function __isset($name)
- {
- return in_array($name, array('identity', 'trustRoot', 'realm', 'xrdsOverride', 'mode'));
- }
-
- function __set($name, $value)
- {
- switch ($name) {
- case 'identity':
- if (strlen($value = trim((String) $value))) {
- if (preg_match('#^xri:/*#i', $value, $m)) {
- $value = substr($value, strlen($m[0]));
- } elseif (!preg_match('/^(?:[=@+\$!\(]|https?:)/i', $value)) {
- $value = "http://$value";
- }
- if (preg_match('#^https?://[^/]+$#i', $value, $m)) {
- $value .= '/';
- }
- }
- $this->$name = $this->claimed_id = $value;
- break;
- case 'trustRoot':
- case 'realm':
- $this->trustRoot = trim($value);
- break;
- case 'xrdsOverride':
- if (is_array($value)) {
- list($pattern, $replacement) = $value;
- $this->xrds_override_pattern = $pattern;
- $this->xrds_override_replacement = $replacement;
- } else {
- trigger_error('Invalid value specified for "xrdsOverride".', E_USER_ERROR);
- }
- break;
- }
- }
-
- function __get($name)
- {
- switch ($name) {
- case 'identity':
- # We return claimed_id instead of identity,
- # because the developer should see the claimed identifier,
- # i.e. what he set as identity, not the op-local identifier (which is what we verify)
- return $this->claimed_id;
- case 'trustRoot':
- case 'realm':
- return $this->trustRoot;
- case 'mode':
- return empty($this->data['openid_mode']) ? null : $this->data['openid_mode'];
- }
- }
-
- function set_proxy($proxy)
- {
- if (!empty($proxy)) {
- // When the proxy is a string - try to parse it.
- if (!is_array($proxy)) {
- $proxy = parse_url($proxy);
- }
-
- // Check if $proxy is valid after the parsing.
- if ($proxy && !empty($proxy['host'])) {
- // Make sure that a valid port number is specified.
- if (array_key_exists('port', $proxy)) {
- if (!is_int($proxy['port'])) {
- $proxy['port'] = is_numeric($proxy['port']) ? intval($proxy['port']) : 0;
- }
-
- if ($proxy['port'] <= 0) {
- throw new ErrorException('The specified proxy port number is invalid.');
- }
- }
-
- $this->proxy = $proxy;
- }
- }
- }
-
- /**
- * Checks if the server specified in the url exists.
- *
- * @param $url url to check
- * @return true, if the server exists; false otherwise
- */
- function hostExists($url)
- {
- if (strpos($url, '/') === false) {
- $server = $url;
- } else {
- $server = @parse_url($url, PHP_URL_HOST);
- }
-
- if (!$server) {
- return false;
- }
-
- return !!gethostbynamel($server);
- }
-
- protected function set_realm($uri)
- {
- $realm = '';
-
- # Set a protocol, if not specified.
- $realm .= (($offset = strpos($uri, '://')) === false) ? $this->get_realm_protocol() : '';
-
- # Set the offset properly.
- $offset = (($offset !== false) ? $offset + 3 : 0);
-
- # Get only the root, without the path.
- $realm .= (($end = strpos($uri, '/', $offset)) === false) ? $uri : substr($uri, 0, $end);
-
- $this->trustRoot = $realm;
- }
-
- protected function get_realm_protocol()
- {
- if (!empty($_SERVER['HTTPS'])) {
- $use_secure_protocol = ($_SERVER['HTTPS'] != 'off');
- } else if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
- $use_secure_protocol = ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https');
- } else {
- $use_secure_protocol = false;
- }
-
- return $use_secure_protocol ? 'https://' : 'http://';
- }
-
- protected function request_curl($url, $method='GET', $params=array(), $update_claimed_id)
- {
- $params = http_build_query($params, '', '&');
- $curl = curl_init($url . ($method == 'GET' && $params ? '?' . $params : ''));
- curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
- curl_setopt($curl, CURLOPT_HEADER, false);
- curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($curl, CURLOPT_TIMEOUT, $this->curl_time_out);
- curl_setopt($curl, CURLOPT_CONNECTTIMEOUT , $this->curl_connect_time_out);
-
-
- if ($method == 'POST') {
- curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/x-www-form-urlencoded'));
- } else {
- curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept: application/xrds+xml, */*'));
- }
-
- if (!empty($this->proxy)) {
- curl_setopt($curl, CURLOPT_PROXY, $this->proxy['host']);
-
- if (!empty($this->proxy['port'])) {
- curl_setopt($curl, CURLOPT_PROXYPORT, $this->proxy['port']);
- }
-
- if (!empty($this->proxy['user'])) {
- curl_setopt($curl, CURLOPT_PROXYUSERPWD, $this->proxy['user'] . ':' . $this->proxy['pass']);
- }
- }
-
- if($this->verify_peer !== null) {
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $this->verify_peer);
- if($this->capath) {
- curl_setopt($curl, CURLOPT_CAPATH, $this->capath);
- }
-
- if($this->cainfo) {
- curl_setopt($curl, CURLOPT_CAINFO, $this->cainfo);
- }
- }
-
- if ($method == 'POST') {
- curl_setopt($curl, CURLOPT_POST, true);
- curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
- } elseif ($method == 'HEAD') {
- curl_setopt($curl, CURLOPT_HEADER, true);
- curl_setopt($curl, CURLOPT_NOBODY, true);
- } else {
- curl_setopt($curl, CURLOPT_HEADER, true);
- curl_setopt($curl, CURLOPT_HTTPGET, true);
- }
- $response = curl_exec($curl);
-
- if($method == 'HEAD' && curl_getinfo($curl, CURLINFO_HTTP_CODE) == 405) {
- curl_setopt($curl, CURLOPT_HTTPGET, true);
- $response = curl_exec($curl);
- $response = substr($response, 0, strpos($response, "\r\n\r\n"));
- }
-
- if($method == 'HEAD' || $method == 'GET') {
- $header_response = $response;
-
- # If it's a GET request, we want to only parse the header part.
- if($method == 'GET') {
- $header_response = substr($response, 0, strpos($response, "\r\n\r\n"));
- }
-
- $headers = array();
- foreach(explode("\n", $header_response) as $header) {
- $pos = strpos($header,':');
- if ($pos !== false) {
- $name = strtolower(trim(substr($header, 0, $pos)));
- $headers[$name] = trim(substr($header, $pos+1));
- }
- }
-
- if($update_claimed_id) {
- # Update the claimed_id value in case of redirections.
- $effective_url = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
- # Ignore the fragment (some cURL versions don't handle it well).
- if (strtok($effective_url, '#') != strtok($url, '#')) {
- $this->identity = $this->claimed_id = $effective_url;
- }
- }
-
- if($method == 'HEAD') {
- return $headers;
- } else {
- $this->headers = $headers;
- }
- }
-
- if (curl_errno($curl)) {
- throw new ErrorException(curl_error($curl), curl_errno($curl));
- }
-
- return $response;
- }
-
- protected function parse_header_array($array, $update_claimed_id)
- {
- $headers = array();
- foreach($array as $header) {
- $pos = strpos($header,':');
- if ($pos !== false) {
- $name = strtolower(trim(substr($header, 0, $pos)));
- $headers[$name] = trim(substr($header, $pos+1));
-
- # Following possible redirections. The point is just to have
- # claimed_id change with them, because the redirections
- # are followed automatically.
- # We ignore redirections with relative paths.
- # If any known provider uses them, file a bug report.
- if($name == 'location' && $update_claimed_id) {
- if(strpos($headers[$name], 'http') === 0) {
- $this->identity = $this->claimed_id = $headers[$name];
- } elseif($headers[$name][0] == '/') {
- $parsed_url = parse_url($this->claimed_id);
- $this->identity =
- $this->claimed_id = $parsed_url['scheme'] . '://'
- . $parsed_url['host']
- . $headers[$name];
- }
- }
- }
- }
- return $headers;
- }
-
- protected function request_streams($url, $method='GET', $params=array(), $update_claimed_id)
- {
- if(!$this->hostExists($url)) {
- throw new ErrorException("Could not connect to $url.", 404);
- }
-
- if (empty($this->cnmatch)) {
- $this->cnmatch = parse_url($url, PHP_URL_HOST);
- }
-
- $params = http_build_query($params, '', '&');
- switch($method) {
- case 'GET':
- $opts = array(
- 'http' => array(
- 'method' => 'GET',
- 'header' => 'Accept: application/xrds+xml, */*',
- 'user_agent' => $this->user_agent,
- 'ignore_errors' => true,
- ),
- 'ssl' => array(
- 'CN_match' => $this->cnmatch
- )
- );
- $url = $url . ($params ? '?' . $params : '');
- if (!empty($this->proxy)) {
- $opts['http']['proxy'] = $this->proxy_url();
- }
- break;
- case 'POST':
- $opts = array(
- 'http' => array(
- 'method' => 'POST',
- 'header' => 'Content-type: application/x-www-form-urlencoded',
- 'user_agent' => $this->user_agent,
- 'content' => $params,
- 'ignore_errors' => true,
- ),
- 'ssl' => array(
- 'CN_match' => $this->cnmatch
- )
- );
- if (!empty($this->proxy)) {
- $opts['http']['proxy'] = $this->proxy_url();
- }
- break;
- case 'HEAD':
- // We want to send a HEAD request, but since get_headers() doesn't
- // accept $context parameter, we have to change the defaults.
- $default = stream_context_get_options(stream_context_get_default());
-
- // PHP does not reset all options. Instead, it just sets the options
- // available in the passed array, therefore set the defaults manually.
- $default += array(
- 'http' => array(),
- 'ssl' => array()
- );
- $default['http'] += array(
- 'method' => 'GET',
- 'header' => '',
- 'user_agent' => '',
- 'ignore_errors' => false
- );
- $default['ssl'] += array(
- 'CN_match' => ''
- );
-
- $opts = array(
- 'http' => array(
- 'method' => 'HEAD',
- 'header' => 'Accept: application/xrds+xml, */*',
- 'user_agent' => $this->user_agent,
- 'ignore_errors' => true,
- ),
- 'ssl' => array(
- 'CN_match' => $this->cnmatch
- )
- );
-
- // Enable validation of the SSL certificates.
- if ($this->verify_peer) {
- $default['ssl'] += array(
- 'verify_peer' => false,
- 'capath' => '',
- 'cafile' => ''
- );
- $opts['ssl'] += array(
- 'verify_peer' => true,
- 'capath' => $this->capath,
- 'cafile' => $this->cainfo
- );
- }
-
- // Change the stream context options.
- stream_context_get_default($opts);
-
- $headers = get_headers($url . ($params ? '?' . $params : ''));
-
- // Restore the stream context options.
- stream_context_get_default($default);
-
- if (!empty($headers)) {
- if (intval(substr($headers[0], strlen('HTTP/1.1 '))) == 405) {
- // The server doesn't support HEAD - emulate it with a GET.
- $args = func_get_args();
- $args[1] = 'GET';
- call_user_func_array(array($this, 'request_streams'), $args);
- $headers = $this->headers;
- } else {
- $headers = $this->parse_header_array($headers, $update_claimed_id);
- }
- } else {
- $headers = array();
- }
-
- return $headers;
- }
-
- if ($this->verify_peer) {
- $opts['ssl'] += array(
- 'verify_peer' => true,
- 'capath' => $this->capath,
- 'cafile' => $this->cainfo
- );
- }
-
- $context = stream_context_create ($opts);
- $data = file_get_contents($url, false, $context);
- # This is a hack for providers who don't support HEAD requests.
- # It just creates the headers array for the last request in $this->headers.
- if(isset($http_response_header)) {
- $this->headers = $this->parse_header_array($http_response_header, $update_claimed_id);
- }
-
- return $data;
- }
-
- protected function request($url, $method='GET', $params=array(), $update_claimed_id=false)
- {
- $use_curl = false;
-
- if (function_exists('curl_init')) {
- if (!$use_curl) {
- # When allow_url_fopen is disabled, PHP streams will not work.
- $use_curl = !ini_get('allow_url_fopen');
- }
-
- if (!$use_curl) {
- # When there is no HTTPS wrapper, PHP streams cannott be used.
- $use_curl = !in_array('https', stream_get_wrappers());
- }
-
- if (!$use_curl) {
- # With open_basedir or safe_mode set, cURL can't follow redirects.
- $use_curl = !(ini_get('safe_mode') || ini_get('open_basedir'));
- }
- }
-
- return
- $use_curl
- ? $this->request_curl($url, $method, $params, $update_claimed_id)
- : $this->request_streams($url, $method, $params, $update_claimed_id);
- }
-
- protected function proxy_url()
- {
- $result = '';
-
- if (!empty($this->proxy)) {
- $result = $this->proxy['host'];
-
- if (!empty($this->proxy['port'])) {
- $result = $result . ':' . $this->proxy['port'];
- }
-
- if (!empty($this->proxy['user'])) {
- $result = $this->proxy['user'] . ':' . $this->proxy['pass'] . '@' . $result;
- }
-
- $result = 'http://' . $result;
- }
-
- return $result;
- }
-
- protected function build_url($url, $parts)
- {
- if (isset($url['query'], $parts['query'])) {
- $parts['query'] = $url['query'] . '&' . $parts['query'];
- }
-
- $url = $parts + $url;
- $url = $url['scheme'] . '://'
- . (empty($url['username'])?''
- :(empty($url['password'])? "{$url['username']}@"
- :"{$url['username']}:{$url['password']}@"))
- . $url['host']
- . (empty($url['port'])?'':":{$url['port']}")
- . (empty($url['path'])?'':$url['path'])
- . (empty($url['query'])?'':"?{$url['query']}")
- . (empty($url['fragment'])?'':"#{$url['fragment']}");
- return $url;
- }
-
- /**
- * Helper function used to scan for / tags and extract information
- * from them
- */
- protected function htmlTag($content, $tag, $attrName, $attrValue, $valueName)
- {
- preg_match_all("#<{$tag}[^>]*$attrName=['\"].*?$attrValue.*?['\"][^>]*$valueName=['\"](.+?)['\"][^>]*/?>#i", $content, $matches1);
- preg_match_all("#<{$tag}[^>]*$valueName=['\"](.+?)['\"][^>]*$attrName=['\"].*?$attrValue.*?['\"][^>]*/?>#i", $content, $matches2);
-
- $result = array_merge($matches1[1], $matches2[1]);
- return empty($result)?false:$result[0];
- }
-
- /**
- * Performs Yadis and HTML discovery. Normally not used.
- * @param $url Identity URL.
- * @return String OP Endpoint (i.e. OpenID provider address).
- * @throws ErrorException
- */
- function discover($url)
- {
- if (!$url) throw new ErrorException('No identity supplied.');
- # Use xri.net proxy to resolve i-name identities
- if (!preg_match('#^https?:#', $url)) {
- $url = "https://xri.net/$url";
- }
-
- # We save the original url in case of Yadis discovery failure.
- # It can happen when we'll be lead to an XRDS document
- # which does not have any OpenID2 services.
- $originalUrl = $url;
-
- # A flag to disable yadis discovery in case of failure in headers.
- $yadis = true;
-
- # Allows optional regex replacement of the URL, e.g. to use Google Apps
- # as an OpenID provider without setting up XRDS on the domain hosting.
- if (!is_null($this->xrds_override_pattern) && !is_null($this->xrds_override_replacement)) {
- $url = preg_replace($this->xrds_override_pattern, $this->xrds_override_replacement, $url);
- }
-
- # We'll jump a maximum of 5 times, to avoid endless redirections.
- for ($i = 0; $i < 5; $i ++) {
- if ($yadis) {
- $headers = $this->request($url, 'HEAD', array(), true);
-
- $next = false;
- if (isset($headers['x-xrds-location'])) {
- $url = $this->build_url(parse_url($url), parse_url(trim($headers['x-xrds-location'])));
- $next = true;
- }
-
- if (isset($headers['content-type']) && $this->is_allowed_type($headers['content-type'])) {
- # Found an XRDS document, now let's find the server, and optionally delegate.
- $content = $this->request($url, 'GET');
-
- preg_match_all('#(.*?)#s', $content, $m);
- foreach($m[1] as $content) {
- $content = ' ' . $content; # The space is added, so that strpos doesn't return 0.
-
- # OpenID 2
- $ns = preg_quote('http://specs.openid.net/auth/2.0/', '#');
- if(preg_match('#\s*'.$ns.'(server|signon)\s* #s', $content, $type)) {
- if ($type[1] == 'server') $this->identifier_select = true;
-
- preg_match('#(.*)#', $content, $server);
- preg_match('#<(Local|Canonical)ID>(.*)\1ID>#', $content, $delegate);
- if (empty($server)) {
- return false;
- }
- # Does the server advertise support for either AX or SREG?
- $this->ax = (bool) strpos($content, 'http://openid.net/srv/ax/1.0 ');
- $this->sreg = strpos($content, 'http://openid.net/sreg/1.0 ')
- || strpos($content, 'http://openid.net/extensions/sreg/1.1 ');
-
- $server = $server[1];
- if (isset($delegate[2])) $this->identity = trim($delegate[2]);
- $this->version = 2;
-
- $this->server = $server;
- return $server;
- }
-
- # OpenID 1.1
- $ns = preg_quote('http://openid.net/signon/1.1', '#');
- if (preg_match('#\s*'.$ns.'\s* #s', $content)) {
-
- preg_match('#(.*)#', $content, $server);
- preg_match('#<.*?Delegate>(.*)#', $content, $delegate);
- if (empty($server)) {
- return false;
- }
- # AX can be used only with OpenID 2.0, so checking only SREG
- $this->sreg = strpos($content, 'http://openid.net/sreg/1.0 ')
- || strpos($content, 'http://openid.net/extensions/sreg/1.1 ');
-
- $server = $server[1];
- if (isset($delegate[1])) $this->identity = $delegate[1];
- $this->version = 1;
-
- $this->server = $server;
- return $server;
- }
- }
-
- $next = true;
- $yadis = false;
- $url = $originalUrl;
- $content = null;
- break;
- }
- if ($next) continue;
-
- # There are no relevant information in headers, so we search the body.
- $content = $this->request($url, 'GET', array(), true);
-
- if (isset($this->headers['x-xrds-location'])) {
- $url = $this->build_url(parse_url($url), parse_url(trim($this->headers['x-xrds-location'])));
- continue;
- }
-
- $location = $this->htmlTag($content, 'meta', 'http-equiv', 'X-XRDS-Location', 'content');
- if ($location) {
- $url = $this->build_url(parse_url($url), parse_url($location));
- continue;
- }
- }
-
- if (!$content) $content = $this->request($url, 'GET');
-
- # At this point, the YADIS Discovery has failed, so we'll switch
- # to openid2 HTML discovery, then fallback to openid 1.1 discovery.
- $server = $this->htmlTag($content, 'link', 'rel', 'openid2.provider', 'href');
- $delegate = $this->htmlTag($content, 'link', 'rel', 'openid2.local_id', 'href');
- $this->version = 2;
-
- if (!$server) {
- # The same with openid 1.1
- $server = $this->htmlTag($content, 'link', 'rel', 'openid.server', 'href');
- $delegate = $this->htmlTag($content, 'link', 'rel', 'openid.delegate', 'href');
- $this->version = 1;
- }
-
- if ($server) {
- # We found an OpenID2 OP Endpoint
- if ($delegate) {
- # We have also found an OP-Local ID.
- $this->identity = $delegate;
- }
- $this->server = $server;
- return $server;
- }
-
- throw new ErrorException("No OpenID Server found at $url", 404);
- }
- throw new ErrorException('Endless redirection!', 500);
- }
-
- protected function is_allowed_type($content_type) {
- # Apparently, some providers return XRDS documents as text/html.
- # While it is against the spec, allowing this here shouldn't break
- # compatibility with anything.
- $allowed_types = array('application/xrds+xml', 'text/html', 'text/xml');
-
- foreach ($allowed_types as $type) {
- if (strpos($content_type, $type) !== false) {
- return true;
- }
- }
-
- return false;
- }
-
- protected function sregParams()
- {
- $params = array();
- # We always use SREG 1.1, even if the server is advertising only support for 1.0.
- # That's because it's fully backwards compatibile with 1.0, and some providers
- # advertise 1.0 even if they accept only 1.1. One such provider is myopenid.com
- $params['openid.ns.sreg'] = 'http://openid.net/extensions/sreg/1.1';
- if ($this->required) {
- $params['openid.sreg.required'] = array();
- foreach ($this->required as $required) {
- if (!isset(self::$ax_to_sreg[$required])) continue;
- $params['openid.sreg.required'][] = self::$ax_to_sreg[$required];
- }
- $params['openid.sreg.required'] = implode(',', $params['openid.sreg.required']);
- }
-
- if ($this->optional) {
- $params['openid.sreg.optional'] = array();
- foreach ($this->optional as $optional) {
- if (!isset(self::$ax_to_sreg[$optional])) continue;
- $params['openid.sreg.optional'][] = self::$ax_to_sreg[$optional];
- }
- $params['openid.sreg.optional'] = implode(',', $params['openid.sreg.optional']);
- }
- return $params;
- }
-
- protected function axParams()
- {
- $params = array();
- if ($this->required || $this->optional) {
- $params['openid.ns.ax'] = 'http://openid.net/srv/ax/1.0';
- $params['openid.ax.mode'] = 'fetch_request';
- $this->aliases = array();
- $counts = array();
- $required = array();
- $optional = array();
- foreach (array('required','optional') as $type) {
- foreach ($this->$type as $alias => $field) {
- if (is_int($alias)) $alias = strtr($field, '/', '_');
- $this->aliases[$alias] = 'http://axschema.org/' . $field;
- if (empty($counts[$alias])) $counts[$alias] = 0;
- $counts[$alias] += 1;
- ${$type}[] = $alias;
- }
- }
- foreach ($this->aliases as $alias => $ns) {
- $params['openid.ax.type.' . $alias] = $ns;
- }
- foreach ($counts as $alias => $count) {
- if ($count == 1) continue;
- $params['openid.ax.count.' . $alias] = $count;
- }
-
- # Don't send empty ax.requied and ax.if_available.
- # Google and possibly other providers refuse to support ax when one of these is empty.
- if($required) {
- $params['openid.ax.required'] = implode(',', $required);
- }
- if($optional) {
- $params['openid.ax.if_available'] = implode(',', $optional);
- }
- }
- return $params;
- }
-
- protected function authUrl_v1($immediate)
- {
- $returnUrl = $this->returnUrl;
- # If we have an openid.delegate that is different from our claimed id,
- # we need to somehow preserve the claimed id between requests.
- # The simplest way is to just send it along with the return_to url.
- if($this->identity != $this->claimed_id) {
- $returnUrl .= (strpos($returnUrl, '?') ? '&' : '?') . 'openid.claimed_id=' . $this->claimed_id;
- }
-
- $params = array(
- 'openid.return_to' => $returnUrl,
- 'openid.mode' => $immediate ? 'checkid_immediate' : 'checkid_setup',
- 'openid.identity' => $this->identity,
- 'openid.trust_root' => $this->trustRoot,
- ) + $this->sregParams();
-
- return $this->build_url(parse_url($this->server)
- , array('query' => http_build_query($params, '', '&')));
- }
-
- protected function authUrl_v2($immediate)
- {
- $params = array(
- 'openid.ns' => 'http://specs.openid.net/auth/2.0',
- 'openid.mode' => $immediate ? 'checkid_immediate' : 'checkid_setup',
- 'openid.return_to' => $this->returnUrl,
- 'openid.realm' => $this->trustRoot,
- );
-
- if ($this->ax) {
- $params += $this->axParams();
- }
-
- if ($this->sreg) {
- $params += $this->sregParams();
- }
-
- if (!$this->ax && !$this->sreg) {
- # If OP doesn't advertise either SREG, nor AX, let's send them both
- # in worst case we don't get anything in return.
- $params += $this->axParams() + $this->sregParams();
- }
-
- if (!empty($this->oauth) && is_array($this->oauth)) {
- $params['openid.ns.oauth'] = 'http://specs.openid.net/extensions/oauth/1.0';
- $params['openid.oauth.consumer'] = str_replace(array('http://', 'https://'), '', $this->trustRoot);
- $params['openid.oauth.scope'] = implode(' ', $this->oauth);
- }
-
- if ($this->identifier_select) {
- $params['openid.identity'] = $params['openid.claimed_id']
- = 'http://specs.openid.net/auth/2.0/identifier_select';
- } else {
- $params['openid.identity'] = $this->identity;
- $params['openid.claimed_id'] = $this->claimed_id;
- }
-
- return $this->build_url(parse_url($this->server)
- , array('query' => http_build_query($params, '', '&')));
- }
-
- /**
- * Returns authentication url. Usually, you want to redirect your user to it.
- * @return String The authentication url.
- * @param String $select_identifier Whether to request OP to select identity for an user in OpenID 2. Does not affect OpenID 1.
- * @throws ErrorException
- */
- function authUrl($immediate = false)
- {
- if ($this->setup_url && !$immediate) return $this->setup_url;
- if (!$this->server) $this->discover($this->identity);
-
- if ($this->version == 2) {
- return $this->authUrl_v2($immediate);
- }
- return $this->authUrl_v1($immediate);
- }
-
- /**
- * Performs OpenID verification with the OP.
- * @return Bool Whether the verification was successful.
- * @throws ErrorException
- */
- function validate()
- {
- # If the request was using immediate mode, a failure may be reported
- # by presenting user_setup_url (for 1.1) or reporting
- # mode 'setup_needed' (for 2.0). Also catching all modes other than
- # id_res, in order to avoid throwing errors.
- if(isset($this->data['openid_user_setup_url'])) {
- $this->setup_url = $this->data['openid_user_setup_url'];
- return false;
- }
- if($this->mode != 'id_res') {
- return false;
- }
-
- $this->claimed_id = isset($this->data['openid_claimed_id'])?$this->data['openid_claimed_id']:$this->data['openid_identity'];
- $params = array(
- 'openid.assoc_handle' => $this->data['openid_assoc_handle'],
- 'openid.signed' => $this->data['openid_signed'],
- 'openid.sig' => $this->data['openid_sig'],
- );
-
- if (isset($this->data['openid_ns'])) {
- # We're dealing with an OpenID 2.0 server, so let's set an ns
- # Even though we should know location of the endpoint,
- # we still need to verify it by discovery, so $server is not set here
- $params['openid.ns'] = 'http://specs.openid.net/auth/2.0';
- } elseif (isset($this->data['openid_claimed_id'])
- && $this->data['openid_claimed_id'] != $this->data['openid_identity']
- ) {
- # If it's an OpenID 1 provider, and we've got claimed_id,
- # we have to append it to the returnUrl, like authUrl_v1 does.
- $this->returnUrl .= (strpos($this->returnUrl, '?') ? '&' : '?')
- . 'openid.claimed_id=' . $this->claimed_id;
- }
-
- if ($this->data['openid_return_to'] != $this->returnUrl) {
- # The return_to url must match the url of current request.
- # I'm assuing that noone will set the returnUrl to something that doesn't make sense.
- return false;
- }
-
- $server = $this->discover($this->claimed_id);
-
- foreach (explode(',', $this->data['openid_signed']) as $item) {
- # Checking whether magic_quotes_gpc is turned on, because
- # the function may fail if it is. For example, when fetching
- # AX namePerson, it might containg an apostrophe, which will be escaped.
- # In such case, validation would fail, since we'd send different data than OP
- # wants to verify. stripslashes() should solve that problem, but we can't
- # use it when magic_quotes is off.
- $value = $this->data['openid_' . str_replace('.','_',$item)];
- $params['openid.' . $item] = function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc() ? stripslashes($value) : $value;
-
- }
-
- $params['openid.mode'] = 'check_authentication';
-
- $response = $this->request($server, 'POST', $params);
-
- return preg_match('/is_valid\s*:\s*true/i', $response);
- }
-
- protected function getAxAttributes()
- {
- $result = array();
-
- if ($alias = $this->getNamespaceAlias('http://openid.net/srv/ax/1.0', 'ax')) {
- $prefix = 'openid_' . $alias;
- $length = strlen('http://axschema.org/');
-
- foreach (explode(',', $this->data['openid_signed']) as $key) {
- $keyMatch = $alias . '.type.';
-
- if (strncmp($key, $keyMatch, strlen($keyMatch)) !== 0) {
- continue;
- }
-
- $key = substr($key, strlen($keyMatch));
- $idv = $prefix . '_value_' . $key;
- $idc = $prefix . '_count_' . $key;
- $key = substr($this->getItem($prefix . '_type_' . $key), $length);
-
- if (!empty($key)) {
- if (($count = intval($this->getItem($idc))) > 0) {
- $value = array();
-
- for ($i = 1; $i <= $count; $i++) {
- $value[] = $this->getItem($idv . '_' . $i);
- }
-
- $value = ($count == 1) ? reset($value) : $value;
- } else {
- $value = $this->getItem($idv);
- }
-
- if (!is_null($value)) {
- $result[$key] = $value;
- }
- }
- }
- } else {
- // No alias for the AX schema has been found,
- // so there is no AX data in the OP's response.
- }
-
- return $result;
- }
-
- protected function getSregAttributes()
- {
- $attributes = array();
- $sreg_to_ax = array_flip(self::$ax_to_sreg);
- foreach (explode(',', $this->data['openid_signed']) as $key) {
- $keyMatch = 'sreg.';
- if (strncmp($key, $keyMatch, strlen($keyMatch)) !== 0) {
- continue;
- }
- $key = substr($key, strlen($keyMatch));
- if (!isset($sreg_to_ax[$key])) {
- # The field name isn't part of the SREG spec, so we ignore it.
- continue;
- }
- $attributes[$sreg_to_ax[$key]] = $this->data['openid_sreg_' . $key];
- }
- return $attributes;
- }
-
- /**
- * Gets AX/SREG attributes provided by OP. should be used only after successful validaton.
- * Note that it does not guarantee that any of the required/optional parameters will be present,
- * or that there will be no other attributes besides those specified.
- * In other words. OP may provide whatever information it wants to.
- * * SREG names will be mapped to AX names.
- * * @return Array Array of attributes with keys being the AX schema names, e.g. 'contact/email'
- * @see http://www.axschema.org/types/
- */
- function getAttributes()
- {
- if (isset($this->data['openid_ns'])
- && $this->data['openid_ns'] == 'http://specs.openid.net/auth/2.0'
- ) { # OpenID 2.0
- # We search for both AX and SREG attributes, with AX taking precedence.
- return $this->getAxAttributes() + $this->getSregAttributes();
- }
- return $this->getSregAttributes();
- }
-
- /**
- * Gets an OAuth request token if the OpenID+OAuth hybrid protocol has been used.
- *
- * In order to use the OpenID+OAuth hybrid protocol, you need to add at least one
- * scope to the $openid->oauth array before you get the call to getAuthUrl(), e.g.:
- * $openid->oauth[] = 'https://www.googleapis.com/auth/plus.me';
- *
- * Furthermore the registered consumer name must fit the OpenID realm.
- * To register an OpenID consumer at Google use: https://www.google.com/accounts/ManageDomains
- *
- * @return string|bool OAuth request token on success, FALSE if no token was provided.
- */
- function getOAuthRequestToken()
- {
- $alias = $this->getNamespaceAlias('http://specs.openid.net/extensions/oauth/1.0');
-
- return !empty($alias) ? $this->data['openid_' . $alias . '_request_token'] : false;
- }
-
- /**
- * Gets the alias for the specified namespace, if it's present.
- *
- * @param string $namespace The namespace for which an alias is needed.
- * @param string $hint Common alias of this namespace, used for optimization.
- * @return string|null The namespace alias if found, otherwise - NULL.
- */
- private function getNamespaceAlias($namespace, $hint = null)
- {
- $result = null;
-
- if (empty($hint) || $this->getItem('openid_ns_' . $hint) != $namespace) {
- // The common alias is either undefined or points to
- // some other extension - search for another alias..
- $prefix = 'openid_ns_';
- $length = strlen($prefix);
-
- foreach ($this->data as $key => $val) {
- if (strncmp($key, $prefix, $length) === 0 && $val === $namespace) {
- $result = trim(substr($key, $length));
- break;
- }
- }
- } else {
- $result = $hint;
- }
-
- return $result;
- }
-
- /**
- * Gets an item from the $data array by the specified id.
- *
- * @param string $id The id of the desired item.
- * @return string|null The item if found, otherwise - NULL.
- */
- private function getItem($id)
- {
- return isset($this->data[$id]) ? $this->data[$id] : null;
- }
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/thirdparty/index.html b/milfs/librerias/hybridauth/Hybrid/thirdparty/index.html
deleted file mode 100644
index 065d2da..0000000
--- a/milfs/librerias/hybridauth/Hybrid/thirdparty/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
- 403 Forbidden
-
-
-
-Directory access is forbidden.
-
-
-
\ No newline at end of file
diff --git a/milfs/librerias/hybridauth/config.php b/milfs/librerias/hybridauth/config.php
deleted file mode 100644
index 26feb1b..0000000
--- a/milfs/librerias/hybridauth/config.php
+++ /dev/null
@@ -1,62 +0,0 @@
- "https://tupale.co/milfs/librerias/hybridauth/",
- "providers" => array(
- // openid providers
- "OpenID" => array(
- "enabled" => true
- ),
- "Yahoo" => array(
- "enabled" => true,
- "keys" => array("key" => "", "secret" => ""),
- ),
- "AOL" => array(
- "enabled" => true
- ),
- "Google" => array(
- "enabled" => true,
- "keys" => array("id" => "6281709521-j4v6spjk7chtka41ltgi90nblba88gl2.apps.googleusercontent.com", "secret" => "I4dmWZEfj37Qk9d8U63wsIJF"),
- ),
- "Facebook" => array(
- "enabled" => true,
- "keys" => array("id" => "471344416409568", "secret" => "752fbc3bfc6853e3f0e09e3a9e6f7e6b"),
- "trustForwarded" => false
- ),
- "Twitter" => array(
- "enabled" => true,
- "keys" => array("key" => "QCr9KK55sn4aulMzVAgrItD4s", "secret" => "3MnFdt8JLHWx8TyV8FSQtn6dutMJ3SZkuXqPEaLkDOx0t41mur"),
- "includeEmail" => false
- ),
- // windows live
- "Live" => array(
- "enabled" => true,
- "keys" => array("id" => "", "secret" => "")
- ),
- "LinkedIn" => array(
- "enabled" => true,
- "keys" => array("key" => "", "secret" => "")
- ),
- "Foursquare" => array(
- "enabled" => true,
- "keys" => array("id" => "", "secret" => "")
- ),
- ),
- // If you want to enable logging, set 'debug_mode' to true.
- // You can also set it to
- // - "error" To log only error messages. Useful in production
- // - "info" To log info and error messages (ignore debug messages)
- "debug_mode" => false,
- // Path to file writable by the web server. Required if 'debug_mode' is not false
- "debug_file" => "",
-);
diff --git a/milfs/librerias/hybridauth/index.php b/milfs/librerias/hybridauth/index.php
deleted file mode 100644
index ce3c866..0000000
--- a/milfs/librerias/hybridauth/index.php
+++ /dev/null
@@ -1,21 +0,0 @@
-processRequests();
-if($_REQUEST[id2] =='') {$agregar= $_REQUEST[id];}else {$agregar = $_REQUEST[id2];}
-$formulario_nombre = remplacetas('form_id','id',$_REQUEST[id],'nombre') ;
-$agregar_nombre = remplacetas('form_id','id',$agregar,'nombre') ;
-$plantilla ="mapa";
-?>
-
-
-
-
- MILFS
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-";
-
-
- }else{
-
- }
- echo $pie;
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/mapa.geo.php b/milfs/mapa.geo.php
deleted file mode 100644
index 3c18819..0000000
--- a/milfs/mapa.geo.php
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-Display latitude longitude on marker movement
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/mapa.php b/milfs/mapa.php
deleted file mode 100644
index 4b43313..0000000
--- a/milfs/mapa.php
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-Display latitude longitude on marker movement
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/mapa_back.php b/milfs/mapa_back.php
deleted file mode 100644
index bf256b5..0000000
--- a/milfs/mapa_back.php
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
-
-Display latitude longitude on marker movement
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/mapero.php b/milfs/mapero.php
deleted file mode 100644
index fae7ba7..0000000
--- a/milfs/mapero.php
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-Mapero
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/opendata.php b/milfs/opendata.php
deleted file mode 100644
index 2da7d94..0000000
--- a/milfs/opendata.php
+++ /dev/null
@@ -1,237 +0,0 @@
-processRequests();
-$logo = remplacetas('empresa','id','1','imagen') ;
-$direccion = remplacetas('empresa','id','1','direccion') ;
-$telefono = remplacetas('empresa','id','1','telefono') ;
-$email = remplacetas('empresa','id','1','email') ;
-if($_REQUEST['formulario'] !="") {
-$formulario = $_REQUEST['formulario'];
- }
-else {
- $formulario = "40";
- }
- $id_campo = $_REQUEST['campo'];
-
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("milfs/xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Bienvenido a nuestro portal de datos
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/milfs/plugins/upload/css/demo-ie8.css b/milfs/plugins/upload/css/demo-ie8.css
deleted file mode 100644
index 861852a..0000000
--- a/milfs/plugins/upload/css/demo-ie8.css
+++ /dev/null
@@ -1,21 +0,0 @@
-@charset "UTF-8";
-/*
- * jQuery File Upload Demo CSS Fixes for IE<9
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-.navigation {
- list-style: none;
- padding: 0;
- margin: 1em 0;
-}
-.navigation li {
- display: inline;
- margin-right: 10px;
-}
diff --git a/milfs/plugins/upload/css/demo.css b/milfs/plugins/upload/css/demo.css
deleted file mode 100644
index 83af7ad..0000000
--- a/milfs/plugins/upload/css/demo.css
+++ /dev/null
@@ -1,67 +0,0 @@
-@charset "UTF-8";
-/*
- * jQuery File Upload Demo CSS
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-body {
- max-width: 750px;
- margin: 0 auto;
- padding: 1em;
- font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, sans-serif;
- font-size: 1em;
- line-height: 1.4em;
- background: #222;
- color: #fff;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
-}
-a {
- color: orange;
- text-decoration: none;
-}
-img {
- border: 0;
- vertical-align: middle;
-}
-h1 {
- line-height: 1em;
-}
-blockquote {
- padding: 0 0 0 15px;
- margin: 0 0 20px;
- border-left: 5px solid #eee;
-}
-table {
- width: 100%;
- margin: 10px 0;
-}
-
-.fileupload-progress {
- margin: 10px 0;
-}
-.fileupload-progress .progress-extended {
- margin-top: 5px;
-}
-.error {
- color: red;
-}
-
-@media (min-width: 481px) {
- .navigation {
- list-style: none;
- padding: 0;
- }
- .navigation li {
- display: inline-block;
- }
- .navigation li:not(:first-child):before {
- content: "| ";
- }
-}
diff --git a/milfs/plugins/upload/css/jquery.fileupload-noscript.css b/milfs/plugins/upload/css/jquery.fileupload-noscript.css
deleted file mode 100644
index d0dda3a..0000000
--- a/milfs/plugins/upload/css/jquery.fileupload-noscript.css
+++ /dev/null
@@ -1,22 +0,0 @@
-@charset "UTF-8";
-/*
- * jQuery File Upload Plugin NoScript CSS
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-.fileinput-button input {
- position: static;
- opacity: 1;
- filter: none;
- font-size: inherit;
- direction: inherit;
-}
-.fileinput-button span {
- display: none;
-}
diff --git a/milfs/plugins/upload/css/jquery.fileupload-ui-noscript.css b/milfs/plugins/upload/css/jquery.fileupload-ui-noscript.css
deleted file mode 100644
index 6ad2ad6..0000000
--- a/milfs/plugins/upload/css/jquery.fileupload-ui-noscript.css
+++ /dev/null
@@ -1,17 +0,0 @@
-@charset "UTF-8";
-/*
- * jQuery File Upload UI Plugin NoScript CSS
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2012, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-.fileinput-button i,
-.fileupload-buttonbar .delete,
-.fileupload-buttonbar .toggle {
- display: none;
-}
diff --git a/milfs/plugins/upload/css/jquery.fileupload-ui.css b/milfs/plugins/upload/css/jquery.fileupload-ui.css
deleted file mode 100644
index 95cca15..0000000
--- a/milfs/plugins/upload/css/jquery.fileupload-ui.css
+++ /dev/null
@@ -1,57 +0,0 @@
-@charset "UTF-8";
-/*
- * jQuery File Upload UI Plugin CSS
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2010, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-.fileupload-buttonbar .btn,
-.fileupload-buttonbar .toggle {
- margin-bottom: 5px;
-}
-.progress-animated .progress-bar,
-.progress-animated .bar {
- background: url("../img/progressbar.gif") !important;
- filter: none;
-}
-.fileupload-process {
- float: right;
- display: none;
-}
-.fileupload-processing .fileupload-process,
-.files .processing .preview {
- display: block;
- width: 32px;
- height: 32px;
- background: url("../img/loading.gif") center no-repeat;
- background-size: contain;
-}
-.files audio,
-.files video {
- max-width: 300px;
-}
-
-@media (max-width: 767px) {
- .fileupload-buttonbar .toggle,
- .files .toggle,
- .files .btn span {
- display: none;
- }
- .files .name {
- width: 80px;
- word-wrap: break-word;
- }
- .files audio,
- .files video {
- max-width: 80px;
- }
- .files img,
- .files canvas {
- max-width: 100%;
- }
-}
diff --git a/milfs/plugins/upload/css/jquery.fileupload.css b/milfs/plugins/upload/css/jquery.fileupload.css
deleted file mode 100644
index f714c4d..0000000
--- a/milfs/plugins/upload/css/jquery.fileupload.css
+++ /dev/null
@@ -1,37 +0,0 @@
-@charset "UTF-8";
-/*
- * jQuery File Upload Plugin CSS
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-.fileinput-button {
- position: relative;
- overflow: hidden;
- display: inline-block;
-}
-.fileinput-button input {
- position: absolute;
- top: 0;
- right: 0;
- margin: 0;
- opacity: 0;
- -ms-filter: 'alpha(opacity=0)';
- font-size: 200px !important;
- direction: ltr;
- cursor: pointer;
-}
-
-/* Fixes for IE < 8 */
-@media screen\9 {
- .fileinput-button input {
- filter: alpha(opacity=0);
- font-size: 100%;
- height: 100%;
- }
-}
diff --git a/milfs/plugins/upload/css/style.css b/milfs/plugins/upload/css/style.css
deleted file mode 100644
index c33c03d..0000000
--- a/milfs/plugins/upload/css/style.css
+++ /dev/null
@@ -1,15 +0,0 @@
-@charset "UTF-8";
-/*
- * jQuery File Upload Plugin CSS Example
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-body {
- padding-top: 60px;
-}
diff --git a/milfs/plugins/upload/js/app.js b/milfs/plugins/upload/js/app.js
deleted file mode 100644
index 47e8061..0000000
--- a/milfs/plugins/upload/js/app.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * jQuery File Upload Plugin Angular JS Example
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* jshint nomen:false */
-/* global window, angular */
-
-(function () {
- 'use strict';
-
- var isOnGitHub = window.location.hostname === 'blueimp.github.io',
- url = isOnGitHub ? '//jquery-file-upload.appspot.com/' : 'server/php/';
-
- angular.module('demo', [
- 'blueimp.fileupload'
- ])
- .config([
- '$httpProvider', 'fileUploadProvider',
- function ($httpProvider, fileUploadProvider) {
- delete $httpProvider.defaults.headers.common['X-Requested-With'];
- fileUploadProvider.defaults.redirect = window.location.href.replace(
- /\/[^\/]*$/,
- '/cors/result.html?%s'
- );
- if (isOnGitHub) {
- // Demo settings:
- angular.extend(fileUploadProvider.defaults, {
- // Enable image resizing, except for Android and Opera,
- // which actually support image resizing, but fail to
- // send Blob objects via XHR requests:
- disableImageResize: /Android(?!.*Chrome)|Opera/
- .test(window.navigator.userAgent),
- maxFileSize: 999000,
- acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
- });
- }
- }
- ])
-
- .controller('DemoFileUploadController', [
- '$scope', '$http', '$filter', '$window',
- function ($scope, $http) {
- $scope.options = {
- url: url
- };
- if (!isOnGitHub) {
- $scope.loadingFiles = true;
- $http.get(url)
- .then(
- function (response) {
- $scope.loadingFiles = false;
- $scope.queue = response.data.files || [];
- },
- function () {
- $scope.loadingFiles = false;
- }
- );
- }
- }
- ])
-
- .controller('FileDestroyController', [
- '$scope', '$http',
- function ($scope, $http) {
- var file = $scope.file,
- state;
- if (file.url) {
- file.$state = function () {
- return state;
- };
- file.$destroy = function () {
- state = 'pending';
- return $http({
- url: file.deleteUrl,
- method: file.deleteType
- }).then(
- function () {
- state = 'resolved';
- $scope.clear(file);
- },
- function () {
- state = 'rejected';
- }
- );
- };
- } else if (!file.$cancel && !file._index) {
- file.$cancel = function () {
- $scope.clear(file);
- };
- }
- }
- ]);
-
-}());
diff --git a/milfs/plugins/upload/js/canvas-to-blob.min.js b/milfs/plugins/upload/js/canvas-to-blob.min.js
deleted file mode 100644
index 1c82bba..0000000
--- a/milfs/plugins/upload/js/canvas-to-blob.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(t){"use strict";var e=t.HTMLCanvasElement&&t.HTMLCanvasElement.prototype,o=t.Blob&&function(){try{return Boolean(new Blob)}catch(t){return!1}}(),n=o&&t.Uint8Array&&function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(t){return!1}}(),r=t.BlobBuilder||t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder,a=/^data:((.*?)(;charset=.*?)?)(;base64)?,/,i=(o||r)&&t.atob&&t.ArrayBuffer&&t.Uint8Array&&function(t){var e,i,l,u,b,c,d,B,f;if(e=t.match(a),!e)throw new Error("invalid data URI");for(i=e[2]?e[1]:"text/plain"+(e[3]||";charset=US-ASCII"),l=!!e[4],u=t.slice(e[0].length),b=l?atob(u):decodeURIComponent(u),c=new ArrayBuffer(b.length),d=new Uint8Array(c),B=0;B
').prop('href', options.postMessage)[0],
- target = loc.protocol + '//' + loc.host,
- xhrUpload = options.xhr().upload;
- return {
- send: function (_, completeCallback) {
- counter += 1;
- var message = {
- id: 'postmessage-transport-' + counter
- },
- eventName = 'message.' + message.id;
- iframe = $(
- ''
- ).bind('load', function () {
- $.each(names, function (i, name) {
- message[name] = options[name];
- });
- message.dataType = message.dataType.replace('postmessage ', '');
- $(window).bind(eventName, function (e) {
- e = e.originalEvent;
- var data = e.data,
- ev;
- if (e.origin === target && data.id === message.id) {
- if (data.type === 'progress') {
- ev = document.createEvent('Event');
- ev.initEvent(data.type, false, true);
- $.extend(ev, data);
- xhrUpload.dispatchEvent(ev);
- } else {
- completeCallback(
- data.status,
- data.statusText,
- {postmessage: data.result},
- data.headers
- );
- iframe.remove();
- $(window).unbind(eventName);
- }
- }
- });
- iframe[0].contentWindow.postMessage(
- message,
- target
- );
- }).appendTo(document.body);
- },
- abort: function () {
- if (iframe) {
- iframe.remove();
- }
- }
- };
- }
- });
-
-}));
diff --git a/milfs/plugins/upload/js/cors/jquery.xdr-transport.js b/milfs/plugins/upload/js/cors/jquery.xdr-transport.js
deleted file mode 100644
index 5b9c6ca..0000000
--- a/milfs/plugins/upload/js/cors/jquery.xdr-transport.js
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * jQuery XDomainRequest Transport Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2011, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- *
- * Based on Julian Aubourg's ajaxHooks xdr.js:
- * https://github.com/jaubourg/ajaxHooks/
- */
-
-/* global define, require, window, XDomainRequest */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define(['jquery'], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS:
- factory(require('jquery'));
- } else {
- // Browser globals:
- factory(window.jQuery);
- }
-}(function ($) {
- 'use strict';
- if (window.XDomainRequest && !$.support.cors) {
- $.ajaxTransport(function (s) {
- if (s.crossDomain && s.async) {
- if (s.timeout) {
- s.xdrTimeout = s.timeout;
- delete s.timeout;
- }
- var xdr;
- return {
- send: function (headers, completeCallback) {
- var addParamChar = /\?/.test(s.url) ? '&' : '?';
- function callback(status, statusText, responses, responseHeaders) {
- xdr.onload = xdr.onerror = xdr.ontimeout = $.noop;
- xdr = null;
- completeCallback(status, statusText, responses, responseHeaders);
- }
- xdr = new XDomainRequest();
- // XDomainRequest only supports GET and POST:
- if (s.type === 'DELETE') {
- s.url = s.url + addParamChar + '_method=DELETE';
- s.type = 'POST';
- } else if (s.type === 'PUT') {
- s.url = s.url + addParamChar + '_method=PUT';
- s.type = 'POST';
- } else if (s.type === 'PATCH') {
- s.url = s.url + addParamChar + '_method=PATCH';
- s.type = 'POST';
- }
- xdr.open(s.type, s.url);
- xdr.onload = function () {
- callback(
- 200,
- 'OK',
- {text: xdr.responseText},
- 'Content-Type: ' + xdr.contentType
- );
- };
- xdr.onerror = function () {
- callback(404, 'Not Found');
- };
- if (s.xdrTimeout) {
- xdr.ontimeout = function () {
- callback(0, 'timeout');
- };
- xdr.timeout = s.xdrTimeout;
- }
- xdr.send((s.hasContent && s.data) || null);
- },
- abort: function () {
- if (xdr) {
- xdr.onerror = $.noop();
- xdr.abort();
- }
- }
- };
- }
- });
- }
-}));
diff --git a/milfs/plugins/upload/js/jquery.fileupload-angular.js b/milfs/plugins/upload/js/jquery.fileupload-angular.js
deleted file mode 100644
index f7ba07b..0000000
--- a/milfs/plugins/upload/js/jquery.fileupload-angular.js
+++ /dev/null
@@ -1,425 +0,0 @@
-/*
- * jQuery File Upload AngularJS Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* jshint nomen:false */
-/* global define, angular */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define([
- 'jquery',
- 'angular',
- './jquery.fileupload-image',
- './jquery.fileupload-audio',
- './jquery.fileupload-video',
- './jquery.fileupload-validate'
- ], factory);
- } else {
- factory();
- }
-}(function () {
- 'use strict';
-
- angular.module('blueimp.fileupload', [])
-
- // The fileUpload service provides configuration options
- // for the fileUpload directive and default handlers for
- // File Upload events:
- .provider('fileUpload', function () {
- var scopeEvalAsync = function (expression) {
- var scope = angular.element(this)
- .fileupload('option', 'scope');
- // Schedule a new $digest cycle if not already inside of one
- // and evaluate the given expression:
- scope.$evalAsync(expression);
- },
- addFileMethods = function (scope, data) {
- var files = data.files,
- file = files[0];
- angular.forEach(files, function (file, index) {
- file._index = index;
- file.$state = function () {
- return data.state();
- };
- file.$processing = function () {
- return data.processing();
- };
- file.$progress = function () {
- return data.progress();
- };
- file.$response = function () {
- return data.response();
- };
- });
- file.$submit = function () {
- if (!file.error) {
- return data.submit();
- }
- };
- file.$cancel = function () {
- return data.abort();
- };
- },
- $config;
- $config = this.defaults = {
- handleResponse: function (e, data) {
- var files = data.result && data.result.files;
- if (files) {
- data.scope.replace(data.files, files);
- } else if (data.errorThrown ||
- data.textStatus === 'error') {
- data.files[0].error = data.errorThrown ||
- data.textStatus;
- }
- },
- add: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var scope = data.scope,
- filesCopy = [];
- angular.forEach(data.files, function (file) {
- filesCopy.push(file);
- });
- scope.$parent.$applyAsync(function () {
- addFileMethods(scope, data);
- var method = scope.option('prependFiles') ?
- 'unshift' : 'push';
- Array.prototype[method].apply(scope.queue, data.files);
- });
- data.process(function () {
- return scope.process(data);
- }).always(function () {
- scope.$parent.$applyAsync(function () {
- addFileMethods(scope, data);
- scope.replace(filesCopy, data.files);
- });
- }).then(function () {
- if ((scope.option('autoUpload') ||
- data.autoUpload) &&
- data.autoUpload !== false) {
- data.submit();
- }
- });
- },
- done: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var that = this;
- data.scope.$apply(function () {
- data.handleResponse.call(that, e, data);
- });
- },
- fail: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var that = this,
- scope = data.scope;
- if (data.errorThrown === 'abort') {
- scope.clear(data.files);
- return;
- }
- scope.$apply(function () {
- data.handleResponse.call(that, e, data);
- });
- },
- stop: scopeEvalAsync,
- processstart: scopeEvalAsync,
- processstop: scopeEvalAsync,
- getNumberOfFiles: function () {
- var scope = this.scope;
- return scope.queue.length - scope.processing();
- },
- dataType: 'json',
- autoUpload: false
- };
- this.$get = [
- function () {
- return {
- defaults: $config
- };
- }
- ];
- })
-
- // Format byte numbers to readable presentations:
- .provider('formatFileSizeFilter', function () {
- var $config = {
- // Byte units following the IEC format
- // http://en.wikipedia.org/wiki/Kilobyte
- units: [
- {size: 1000000000, suffix: ' GB'},
- {size: 1000000, suffix: ' MB'},
- {size: 1000, suffix: ' KB'}
- ]
- };
- this.defaults = $config;
- this.$get = function () {
- return function (bytes) {
- if (!angular.isNumber(bytes)) {
- return '';
- }
- var unit = true,
- i = 0,
- prefix,
- suffix;
- while (unit) {
- unit = $config.units[i];
- prefix = unit.prefix || '';
- suffix = unit.suffix || '';
- if (i === $config.units.length - 1 || bytes >= unit.size) {
- return prefix + (bytes / unit.size).toFixed(2) + suffix;
- }
- i += 1;
- }
- };
- };
- })
-
- // The FileUploadController initializes the fileupload widget and
- // provides scope methods to control the File Upload functionality:
- .controller('FileUploadController', [
- '$scope', '$element', '$attrs', '$window', 'fileUpload',
- function ($scope, $element, $attrs, $window, fileUpload) {
- var uploadMethods = {
- progress: function () {
- return $element.fileupload('progress');
- },
- active: function () {
- return $element.fileupload('active');
- },
- option: function (option, data) {
- if (arguments.length === 1) {
- return $element.fileupload('option', option);
- }
- $element.fileupload('option', option, data);
- },
- add: function (data) {
- return $element.fileupload('add', data);
- },
- send: function (data) {
- return $element.fileupload('send', data);
- },
- process: function (data) {
- return $element.fileupload('process', data);
- },
- processing: function (data) {
- return $element.fileupload('processing', data);
- }
- };
- $scope.disabled = !$window.jQuery.support.fileInput;
- $scope.queue = $scope.queue || [];
- $scope.clear = function (files) {
- var queue = this.queue,
- i = queue.length,
- file = files,
- length = 1;
- if (angular.isArray(files)) {
- file = files[0];
- length = files.length;
- }
- while (i) {
- i -= 1;
- if (queue[i] === file) {
- return queue.splice(i, length);
- }
- }
- };
- $scope.replace = function (oldFiles, newFiles) {
- var queue = this.queue,
- file = oldFiles[0],
- i,
- j;
- for (i = 0; i < queue.length; i += 1) {
- if (queue[i] === file) {
- for (j = 0; j < newFiles.length; j += 1) {
- queue[i + j] = newFiles[j];
- }
- return;
- }
- }
- };
- $scope.applyOnQueue = function (method) {
- var list = this.queue.slice(0),
- i,
- file;
- for (i = 0; i < list.length; i += 1) {
- file = list[i];
- if (file[method]) {
- file[method]();
- }
- }
- };
- $scope.submit = function () {
- this.applyOnQueue('$submit');
- };
- $scope.cancel = function () {
- this.applyOnQueue('$cancel');
- };
- // Add upload methods to the scope:
- angular.extend($scope, uploadMethods);
- // The fileupload widget will initialize with
- // the options provided via "data-"-parameters,
- // as well as those given via options object:
- $element.fileupload(angular.extend(
- {scope: $scope},
- fileUpload.defaults
- )).on('fileuploadadd', function (e, data) {
- data.scope = $scope;
- }).on('fileuploadfail', function (e, data) {
- if (data.errorThrown === 'abort') {
- return;
- }
- if (data.dataType &&
- data.dataType.indexOf('json') === data.dataType.length - 4) {
- try {
- data.result = angular.fromJson(data.jqXHR.responseText);
- } catch (ignore) {}
- }
- }).on([
- 'fileuploadadd',
- 'fileuploadsubmit',
- 'fileuploadsend',
- 'fileuploaddone',
- 'fileuploadfail',
- 'fileuploadalways',
- 'fileuploadprogress',
- 'fileuploadprogressall',
- 'fileuploadstart',
- 'fileuploadstop',
- 'fileuploadchange',
- 'fileuploadpaste',
- 'fileuploaddrop',
- 'fileuploaddragover',
- 'fileuploadchunksend',
- 'fileuploadchunkdone',
- 'fileuploadchunkfail',
- 'fileuploadchunkalways',
- 'fileuploadprocessstart',
- 'fileuploadprocess',
- 'fileuploadprocessdone',
- 'fileuploadprocessfail',
- 'fileuploadprocessalways',
- 'fileuploadprocessstop'
- ].join(' '), function (e, data) {
- $scope.$parent.$applyAsync(function () {
- if ($scope.$emit(e.type, data).defaultPrevented) {
- e.preventDefault();
- }
- });
- }).on('remove', function () {
- // Remove upload methods from the scope,
- // when the widget is removed:
- var method;
- for (method in uploadMethods) {
- if (uploadMethods.hasOwnProperty(method)) {
- delete $scope[method];
- }
- }
- });
- // Observe option changes:
- $scope.$watch(
- $attrs.fileUpload,
- function (newOptions) {
- if (newOptions) {
- $element.fileupload('option', newOptions);
- }
- }
- );
- }
- ])
-
- // Provide File Upload progress feedback:
- .controller('FileUploadProgressController', [
- '$scope', '$attrs', '$parse',
- function ($scope, $attrs, $parse) {
- var fn = $parse($attrs.fileUploadProgress),
- update = function () {
- var progress = fn($scope);
- if (!progress || !progress.total) {
- return;
- }
- $scope.num = Math.floor(
- progress.loaded / progress.total * 100
- );
- };
- update();
- $scope.$watch(
- $attrs.fileUploadProgress + '.loaded',
- function (newValue, oldValue) {
- if (newValue !== oldValue) {
- update();
- }
- }
- );
- }
- ])
-
- // Display File Upload previews:
- .controller('FileUploadPreviewController', [
- '$scope', '$element', '$attrs',
- function ($scope, $element, $attrs) {
- $scope.$watch(
- $attrs.fileUploadPreview + '.preview',
- function (preview) {
- $element.empty();
- if (preview) {
- $element.append(preview);
- }
- }
- );
- }
- ])
-
- .directive('fileUpload', function () {
- return {
- controller: 'FileUploadController',
- scope: true
- };
- })
-
- .directive('fileUploadProgress', function () {
- return {
- controller: 'FileUploadProgressController',
- scope: true
- };
- })
-
- .directive('fileUploadPreview', function () {
- return {
- controller: 'FileUploadPreviewController'
- };
- })
-
- // Enhance the HTML5 download attribute to
- // allow drag&drop of files to the desktop:
- .directive('download', function () {
- return function (scope, elm) {
- elm.on('dragstart', function (e) {
- try {
- e.originalEvent.dataTransfer.setData(
- 'DownloadURL',
- [
- 'application/octet-stream',
- elm.prop('download'),
- elm.prop('href')
- ].join(':')
- );
- } catch (ignore) {}
- });
- };
- });
-
-}));
diff --git a/milfs/plugins/upload/js/jquery.fileupload-audio.js b/milfs/plugins/upload/js/jquery.fileupload-audio.js
deleted file mode 100644
index 1a746f9..0000000
--- a/milfs/plugins/upload/js/jquery.fileupload-audio.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * jQuery File Upload Audio Preview Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* jshint nomen:false */
-/* global define, require, window, document */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define([
- 'jquery',
- 'load-image',
- './jquery.fileupload-process'
- ], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS:
- factory(
- require('jquery'),
- require('load-image')
- );
- } else {
- // Browser globals:
- factory(
- window.jQuery,
- window.loadImage
- );
- }
-}(function ($, loadImage) {
- 'use strict';
-
- // Prepend to the default processQueue:
- $.blueimp.fileupload.prototype.options.processQueue.unshift(
- {
- action: 'loadAudio',
- // Use the action as prefix for the "@" options:
- prefix: true,
- fileTypes: '@',
- maxFileSize: '@',
- disabled: '@disableAudioPreview'
- },
- {
- action: 'setAudio',
- name: '@audioPreviewName',
- disabled: '@disableAudioPreview'
- }
- );
-
- // The File Upload Audio Preview plugin extends the fileupload widget
- // with audio preview functionality:
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
-
- options: {
- // The regular expression for the types of audio files to load,
- // matched against the file type:
- loadAudioFileTypes: /^audio\/.*$/
- },
-
- _audioElement: document.createElement('audio'),
-
- processActions: {
-
- // Loads the audio file given via data.files and data.index
- // as audio element if the browser supports playing it.
- // Accepts the options fileTypes (regular expression)
- // and maxFileSize (integer) to limit the files to load:
- loadAudio: function (data, options) {
- if (options.disabled) {
- return data;
- }
- var file = data.files[data.index],
- url,
- audio;
- if (this._audioElement.canPlayType &&
- this._audioElement.canPlayType(file.type) &&
- ($.type(options.maxFileSize) !== 'number' ||
- file.size <= options.maxFileSize) &&
- (!options.fileTypes ||
- options.fileTypes.test(file.type))) {
- url = loadImage.createObjectURL(file);
- if (url) {
- audio = this._audioElement.cloneNode(false);
- audio.src = url;
- audio.controls = true;
- data.audio = audio;
- return data;
- }
- }
- return data;
- },
-
- // Sets the audio element as a property of the file object:
- setAudio: function (data, options) {
- if (data.audio && !options.disabled) {
- data.files[data.index][options.name || 'preview'] = data.audio;
- }
- return data;
- }
-
- }
-
- });
-
-}));
diff --git a/milfs/plugins/upload/js/jquery.fileupload-image.js b/milfs/plugins/upload/js/jquery.fileupload-image.js
deleted file mode 100644
index ffb02c2..0000000
--- a/milfs/plugins/upload/js/jquery.fileupload-image.js
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * jQuery File Upload Image Preview & Resize Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* jshint nomen:false */
-/* global define, require, window, Blob */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define([
- 'jquery',
- 'load-image',
- 'load-image-meta',
- 'load-image-exif',
- 'canvas-to-blob',
- './jquery.fileupload-process'
- ], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS:
- factory(
- require('jquery'),
- require('blueimp-load-image/js/load-image'),
- require('blueimp-load-image/js/load-image-meta'),
- require('blueimp-load-image/js/load-image-exif'),
- require('blueimp-canvas-to-blob'),
- require('./jquery.fileupload-process')
- );
- } else {
- // Browser globals:
- factory(
- window.jQuery,
- window.loadImage
- );
- }
-}(function ($, loadImage) {
- 'use strict';
-
- // Prepend to the default processQueue:
- $.blueimp.fileupload.prototype.options.processQueue.unshift(
- {
- action: 'loadImageMetaData',
- disableImageHead: '@',
- disableExif: '@',
- disableExifThumbnail: '@',
- disableExifSub: '@',
- disableExifGps: '@',
- disabled: '@disableImageMetaDataLoad'
- },
- {
- action: 'loadImage',
- // Use the action as prefix for the "@" options:
- prefix: true,
- fileTypes: '@',
- maxFileSize: '@',
- noRevoke: '@',
- disabled: '@disableImageLoad'
- },
- {
- action: 'resizeImage',
- // Use "image" as prefix for the "@" options:
- prefix: 'image',
- maxWidth: '@',
- maxHeight: '@',
- minWidth: '@',
- minHeight: '@',
- crop: '@',
- orientation: '@',
- forceResize: '@',
- disabled: '@disableImageResize'
- },
- {
- action: 'saveImage',
- quality: '@imageQuality',
- type: '@imageType',
- disabled: '@disableImageResize'
- },
- {
- action: 'saveImageMetaData',
- disabled: '@disableImageMetaDataSave'
- },
- {
- action: 'resizeImage',
- // Use "preview" as prefix for the "@" options:
- prefix: 'preview',
- maxWidth: '@',
- maxHeight: '@',
- minWidth: '@',
- minHeight: '@',
- crop: '@',
- orientation: '@',
- thumbnail: '@',
- canvas: '@',
- disabled: '@disableImagePreview'
- },
- {
- action: 'setImage',
- name: '@imagePreviewName',
- disabled: '@disableImagePreview'
- },
- {
- action: 'deleteImageReferences',
- disabled: '@disableImageReferencesDeletion'
- }
- );
-
- // The File Upload Resize plugin extends the fileupload widget
- // with image resize functionality:
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
-
- options: {
- // The regular expression for the types of images to load:
- // matched against the file type:
- loadImageFileTypes: /^image\/(gif|jpeg|png|svg\+xml)$/,
- // The maximum file size of images to load:
- loadImageMaxFileSize: 10000000, // 10MB
- // The maximum width of resized images:
- imageMaxWidth: 1920,
- // The maximum height of resized images:
- imageMaxHeight: 1080,
- // Defines the image orientation (1-8) or takes the orientation
- // value from Exif data if set to true:
- imageOrientation: false,
- // Define if resized images should be cropped or only scaled:
- imageCrop: false,
- // Disable the resize image functionality by default:
- disableImageResize: true,
- // The maximum width of the preview images:
- previewMaxWidth: 80,
- // The maximum height of the preview images:
- previewMaxHeight: 80,
- // Defines the preview orientation (1-8) or takes the orientation
- // value from Exif data if set to true:
- previewOrientation: true,
- // Create the preview using the Exif data thumbnail:
- previewThumbnail: true,
- // Define if preview images should be cropped or only scaled:
- previewCrop: false,
- // Define if preview images should be resized as canvas elements:
- previewCanvas: true
- },
-
- processActions: {
-
- // Loads the image given via data.files and data.index
- // as img element, if the browser supports the File API.
- // Accepts the options fileTypes (regular expression)
- // and maxFileSize (integer) to limit the files to load:
- loadImage: function (data, options) {
- if (options.disabled) {
- return data;
- }
- var that = this,
- file = data.files[data.index],
- dfd = $.Deferred();
- if (($.type(options.maxFileSize) === 'number' &&
- file.size > options.maxFileSize) ||
- (options.fileTypes &&
- !options.fileTypes.test(file.type)) ||
- !loadImage(
- file,
- function (img) {
- if (img.src) {
- data.img = img;
- }
- dfd.resolveWith(that, [data]);
- },
- options
- )) {
- return data;
- }
- return dfd.promise();
- },
-
- // Resizes the image given as data.canvas or data.img
- // and updates data.canvas or data.img with the resized image.
- // Also stores the resized image as preview property.
- // Accepts the options maxWidth, maxHeight, minWidth,
- // minHeight, canvas and crop:
- resizeImage: function (data, options) {
- if (options.disabled || !(data.canvas || data.img)) {
- return data;
- }
- options = $.extend({canvas: true}, options);
- var that = this,
- dfd = $.Deferred(),
- img = (options.canvas && data.canvas) || data.img,
- resolve = function (newImg) {
- if (newImg && (newImg.width !== img.width ||
- newImg.height !== img.height ||
- options.forceResize)) {
- data[newImg.getContext ? 'canvas' : 'img'] = newImg;
- }
- data.preview = newImg;
- dfd.resolveWith(that, [data]);
- },
- thumbnail;
- if (data.exif) {
- if (options.orientation === true) {
- options.orientation = data.exif.get('Orientation');
- }
- if (options.thumbnail) {
- thumbnail = data.exif.get('Thumbnail');
- if (thumbnail) {
- loadImage(thumbnail, resolve, options);
- return dfd.promise();
- }
- }
- // Prevent orienting the same image twice:
- if (data.orientation) {
- delete options.orientation;
- } else {
- data.orientation = options.orientation;
- }
- }
- if (img) {
- resolve(loadImage.scale(img, options));
- return dfd.promise();
- }
- return data;
- },
-
- // Saves the processed image given as data.canvas
- // inplace at data.index of data.files:
- saveImage: function (data, options) {
- if (!data.canvas || options.disabled) {
- return data;
- }
- var that = this,
- file = data.files[data.index],
- dfd = $.Deferred();
- if (data.canvas.toBlob) {
- data.canvas.toBlob(
- function (blob) {
- if (!blob.name) {
- if (file.type === blob.type) {
- blob.name = file.name;
- } else if (file.name) {
- blob.name = file.name.replace(
- /\.\w+$/,
- '.' + blob.type.substr(6)
- );
- }
- }
- // Don't restore invalid meta data:
- if (file.type !== blob.type) {
- delete data.imageHead;
- }
- // Store the created blob at the position
- // of the original file in the files list:
- data.files[data.index] = blob;
- dfd.resolveWith(that, [data]);
- },
- options.type || file.type,
- options.quality
- );
- } else {
- return data;
- }
- return dfd.promise();
- },
-
- loadImageMetaData: function (data, options) {
- if (options.disabled) {
- return data;
- }
- var that = this,
- dfd = $.Deferred();
- loadImage.parseMetaData(data.files[data.index], function (result) {
- $.extend(data, result);
- dfd.resolveWith(that, [data]);
- }, options);
- return dfd.promise();
- },
-
- saveImageMetaData: function (data, options) {
- if (!(data.imageHead && data.canvas &&
- data.canvas.toBlob && !options.disabled)) {
- return data;
- }
- var file = data.files[data.index],
- blob = new Blob([
- data.imageHead,
- // Resized images always have a head size of 20 bytes,
- // including the JPEG marker and a minimal JFIF header:
- this._blobSlice.call(file, 20)
- ], {type: file.type});
- blob.name = file.name;
- data.files[data.index] = blob;
- return data;
- },
-
- // Sets the resized version of the image as a property of the
- // file object, must be called after "saveImage":
- setImage: function (data, options) {
- if (data.preview && !options.disabled) {
- data.files[data.index][options.name || 'preview'] = data.preview;
- }
- return data;
- },
-
- deleteImageReferences: function (data, options) {
- if (!options.disabled) {
- delete data.img;
- delete data.canvas;
- delete data.preview;
- delete data.imageHead;
- }
- return data;
- }
-
- }
-
- });
-
-}));
diff --git a/milfs/plugins/upload/js/jquery.fileupload-jquery-ui.js b/milfs/plugins/upload/js/jquery.fileupload-jquery-ui.js
deleted file mode 100644
index 4f239fa..0000000
--- a/milfs/plugins/upload/js/jquery.fileupload-jquery-ui.js
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * jQuery File Upload jQuery UI Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* jshint nomen:false */
-/* global define, require, window */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define(['jquery', './jquery.fileupload-ui'], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS:
- factory(require('jquery'));
- } else {
- // Browser globals:
- factory(window.jQuery);
- }
-}(function ($) {
- 'use strict';
-
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
-
- options: {
- processdone: function (e, data) {
- data.context.find('.start').button('enable');
- },
- progress: function (e, data) {
- if (data.context) {
- data.context.find('.progress').progressbar(
- 'option',
- 'value',
- parseInt(data.loaded / data.total * 100, 10)
- );
- }
- },
- progressall: function (e, data) {
- var $this = $(this);
- $this.find('.fileupload-progress')
- .find('.progress').progressbar(
- 'option',
- 'value',
- parseInt(data.loaded / data.total * 100, 10)
- ).end()
- .find('.progress-extended').each(function () {
- $(this).html(
- ($this.data('blueimp-fileupload') ||
- $this.data('fileupload'))
- ._renderExtendedProgress(data)
- );
- });
- }
- },
-
- _renderUpload: function (func, files) {
- var node = this._super(func, files),
- showIconText = $(window).width() > 480;
- node.find('.progress').empty().progressbar();
- node.find('.start').button({
- icons: {primary: 'ui-icon-circle-arrow-e'},
- text: showIconText
- });
- node.find('.cancel').button({
- icons: {primary: 'ui-icon-cancel'},
- text: showIconText
- });
- if (node.hasClass('fade')) {
- node.hide();
- }
- return node;
- },
-
- _renderDownload: function (func, files) {
- var node = this._super(func, files),
- showIconText = $(window).width() > 480;
- node.find('.delete').button({
- icons: {primary: 'ui-icon-trash'},
- text: showIconText
- });
- if (node.hasClass('fade')) {
- node.hide();
- }
- return node;
- },
-
- _startHandler: function (e) {
- $(e.currentTarget).button('disable');
- this._super(e);
- },
-
- _transition: function (node) {
- var deferred = $.Deferred();
- if (node.hasClass('fade')) {
- node.fadeToggle(
- this.options.transitionDuration,
- this.options.transitionEasing,
- function () {
- deferred.resolveWith(node);
- }
- );
- } else {
- deferred.resolveWith(node);
- }
- return deferred;
- },
-
- _create: function () {
- this._super();
- this.element
- .find('.fileupload-buttonbar')
- .find('.fileinput-button').each(function () {
- var input = $(this).find('input:file').detach();
- $(this)
- .button({icons: {primary: 'ui-icon-plusthick'}})
- .append(input);
- })
- .end().find('.start')
- .button({icons: {primary: 'ui-icon-circle-arrow-e'}})
- .end().find('.cancel')
- .button({icons: {primary: 'ui-icon-cancel'}})
- .end().find('.delete')
- .button({icons: {primary: 'ui-icon-trash'}})
- .end().find('.progress').progressbar();
- },
-
- _destroy: function () {
- this.element
- .find('.fileupload-buttonbar')
- .find('.fileinput-button').each(function () {
- var input = $(this).find('input:file').detach();
- $(this)
- .button('destroy')
- .append(input);
- })
- .end().find('.start')
- .button('destroy')
- .end().find('.cancel')
- .button('destroy')
- .end().find('.delete')
- .button('destroy')
- .end().find('.progress').progressbar('destroy');
- this._super();
- }
-
- });
-
-}));
diff --git a/milfs/plugins/upload/js/jquery.fileupload-process.js b/milfs/plugins/upload/js/jquery.fileupload-process.js
deleted file mode 100644
index ce914df..0000000
--- a/milfs/plugins/upload/js/jquery.fileupload-process.js
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * jQuery File Upload Processing Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2012, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* jshint nomen:false */
-/* global define, require, window */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define([
- 'jquery',
- './jquery.fileupload'
- ], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS:
- factory(require('jquery'));
- } else {
- // Browser globals:
- factory(
- window.jQuery
- );
- }
-}(function ($) {
- 'use strict';
-
- var originalAdd = $.blueimp.fileupload.prototype.options.add;
-
- // The File Upload Processing plugin extends the fileupload widget
- // with file processing functionality:
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
-
- options: {
- // The list of processing actions:
- processQueue: [
- /*
- {
- action: 'log',
- type: 'debug'
- }
- */
- ],
- add: function (e, data) {
- var $this = $(this);
- data.process(function () {
- return $this.fileupload('process', data);
- });
- originalAdd.call(this, e, data);
- }
- },
-
- processActions: {
- /*
- log: function (data, options) {
- console[options.type](
- 'Processing "' + data.files[data.index].name + '"'
- );
- }
- */
- },
-
- _processFile: function (data, originalData) {
- var that = this,
- dfd = $.Deferred().resolveWith(that, [data]),
- chain = dfd.promise();
- this._trigger('process', null, data);
- $.each(data.processQueue, function (i, settings) {
- var func = function (data) {
- if (originalData.errorThrown) {
- return $.Deferred()
- .rejectWith(that, [originalData]).promise();
- }
- return that.processActions[settings.action].call(
- that,
- data,
- settings
- );
- };
- chain = chain.pipe(func, settings.always && func);
- });
- chain
- .done(function () {
- that._trigger('processdone', null, data);
- that._trigger('processalways', null, data);
- })
- .fail(function () {
- that._trigger('processfail', null, data);
- that._trigger('processalways', null, data);
- });
- return chain;
- },
-
- // Replaces the settings of each processQueue item that
- // are strings starting with an "@", using the remaining
- // substring as key for the option map,
- // e.g. "@autoUpload" is replaced with options.autoUpload:
- _transformProcessQueue: function (options) {
- var processQueue = [];
- $.each(options.processQueue, function () {
- var settings = {},
- action = this.action,
- prefix = this.prefix === true ? action : this.prefix;
- $.each(this, function (key, value) {
- if ($.type(value) === 'string' &&
- value.charAt(0) === '@') {
- settings[key] = options[
- value.slice(1) || (prefix ? prefix +
- key.charAt(0).toUpperCase() + key.slice(1) : key)
- ];
- } else {
- settings[key] = value;
- }
-
- });
- processQueue.push(settings);
- });
- options.processQueue = processQueue;
- },
-
- // Returns the number of files currently in the processsing queue:
- processing: function () {
- return this._processing;
- },
-
- // Processes the files given as files property of the data parameter,
- // returns a Promise object that allows to bind callbacks:
- process: function (data) {
- var that = this,
- options = $.extend({}, this.options, data);
- if (options.processQueue && options.processQueue.length) {
- this._transformProcessQueue(options);
- if (this._processing === 0) {
- this._trigger('processstart');
- }
- $.each(data.files, function (index) {
- var opts = index ? $.extend({}, options) : options,
- func = function () {
- if (data.errorThrown) {
- return $.Deferred()
- .rejectWith(that, [data]).promise();
- }
- return that._processFile(opts, data);
- };
- opts.index = index;
- that._processing += 1;
- that._processingQueue = that._processingQueue.pipe(func, func)
- .always(function () {
- that._processing -= 1;
- if (that._processing === 0) {
- that._trigger('processstop');
- }
- });
- });
- }
- return this._processingQueue;
- },
-
- _create: function () {
- this._super();
- this._processing = 0;
- this._processingQueue = $.Deferred().resolveWith(this)
- .promise();
- }
-
- });
-
-}));
diff --git a/milfs/plugins/upload/js/jquery.fileupload-ui.js b/milfs/plugins/upload/js/jquery.fileupload-ui.js
deleted file mode 100644
index 8154218..0000000
--- a/milfs/plugins/upload/js/jquery.fileupload-ui.js
+++ /dev/null
@@ -1,710 +0,0 @@
-/*
- * jQuery File Upload User Interface Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2010, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* jshint nomen:false */
-/* global define, require, window */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define([
- 'jquery',
- 'tmpl',
- './jquery.fileupload-image',
- './jquery.fileupload-audio',
- './jquery.fileupload-video',
- './jquery.fileupload-validate'
- ], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS:
- factory(
- require('jquery'),
- require('tmpl')
- );
- } else {
- // Browser globals:
- factory(
- window.jQuery,
- window.tmpl
- );
- }
-}(function ($, tmpl) {
- 'use strict';
-
- $.blueimp.fileupload.prototype._specialOptions.push(
- 'filesContainer',
- 'uploadTemplateId',
- 'downloadTemplateId'
- );
-
- // The UI version extends the file upload widget
- // and adds complete user interface interaction:
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
-
- options: {
- // By default, files added to the widget are uploaded as soon
- // as the user clicks on the start buttons. To enable automatic
- // uploads, set the following option to true:
- autoUpload: false,
- // The ID of the upload template:
- uploadTemplateId: 'template-upload',
- // The ID of the download template:
- downloadTemplateId: 'template-download',
- // The container for the list of files. If undefined, it is set to
- // an element with class "files" inside of the widget element:
- filesContainer: undefined,
- // By default, files are appended to the files container.
- // Set the following option to true, to prepend files instead:
- prependFiles: false,
- // The expected data type of the upload response, sets the dataType
- // option of the $.ajax upload requests:
- dataType: 'json',
-
- // Error and info messages:
- messages: {
- unknownError: 'Unknown error'
- },
-
- // Function returning the current number of files,
- // used by the maxNumberOfFiles validation:
- getNumberOfFiles: function () {
- return this.filesContainer.children()
- .not('.processing').length;
- },
-
- // Callback to retrieve the list of files from the server response:
- getFilesFromResponse: function (data) {
- if (data.result && $.isArray(data.result.files)) {
- return data.result.files;
- }
- return [];
- },
-
- // The add callback is invoked as soon as files are added to the fileupload
- // widget (via file input selection, drag & drop or add API call).
- // See the basic file upload widget for more information:
- add: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var $this = $(this),
- that = $this.data('blueimp-fileupload') ||
- $this.data('fileupload'),
- options = that.options;
- data.context = that._renderUpload(data.files)
- .data('data', data)
- .addClass('processing');
- options.filesContainer[
- options.prependFiles ? 'prepend' : 'append'
- ](data.context);
- that._forceReflow(data.context);
- that._transition(data.context);
- data.process(function () {
- return $this.fileupload('process', data);
- }).always(function () {
- data.context.each(function (index) {
- $(this).find('.size').text(
- that._formatFileSize(data.files[index].size)
- );
- }).removeClass('processing');
- that._renderPreviews(data);
- }).done(function () {
- data.context.find('.start').prop('disabled', false);
- if ((that._trigger('added', e, data) !== false) &&
- (options.autoUpload || data.autoUpload) &&
- data.autoUpload !== false) {
- data.submit();
- }
- }).fail(function () {
- if (data.files.error) {
- data.context.each(function (index) {
- var error = data.files[index].error;
- if (error) {
- $(this).find('.error').text(error);
- }
- });
- }
- });
- },
- // Callback for the start of each file upload request:
- send: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var that = $(this).data('blueimp-fileupload') ||
- $(this).data('fileupload');
- if (data.context && data.dataType &&
- data.dataType.substr(0, 6) === 'iframe') {
- // Iframe Transport does not support progress events.
- // In lack of an indeterminate progress bar, we set
- // the progress to 100%, showing the full animated bar:
- data.context
- .find('.progress').addClass(
- !$.support.transition && 'progress-animated'
- )
- .attr('aria-valuenow', 100)
- .children().first().css(
- 'width',
- '100%'
- );
- }
- return that._trigger('sent', e, data);
- },
- // Callback for successful uploads:
- done: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var that = $(this).data('blueimp-fileupload') ||
- $(this).data('fileupload'),
- getFilesFromResponse = data.getFilesFromResponse ||
- that.options.getFilesFromResponse,
- files = getFilesFromResponse(data),
- template,
- deferred;
- if (data.context) {
- data.context.each(function (index) {
- var file = files[index] ||
- {error: 'Empty file upload result'};
- deferred = that._addFinishedDeferreds();
- that._transition($(this)).done(
- function () {
- var node = $(this);
- template = that._renderDownload([file])
- .replaceAll(node);
- that._forceReflow(template);
- that._transition(template).done(
- function () {
- data.context = $(this);
- that._trigger('completed', e, data);
- that._trigger('finished', e, data);
- deferred.resolve();
- }
- );
- }
- );
- });
- } else {
- template = that._renderDownload(files)[
- that.options.prependFiles ? 'prependTo' : 'appendTo'
- ](that.options.filesContainer);
- that._forceReflow(template);
- deferred = that._addFinishedDeferreds();
- that._transition(template).done(
- function () {
- data.context = $(this);
- that._trigger('completed', e, data);
- that._trigger('finished', e, data);
- deferred.resolve();
- }
- );
- }
- },
- // Callback for failed (abort or error) uploads:
- fail: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var that = $(this).data('blueimp-fileupload') ||
- $(this).data('fileupload'),
- template,
- deferred;
- if (data.context) {
- data.context.each(function (index) {
- if (data.errorThrown !== 'abort') {
- var file = data.files[index];
- file.error = file.error || data.errorThrown ||
- data.i18n('unknownError');
- deferred = that._addFinishedDeferreds();
- that._transition($(this)).done(
- function () {
- var node = $(this);
- template = that._renderDownload([file])
- .replaceAll(node);
- that._forceReflow(template);
- that._transition(template).done(
- function () {
- data.context = $(this);
- that._trigger('failed', e, data);
- that._trigger('finished', e, data);
- deferred.resolve();
- }
- );
- }
- );
- } else {
- deferred = that._addFinishedDeferreds();
- that._transition($(this)).done(
- function () {
- $(this).remove();
- that._trigger('failed', e, data);
- that._trigger('finished', e, data);
- deferred.resolve();
- }
- );
- }
- });
- } else if (data.errorThrown !== 'abort') {
- data.context = that._renderUpload(data.files)[
- that.options.prependFiles ? 'prependTo' : 'appendTo'
- ](that.options.filesContainer)
- .data('data', data);
- that._forceReflow(data.context);
- deferred = that._addFinishedDeferreds();
- that._transition(data.context).done(
- function () {
- data.context = $(this);
- that._trigger('failed', e, data);
- that._trigger('finished', e, data);
- deferred.resolve();
- }
- );
- } else {
- that._trigger('failed', e, data);
- that._trigger('finished', e, data);
- that._addFinishedDeferreds().resolve();
- }
- },
- // Callback for upload progress events:
- progress: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var progress = Math.floor(data.loaded / data.total * 100);
- if (data.context) {
- data.context.each(function () {
- $(this).find('.progress')
- .attr('aria-valuenow', progress)
- .children().first().css(
- 'width',
- progress + '%'
- );
- });
- }
- },
- // Callback for global upload progress events:
- progressall: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var $this = $(this),
- progress = Math.floor(data.loaded / data.total * 100),
- globalProgressNode = $this.find('.fileupload-progress'),
- extendedProgressNode = globalProgressNode
- .find('.progress-extended');
- if (extendedProgressNode.length) {
- extendedProgressNode.html(
- ($this.data('blueimp-fileupload') || $this.data('fileupload'))
- ._renderExtendedProgress(data)
- );
- }
- globalProgressNode
- .find('.progress')
- .attr('aria-valuenow', progress)
- .children().first().css(
- 'width',
- progress + '%'
- );
- },
- // Callback for uploads start, equivalent to the global ajaxStart event:
- start: function (e) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var that = $(this).data('blueimp-fileupload') ||
- $(this).data('fileupload');
- that._resetFinishedDeferreds();
- that._transition($(this).find('.fileupload-progress')).done(
- function () {
- that._trigger('started', e);
- }
- );
- },
- // Callback for uploads stop, equivalent to the global ajaxStop event:
- stop: function (e) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var that = $(this).data('blueimp-fileupload') ||
- $(this).data('fileupload'),
- deferred = that._addFinishedDeferreds();
- $.when.apply($, that._getFinishedDeferreds())
- .done(function () {
- that._trigger('stopped', e);
- });
- that._transition($(this).find('.fileupload-progress')).done(
- function () {
- $(this).find('.progress')
- .attr('aria-valuenow', '0')
- .children().first().css('width', '0%');
- $(this).find('.progress-extended').html(' ');
- deferred.resolve();
- }
- );
- },
- processstart: function (e) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- $(this).addClass('fileupload-processing');
- },
- processstop: function (e) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- $(this).removeClass('fileupload-processing');
- },
- // Callback for file deletion:
- destroy: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- var that = $(this).data('blueimp-fileupload') ||
- $(this).data('fileupload'),
- removeNode = function () {
- that._transition(data.context).done(
- function () {
- $(this).remove();
- that._trigger('destroyed', e, data);
- }
- );
- };
- if (data.url) {
- data.dataType = data.dataType || that.options.dataType;
- $.ajax(data).done(removeNode).fail(function () {
- that._trigger('destroyfailed', e, data);
- });
- } else {
- removeNode();
- }
- }
- },
-
- _resetFinishedDeferreds: function () {
- this._finishedUploads = [];
- },
-
- _addFinishedDeferreds: function (deferred) {
- if (!deferred) {
- deferred = $.Deferred();
- }
- this._finishedUploads.push(deferred);
- return deferred;
- },
-
- _getFinishedDeferreds: function () {
- return this._finishedUploads;
- },
-
- // Link handler, that allows to download files
- // by drag & drop of the links to the desktop:
- _enableDragToDesktop: function () {
- var link = $(this),
- url = link.prop('href'),
- name = link.prop('download'),
- type = 'application/octet-stream';
- link.bind('dragstart', function (e) {
- try {
- e.originalEvent.dataTransfer.setData(
- 'DownloadURL',
- [type, name, url].join(':')
- );
- } catch (ignore) {}
- });
- },
-
- _formatFileSize: function (bytes) {
- if (typeof bytes !== 'number') {
- return '';
- }
- if (bytes >= 1000000000) {
- return (bytes / 1000000000).toFixed(2) + ' GB';
- }
- if (bytes >= 1000000) {
- return (bytes / 1000000).toFixed(2) + ' MB';
- }
- return (bytes / 1000).toFixed(2) + ' KB';
- },
-
- _formatBitrate: function (bits) {
- if (typeof bits !== 'number') {
- return '';
- }
- if (bits >= 1000000000) {
- return (bits / 1000000000).toFixed(2) + ' Gbit/s';
- }
- if (bits >= 1000000) {
- return (bits / 1000000).toFixed(2) + ' Mbit/s';
- }
- if (bits >= 1000) {
- return (bits / 1000).toFixed(2) + ' kbit/s';
- }
- return bits.toFixed(2) + ' bit/s';
- },
-
- _formatTime: function (seconds) {
- var date = new Date(seconds * 1000),
- days = Math.floor(seconds / 86400);
- days = days ? days + 'd ' : '';
- return days +
- ('0' + date.getUTCHours()).slice(-2) + ':' +
- ('0' + date.getUTCMinutes()).slice(-2) + ':' +
- ('0' + date.getUTCSeconds()).slice(-2);
- },
-
- _formatPercentage: function (floatValue) {
- return (floatValue * 100).toFixed(2) + ' %';
- },
-
- _renderExtendedProgress: function (data) {
- return this._formatBitrate(data.bitrate) + ' | ' +
- this._formatTime(
- (data.total - data.loaded) * 8 / data.bitrate
- ) + ' | ' +
- this._formatPercentage(
- data.loaded / data.total
- ) + ' | ' +
- this._formatFileSize(data.loaded) + ' / ' +
- this._formatFileSize(data.total);
- },
-
- _renderTemplate: function (func, files) {
- if (!func) {
- return $();
- }
- var result = func({
- files: files,
- formatFileSize: this._formatFileSize,
- options: this.options
- });
- if (result instanceof $) {
- return result;
- }
- return $(this.options.templatesContainer).html(result).children();
- },
-
- _renderPreviews: function (data) {
- data.context.find('.preview').each(function (index, elm) {
- $(elm).append(data.files[index].preview);
- });
- },
-
- _renderUpload: function (files) {
- return this._renderTemplate(
- this.options.uploadTemplate,
- files
- );
- },
-
- _renderDownload: function (files) {
- return this._renderTemplate(
- this.options.downloadTemplate,
- files
- ).find('a[download]').each(this._enableDragToDesktop).end();
- },
-
- _startHandler: function (e) {
- e.preventDefault();
- var button = $(e.currentTarget),
- template = button.closest('.template-upload'),
- data = template.data('data');
- button.prop('disabled', true);
- if (data && data.submit) {
- data.submit();
- }
- },
-
- _cancelHandler: function (e) {
- e.preventDefault();
- var template = $(e.currentTarget)
- .closest('.template-upload,.template-download'),
- data = template.data('data') || {};
- data.context = data.context || template;
- if (data.abort) {
- data.abort();
- } else {
- data.errorThrown = 'abort';
- this._trigger('fail', e, data);
- }
- },
-
- _deleteHandler: function (e) {
- e.preventDefault();
- var button = $(e.currentTarget);
- this._trigger('destroy', e, $.extend({
- context: button.closest('.template-download'),
- type: 'DELETE'
- }, button.data()));
- },
-
- _forceReflow: function (node) {
- return $.support.transition && node.length &&
- node[0].offsetWidth;
- },
-
- _transition: function (node) {
- var dfd = $.Deferred();
- if ($.support.transition && node.hasClass('fade') && node.is(':visible')) {
- node.bind(
- $.support.transition.end,
- function (e) {
- // Make sure we don't respond to other transitions events
- // in the container element, e.g. from button elements:
- if (e.target === node[0]) {
- node.unbind($.support.transition.end);
- dfd.resolveWith(node);
- }
- }
- ).toggleClass('in');
- } else {
- node.toggleClass('in');
- dfd.resolveWith(node);
- }
- return dfd;
- },
-
- _initButtonBarEventHandlers: function () {
- var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'),
- filesList = this.options.filesContainer;
- this._on(fileUploadButtonBar.find('.start'), {
- click: function (e) {
- e.preventDefault();
- filesList.find('.start').click();
- }
- });
- this._on(fileUploadButtonBar.find('.cancel'), {
- click: function (e) {
- e.preventDefault();
- filesList.find('.cancel').click();
- }
- });
- this._on(fileUploadButtonBar.find('.delete'), {
- click: function (e) {
- e.preventDefault();
- filesList.find('.toggle:checked')
- .closest('.template-download')
- .find('.delete').click();
- fileUploadButtonBar.find('.toggle')
- .prop('checked', false);
- }
- });
- this._on(fileUploadButtonBar.find('.toggle'), {
- change: function (e) {
- filesList.find('.toggle').prop(
- 'checked',
- $(e.currentTarget).is(':checked')
- );
- }
- });
- },
-
- _destroyButtonBarEventHandlers: function () {
- this._off(
- this.element.find('.fileupload-buttonbar')
- .find('.start, .cancel, .delete'),
- 'click'
- );
- this._off(
- this.element.find('.fileupload-buttonbar .toggle'),
- 'change.'
- );
- },
-
- _initEventHandlers: function () {
- this._super();
- this._on(this.options.filesContainer, {
- 'click .start': this._startHandler,
- 'click .cancel': this._cancelHandler,
- 'click .delete': this._deleteHandler
- });
- this._initButtonBarEventHandlers();
- },
-
- _destroyEventHandlers: function () {
- this._destroyButtonBarEventHandlers();
- this._off(this.options.filesContainer, 'click');
- this._super();
- },
-
- _enableFileInputButton: function () {
- this.element.find('.fileinput-button input')
- .prop('disabled', false)
- .parent().removeClass('disabled');
- },
-
- _disableFileInputButton: function () {
- this.element.find('.fileinput-button input')
- .prop('disabled', true)
- .parent().addClass('disabled');
- },
-
- _initTemplates: function () {
- var options = this.options;
- options.templatesContainer = this.document[0].createElement(
- options.filesContainer.prop('nodeName')
- );
- if (tmpl) {
- if (options.uploadTemplateId) {
- options.uploadTemplate = tmpl(options.uploadTemplateId);
- }
- if (options.downloadTemplateId) {
- options.downloadTemplate = tmpl(options.downloadTemplateId);
- }
- }
- },
-
- _initFilesContainer: function () {
- var options = this.options;
- if (options.filesContainer === undefined) {
- options.filesContainer = this.element.find('.files');
- } else if (!(options.filesContainer instanceof $)) {
- options.filesContainer = $(options.filesContainer);
- }
- },
-
- _initSpecialOptions: function () {
- this._super();
- this._initFilesContainer();
- this._initTemplates();
- },
-
- _create: function () {
- this._super();
- this._resetFinishedDeferreds();
- if (!$.support.fileInput) {
- this._disableFileInputButton();
- }
- },
-
- enable: function () {
- var wasDisabled = false;
- if (this.options.disabled) {
- wasDisabled = true;
- }
- this._super();
- if (wasDisabled) {
- this.element.find('input, button').prop('disabled', false);
- this._enableFileInputButton();
- }
- },
-
- disable: function () {
- if (!this.options.disabled) {
- this.element.find('input, button').prop('disabled', true);
- this._disableFileInputButton();
- }
- this._super();
- }
-
- });
-
-}));
diff --git a/milfs/plugins/upload/js/jquery.fileupload-validate.js b/milfs/plugins/upload/js/jquery.fileupload-validate.js
deleted file mode 100644
index d6f754c..0000000
--- a/milfs/plugins/upload/js/jquery.fileupload-validate.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * jQuery File Upload Validation Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* global define, require, window */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define([
- 'jquery',
- './jquery.fileupload-process'
- ], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS:
- factory(require('jquery'));
- } else {
- // Browser globals:
- factory(
- window.jQuery
- );
- }
-}(function ($) {
- 'use strict';
-
- // Append to the default processQueue:
- $.blueimp.fileupload.prototype.options.processQueue.push(
- {
- action: 'validate',
- // Always trigger this action,
- // even if the previous action was rejected:
- always: true,
- // Options taken from the global options map:
- acceptFileTypes: '@',
- maxFileSize: '@',
- minFileSize: '@',
- maxNumberOfFiles: '@',
- disabled: '@disableValidation'
- }
- );
-
- // The File Upload Validation plugin extends the fileupload widget
- // with file validation functionality:
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
-
- options: {
- /*
- // The regular expression for allowed file types, matches
- // against either file type or file name:
- acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
- // The maximum allowed file size in bytes:
- maxFileSize: 10000000, // 10 MB
- // The minimum allowed file size in bytes:
- minFileSize: undefined, // No minimal file size
- // The limit of files to be uploaded:
- maxNumberOfFiles: 10,
- */
-
- // Function returning the current number of files,
- // has to be overriden for maxNumberOfFiles validation:
- getNumberOfFiles: $.noop,
-
- // Error and info messages:
- messages: {
- maxNumberOfFiles: 'Maximum number of files exceeded',
- acceptFileTypes: 'File type not allowed',
- maxFileSize: 'File is too large',
- minFileSize: 'File is too small'
- }
- },
-
- processActions: {
-
- validate: function (data, options) {
- if (options.disabled) {
- return data;
- }
- var dfd = $.Deferred(),
- settings = this.options,
- file = data.files[data.index],
- fileSize;
- if (options.minFileSize || options.maxFileSize) {
- fileSize = file.size;
- }
- if ($.type(options.maxNumberOfFiles) === 'number' &&
- (settings.getNumberOfFiles() || 0) + data.files.length >
- options.maxNumberOfFiles) {
- file.error = settings.i18n('maxNumberOfFiles');
- } else if (options.acceptFileTypes &&
- !(options.acceptFileTypes.test(file.type) ||
- options.acceptFileTypes.test(file.name))) {
- file.error = settings.i18n('acceptFileTypes');
- } else if (fileSize > options.maxFileSize) {
- file.error = settings.i18n('maxFileSize');
- } else if ($.type(fileSize) === 'number' &&
- fileSize < options.minFileSize) {
- file.error = settings.i18n('minFileSize');
- } else {
- delete file.error;
- }
- if (file.error || data.files.error) {
- data.files.error = true;
- dfd.rejectWith(this, [data]);
- } else {
- dfd.resolveWith(this, [data]);
- }
- return dfd.promise();
- }
-
- }
-
- });
-
-}));
diff --git a/milfs/plugins/upload/js/jquery.fileupload-video.js b/milfs/plugins/upload/js/jquery.fileupload-video.js
deleted file mode 100644
index 8067ca1..0000000
--- a/milfs/plugins/upload/js/jquery.fileupload-video.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * jQuery File Upload Video Preview Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* jshint nomen:false */
-/* global define, require, window, document */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define([
- 'jquery',
- 'load-image',
- './jquery.fileupload-process'
- ], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS:
- factory(
- require('jquery'),
- require('load-image')
- );
- } else {
- // Browser globals:
- factory(
- window.jQuery,
- window.loadImage
- );
- }
-}(function ($, loadImage) {
- 'use strict';
-
- // Prepend to the default processQueue:
- $.blueimp.fileupload.prototype.options.processQueue.unshift(
- {
- action: 'loadVideo',
- // Use the action as prefix for the "@" options:
- prefix: true,
- fileTypes: '@',
- maxFileSize: '@',
- disabled: '@disableVideoPreview'
- },
- {
- action: 'setVideo',
- name: '@videoPreviewName',
- disabled: '@disableVideoPreview'
- }
- );
-
- // The File Upload Video Preview plugin extends the fileupload widget
- // with video preview functionality:
- $.widget('blueimp.fileupload', $.blueimp.fileupload, {
-
- options: {
- // The regular expression for the types of video files to load,
- // matched against the file type:
- loadVideoFileTypes: /^video\/.*$/
- },
-
- _videoElement: document.createElement('video'),
-
- processActions: {
-
- // Loads the video file given via data.files and data.index
- // as video element if the browser supports playing it.
- // Accepts the options fileTypes (regular expression)
- // and maxFileSize (integer) to limit the files to load:
- loadVideo: function (data, options) {
- if (options.disabled) {
- return data;
- }
- var file = data.files[data.index],
- url,
- video;
- if (this._videoElement.canPlayType &&
- this._videoElement.canPlayType(file.type) &&
- ($.type(options.maxFileSize) !== 'number' ||
- file.size <= options.maxFileSize) &&
- (!options.fileTypes ||
- options.fileTypes.test(file.type))) {
- url = loadImage.createObjectURL(file);
- if (url) {
- video = this._videoElement.cloneNode(false);
- video.src = url;
- video.controls = true;
- data.video = video;
- return data;
- }
- }
- return data;
- },
-
- // Sets the video element as a property of the file object:
- setVideo: function (data, options) {
- if (data.video && !options.disabled) {
- data.files[data.index][options.name || 'preview'] = data.video;
- }
- return data;
- }
-
- }
-
- });
-
-}));
diff --git a/milfs/plugins/upload/js/jquery.fileupload.js b/milfs/plugins/upload/js/jquery.fileupload.js
deleted file mode 100644
index 91b7254..0000000
--- a/milfs/plugins/upload/js/jquery.fileupload.js
+++ /dev/null
@@ -1,1477 +0,0 @@
-/*
- * jQuery File Upload Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2010, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* jshint nomen:false */
-/* global define, require, window, document, location, Blob, FormData */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define([
- 'jquery',
- 'jquery.ui.widget'
- ], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS:
- factory(
- require('jquery'),
- require('./vendor/jquery.ui.widget')
- );
- } else {
- // Browser globals:
- factory(window.jQuery);
- }
-}(function ($) {
- 'use strict';
-
- // Detect file input support, based on
- // http://viljamis.com/blog/2012/file-upload-support-on-mobile/
- $.support.fileInput = !(new RegExp(
- // Handle devices which give false positives for the feature detection:
- '(Android (1\\.[0156]|2\\.[01]))' +
- '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +
- '|(w(eb)?OSBrowser)|(webOS)' +
- '|(Kindle/(1\\.0|2\\.[05]|3\\.0))'
- ).test(window.navigator.userAgent) ||
- // Feature detection for all other devices:
- $(' ').prop('disabled'));
-
- // The FileReader API is not actually used, but works as feature detection,
- // as some Safari versions (5?) support XHR file uploads via the FormData API,
- // but not non-multipart XHR file uploads.
- // window.XMLHttpRequestUpload is not available on IE10, so we check for
- // window.ProgressEvent instead to detect XHR2 file upload capability:
- $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);
- $.support.xhrFormDataFileUpload = !!window.FormData;
-
- // Detect support for Blob slicing (required for chunked uploads):
- $.support.blobSlice = window.Blob && (Blob.prototype.slice ||
- Blob.prototype.webkitSlice || Blob.prototype.mozSlice);
-
- // Helper function to create drag handlers for dragover/dragenter/dragleave:
- function getDragHandler(type) {
- var isDragOver = type === 'dragover';
- return function (e) {
- e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
- var dataTransfer = e.dataTransfer;
- if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 &&
- this._trigger(
- type,
- $.Event(type, {delegatedEvent: e})
- ) !== false) {
- e.preventDefault();
- if (isDragOver) {
- dataTransfer.dropEffect = 'copy';
- }
- }
- };
- }
-
- // The fileupload widget listens for change events on file input fields defined
- // via fileInput setting and paste or drop events of the given dropZone.
- // In addition to the default jQuery Widget methods, the fileupload widget
- // exposes the "add" and "send" methods, to add or directly send files using
- // the fileupload API.
- // By default, files added via file input selection, paste, drag & drop or
- // "add" method are uploaded immediately, but it is possible to override
- // the "add" callback option to queue file uploads.
- $.widget('blueimp.fileupload', {
-
- options: {
- // The drop target element(s), by the default the complete document.
- // Set to null to disable drag & drop support:
- dropZone: $(document),
- // The paste target element(s), by the default undefined.
- // Set to a DOM node or jQuery object to enable file pasting:
- pasteZone: undefined,
- // The file input field(s), that are listened to for change events.
- // If undefined, it is set to the file input fields inside
- // of the widget element on plugin initialization.
- // Set to null to disable the change listener.
- fileInput: undefined,
- // By default, the file input field is replaced with a clone after
- // each input field change event. This is required for iframe transport
- // queues and allows change events to be fired for the same file
- // selection, but can be disabled by setting the following option to false:
- replaceFileInput: true,
- // The parameter name for the file form data (the request argument name).
- // If undefined or empty, the name property of the file input field is
- // used, or "files[]" if the file input name property is also empty,
- // can be a string or an array of strings:
- paramName: undefined,
- // By default, each file of a selection is uploaded using an individual
- // request for XHR type uploads. Set to false to upload file
- // selections in one request each:
- singleFileUploads: true,
- // To limit the number of files uploaded with one XHR request,
- // set the following option to an integer greater than 0:
- limitMultiFileUploads: undefined,
- // The following option limits the number of files uploaded with one
- // XHR request to keep the request size under or equal to the defined
- // limit in bytes:
- limitMultiFileUploadSize: undefined,
- // Multipart file uploads add a number of bytes to each uploaded file,
- // therefore the following option adds an overhead for each file used
- // in the limitMultiFileUploadSize configuration:
- limitMultiFileUploadSizeOverhead: 512,
- // Set the following option to true to issue all file upload requests
- // in a sequential order:
- sequentialUploads: false,
- // To limit the number of concurrent uploads,
- // set the following option to an integer greater than 0:
- limitConcurrentUploads: undefined,
- // Set the following option to true to force iframe transport uploads:
- forceIframeTransport: false,
- // Set the following option to the location of a redirect url on the
- // origin server, for cross-domain iframe transport uploads:
- redirect: undefined,
- // The parameter name for the redirect url, sent as part of the form
- // data and set to 'redirect' if this option is empty:
- redirectParamName: undefined,
- // Set the following option to the location of a postMessage window,
- // to enable postMessage transport uploads:
- postMessage: undefined,
- // By default, XHR file uploads are sent as multipart/form-data.
- // The iframe transport is always using multipart/form-data.
- // Set to false to enable non-multipart XHR uploads:
- multipart: true,
- // To upload large files in smaller chunks, set the following option
- // to a preferred maximum chunk size. If set to 0, null or undefined,
- // or the browser does not support the required Blob API, files will
- // be uploaded as a whole.
- maxChunkSize: undefined,
- // When a non-multipart upload or a chunked multipart upload has been
- // aborted, this option can be used to resume the upload by setting
- // it to the size of the already uploaded bytes. This option is most
- // useful when modifying the options object inside of the "add" or
- // "send" callbacks, as the options are cloned for each file upload.
- uploadedBytes: undefined,
- // By default, failed (abort or error) file uploads are removed from the
- // global progress calculation. Set the following option to false to
- // prevent recalculating the global progress data:
- recalculateProgress: true,
- // Interval in milliseconds to calculate and trigger progress events:
- progressInterval: 100,
- // Interval in milliseconds to calculate progress bitrate:
- bitrateInterval: 500,
- // By default, uploads are started automatically when adding files:
- autoUpload: true,
-
- // Error and info messages:
- messages: {
- uploadedBytes: 'Uploaded bytes exceed file size'
- },
-
- // Translation function, gets the message key to be translated
- // and an object with context specific data as arguments:
- i18n: function (message, context) {
- message = this.messages[message] || message.toString();
- if (context) {
- $.each(context, function (key, value) {
- message = message.replace('{' + key + '}', value);
- });
- }
- return message;
- },
-
- // Additional form data to be sent along with the file uploads can be set
- // using this option, which accepts an array of objects with name and
- // value properties, a function returning such an array, a FormData
- // object (for XHR file uploads), or a simple object.
- // The form of the first fileInput is given as parameter to the function:
- formData: function (form) {
- return form.serializeArray();
- },
-
- // The add callback is invoked as soon as files are added to the fileupload
- // widget (via file input selection, drag & drop, paste or add API call).
- // If the singleFileUploads option is enabled, this callback will be
- // called once for each file in the selection for XHR file uploads, else
- // once for each file selection.
- //
- // The upload starts when the submit method is invoked on the data parameter.
- // The data object contains a files property holding the added files
- // and allows you to override plugin options as well as define ajax settings.
- //
- // Listeners for this callback can also be bound the following way:
- // .bind('fileuploadadd', func);
- //
- // data.submit() returns a Promise object and allows to attach additional
- // handlers using jQuery's Deferred callbacks:
- // data.submit().done(func).fail(func).always(func);
- add: function (e, data) {
- if (e.isDefaultPrevented()) {
- return false;
- }
- if (data.autoUpload || (data.autoUpload !== false &&
- $(this).fileupload('option', 'autoUpload'))) {
- data.process().done(function () {
- data.submit();
- });
- }
- },
-
- // Other callbacks:
-
- // Callback for the submit event of each file upload:
- // submit: function (e, data) {}, // .bind('fileuploadsubmit', func);
-
- // Callback for the start of each file upload request:
- // send: function (e, data) {}, // .bind('fileuploadsend', func);
-
- // Callback for successful uploads:
- // done: function (e, data) {}, // .bind('fileuploaddone', func);
-
- // Callback for failed (abort or error) uploads:
- // fail: function (e, data) {}, // .bind('fileuploadfail', func);
-
- // Callback for completed (success, abort or error) requests:
- // always: function (e, data) {}, // .bind('fileuploadalways', func);
-
- // Callback for upload progress events:
- // progress: function (e, data) {}, // .bind('fileuploadprogress', func);
-
- // Callback for global upload progress events:
- // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func);
-
- // Callback for uploads start, equivalent to the global ajaxStart event:
- // start: function (e) {}, // .bind('fileuploadstart', func);
-
- // Callback for uploads stop, equivalent to the global ajaxStop event:
- // stop: function (e) {}, // .bind('fileuploadstop', func);
-
- // Callback for change events of the fileInput(s):
- // change: function (e, data) {}, // .bind('fileuploadchange', func);
-
- // Callback for paste events to the pasteZone(s):
- // paste: function (e, data) {}, // .bind('fileuploadpaste', func);
-
- // Callback for drop events of the dropZone(s):
- // drop: function (e, data) {}, // .bind('fileuploaddrop', func);
-
- // Callback for dragover events of the dropZone(s):
- // dragover: function (e) {}, // .bind('fileuploaddragover', func);
-
- // Callback for the start of each chunk upload request:
- // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func);
-
- // Callback for successful chunk uploads:
- // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func);
-
- // Callback for failed (abort or error) chunk uploads:
- // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func);
-
- // Callback for completed (success, abort or error) chunk upload requests:
- // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func);
-
- // The plugin options are used as settings object for the ajax calls.
- // The following are jQuery ajax settings required for the file uploads:
- processData: false,
- contentType: false,
- cache: false,
- timeout: 0
- },
-
- // A list of options that require reinitializing event listeners and/or
- // special initialization code:
- _specialOptions: [
- 'fileInput',
- 'dropZone',
- 'pasteZone',
- 'multipart',
- 'forceIframeTransport'
- ],
-
- _blobSlice: $.support.blobSlice && function () {
- var slice = this.slice || this.webkitSlice || this.mozSlice;
- return slice.apply(this, arguments);
- },
-
- _BitrateTimer: function () {
- this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());
- this.loaded = 0;
- this.bitrate = 0;
- this.getBitrate = function (now, loaded, interval) {
- var timeDiff = now - this.timestamp;
- if (!this.bitrate || !interval || timeDiff > interval) {
- this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;
- this.loaded = loaded;
- this.timestamp = now;
- }
- return this.bitrate;
- };
- },
-
- _isXHRUpload: function (options) {
- return !options.forceIframeTransport &&
- ((!options.multipart && $.support.xhrFileUpload) ||
- $.support.xhrFormDataFileUpload);
- },
-
- _getFormData: function (options) {
- var formData;
- if ($.type(options.formData) === 'function') {
- return options.formData(options.form);
- }
- if ($.isArray(options.formData)) {
- return options.formData;
- }
- if ($.type(options.formData) === 'object') {
- formData = [];
- $.each(options.formData, function (name, value) {
- formData.push({name: name, value: value});
- });
- return formData;
- }
- return [];
- },
-
- _getTotal: function (files) {
- var total = 0;
- $.each(files, function (index, file) {
- total += file.size || 1;
- });
- return total;
- },
-
- _initProgressObject: function (obj) {
- var progress = {
- loaded: 0,
- total: 0,
- bitrate: 0
- };
- if (obj._progress) {
- $.extend(obj._progress, progress);
- } else {
- obj._progress = progress;
- }
- },
-
- _initResponseObject: function (obj) {
- var prop;
- if (obj._response) {
- for (prop in obj._response) {
- if (obj._response.hasOwnProperty(prop)) {
- delete obj._response[prop];
- }
- }
- } else {
- obj._response = {};
- }
- },
-
- _onProgress: function (e, data) {
- if (e.lengthComputable) {
- var now = ((Date.now) ? Date.now() : (new Date()).getTime()),
- loaded;
- if (data._time && data.progressInterval &&
- (now - data._time < data.progressInterval) &&
- e.loaded !== e.total) {
- return;
- }
- data._time = now;
- loaded = Math.floor(
- e.loaded / e.total * (data.chunkSize || data._progress.total)
- ) + (data.uploadedBytes || 0);
- // Add the difference from the previously loaded state
- // to the global loaded counter:
- this._progress.loaded += (loaded - data._progress.loaded);
- this._progress.bitrate = this._bitrateTimer.getBitrate(
- now,
- this._progress.loaded,
- data.bitrateInterval
- );
- data._progress.loaded = data.loaded = loaded;
- data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(
- now,
- loaded,
- data.bitrateInterval
- );
- // Trigger a custom progress event with a total data property set
- // to the file size(s) of the current upload and a loaded data
- // property calculated accordingly:
- this._trigger(
- 'progress',
- $.Event('progress', {delegatedEvent: e}),
- data
- );
- // Trigger a global progress event for all current file uploads,
- // including ajax calls queued for sequential file uploads:
- this._trigger(
- 'progressall',
- $.Event('progressall', {delegatedEvent: e}),
- this._progress
- );
- }
- },
-
- _initProgressListener: function (options) {
- var that = this,
- xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();
- // Accesss to the native XHR object is required to add event listeners
- // for the upload progress event:
- if (xhr.upload) {
- $(xhr.upload).bind('progress', function (e) {
- var oe = e.originalEvent;
- // Make sure the progress event properties get copied over:
- e.lengthComputable = oe.lengthComputable;
- e.loaded = oe.loaded;
- e.total = oe.total;
- that._onProgress(e, options);
- });
- options.xhr = function () {
- return xhr;
- };
- }
- },
-
- _isInstanceOf: function (type, obj) {
- // Cross-frame instanceof check
- return Object.prototype.toString.call(obj) === '[object ' + type + ']';
- },
-
- _initXHRData: function (options) {
- var that = this,
- formData,
- file = options.files[0],
- // Ignore non-multipart setting if not supported:
- multipart = options.multipart || !$.support.xhrFileUpload,
- paramName = $.type(options.paramName) === 'array' ?
- options.paramName[0] : options.paramName;
- options.headers = $.extend({}, options.headers);
- if (options.contentRange) {
- options.headers['Content-Range'] = options.contentRange;
- }
- if (!multipart || options.blob || !this._isInstanceOf('File', file)) {
- options.headers['Content-Disposition'] = 'attachment; filename="' +
- encodeURI(file.name) + '"';
- }
- if (!multipart) {
- options.contentType = file.type || 'application/octet-stream';
- options.data = options.blob || file;
- } else if ($.support.xhrFormDataFileUpload) {
- if (options.postMessage) {
- // window.postMessage does not allow sending FormData
- // objects, so we just add the File/Blob objects to
- // the formData array and let the postMessage window
- // create the FormData object out of this array:
- formData = this._getFormData(options);
- if (options.blob) {
- formData.push({
- name: paramName,
- value: options.blob
- });
- } else {
- $.each(options.files, function (index, file) {
- formData.push({
- name: ($.type(options.paramName) === 'array' &&
- options.paramName[index]) || paramName,
- value: file
- });
- });
- }
- } else {
- if (that._isInstanceOf('FormData', options.formData)) {
- formData = options.formData;
- } else {
- formData = new FormData();
- $.each(this._getFormData(options), function (index, field) {
- formData.append(field.name, field.value);
- });
- }
- if (options.blob) {
- formData.append(paramName, options.blob, file.name);
- } else {
- $.each(options.files, function (index, file) {
- // This check allows the tests to run with
- // dummy objects:
- if (that._isInstanceOf('File', file) ||
- that._isInstanceOf('Blob', file)) {
- formData.append(
- ($.type(options.paramName) === 'array' &&
- options.paramName[index]) || paramName,
- file,
- file.uploadName || file.name
- );
- }
- });
- }
- }
- options.data = formData;
- }
- // Blob reference is not needed anymore, free memory:
- options.blob = null;
- },
-
- _initIframeSettings: function (options) {
- var targetHost = $(' ').prop('href', options.url).prop('host');
- // Setting the dataType to iframe enables the iframe transport:
- options.dataType = 'iframe ' + (options.dataType || '');
- // The iframe transport accepts a serialized array as form data:
- options.formData = this._getFormData(options);
- // Add redirect url to form data on cross-domain uploads:
- if (options.redirect && targetHost && targetHost !== location.host) {
- options.formData.push({
- name: options.redirectParamName || 'redirect',
- value: options.redirect
- });
- }
- },
-
- _initDataSettings: function (options) {
- if (this._isXHRUpload(options)) {
- if (!this._chunkedUpload(options, true)) {
- if (!options.data) {
- this._initXHRData(options);
- }
- this._initProgressListener(options);
- }
- if (options.postMessage) {
- // Setting the dataType to postmessage enables the
- // postMessage transport:
- options.dataType = 'postmessage ' + (options.dataType || '');
- }
- } else {
- this._initIframeSettings(options);
- }
- },
-
- _getParamName: function (options) {
- var fileInput = $(options.fileInput),
- paramName = options.paramName;
- if (!paramName) {
- paramName = [];
- fileInput.each(function () {
- var input = $(this),
- name = input.prop('name') || 'files[]',
- i = (input.prop('files') || [1]).length;
- while (i) {
- paramName.push(name);
- i -= 1;
- }
- });
- if (!paramName.length) {
- paramName = [fileInput.prop('name') || 'files[]'];
- }
- } else if (!$.isArray(paramName)) {
- paramName = [paramName];
- }
- return paramName;
- },
-
- _initFormSettings: function (options) {
- // Retrieve missing options from the input field and the
- // associated form, if available:
- if (!options.form || !options.form.length) {
- options.form = $(options.fileInput.prop('form'));
- // If the given file input doesn't have an associated form,
- // use the default widget file input's form:
- if (!options.form.length) {
- options.form = $(this.options.fileInput.prop('form'));
- }
- }
- options.paramName = this._getParamName(options);
- if (!options.url) {
- options.url = options.form.prop('action') || location.href;
- }
- // The HTTP request method must be "POST" or "PUT":
- options.type = (options.type ||
- ($.type(options.form.prop('method')) === 'string' &&
- options.form.prop('method')) || ''
- ).toUpperCase();
- if (options.type !== 'POST' && options.type !== 'PUT' &&
- options.type !== 'PATCH') {
- options.type = 'POST';
- }
- if (!options.formAcceptCharset) {
- options.formAcceptCharset = options.form.attr('accept-charset');
- }
- },
-
- _getAJAXSettings: function (data) {
- var options = $.extend({}, this.options, data);
- this._initFormSettings(options);
- this._initDataSettings(options);
- return options;
- },
-
- // jQuery 1.6 doesn't provide .state(),
- // while jQuery 1.8+ removed .isRejected() and .isResolved():
- _getDeferredState: function (deferred) {
- if (deferred.state) {
- return deferred.state();
- }
- if (deferred.isResolved()) {
- return 'resolved';
- }
- if (deferred.isRejected()) {
- return 'rejected';
- }
- return 'pending';
- },
-
- // Maps jqXHR callbacks to the equivalent
- // methods of the given Promise object:
- _enhancePromise: function (promise) {
- promise.success = promise.done;
- promise.error = promise.fail;
- promise.complete = promise.always;
- return promise;
- },
-
- // Creates and returns a Promise object enhanced with
- // the jqXHR methods abort, success, error and complete:
- _getXHRPromise: function (resolveOrReject, context, args) {
- var dfd = $.Deferred(),
- promise = dfd.promise();
- context = context || this.options.context || promise;
- if (resolveOrReject === true) {
- dfd.resolveWith(context, args);
- } else if (resolveOrReject === false) {
- dfd.rejectWith(context, args);
- }
- promise.abort = dfd.promise;
- return this._enhancePromise(promise);
- },
-
- // Adds convenience methods to the data callback argument:
- _addConvenienceMethods: function (e, data) {
- var that = this,
- getPromise = function (args) {
- return $.Deferred().resolveWith(that, args).promise();
- };
- data.process = function (resolveFunc, rejectFunc) {
- if (resolveFunc || rejectFunc) {
- data._processQueue = this._processQueue =
- (this._processQueue || getPromise([this])).pipe(
- function () {
- if (data.errorThrown) {
- return $.Deferred()
- .rejectWith(that, [data]).promise();
- }
- return getPromise(arguments);
- }
- ).pipe(resolveFunc, rejectFunc);
- }
- return this._processQueue || getPromise([this]);
- };
- data.submit = function () {
- if (this.state() !== 'pending') {
- data.jqXHR = this.jqXHR =
- (that._trigger(
- 'submit',
- $.Event('submit', {delegatedEvent: e}),
- this
- ) !== false) && that._onSend(e, this);
- }
- return this.jqXHR || that._getXHRPromise();
- };
- data.abort = function () {
- if (this.jqXHR) {
- return this.jqXHR.abort();
- }
- this.errorThrown = 'abort';
- that._trigger('fail', null, this);
- return that._getXHRPromise(false);
- };
- data.state = function () {
- if (this.jqXHR) {
- return that._getDeferredState(this.jqXHR);
- }
- if (this._processQueue) {
- return that._getDeferredState(this._processQueue);
- }
- };
- data.processing = function () {
- return !this.jqXHR && this._processQueue && that
- ._getDeferredState(this._processQueue) === 'pending';
- };
- data.progress = function () {
- return this._progress;
- };
- data.response = function () {
- return this._response;
- };
- },
-
- // Parses the Range header from the server response
- // and returns the uploaded bytes:
- _getUploadedBytes: function (jqXHR) {
- var range = jqXHR.getResponseHeader('Range'),
- parts = range && range.split('-'),
- upperBytesPos = parts && parts.length > 1 &&
- parseInt(parts[1], 10);
- return upperBytesPos && upperBytesPos + 1;
- },
-
- // Uploads a file in multiple, sequential requests
- // by splitting the file up in multiple blob chunks.
- // If the second parameter is true, only tests if the file
- // should be uploaded in chunks, but does not invoke any
- // upload requests:
- _chunkedUpload: function (options, testOnly) {
- options.uploadedBytes = options.uploadedBytes || 0;
- var that = this,
- file = options.files[0],
- fs = file.size,
- ub = options.uploadedBytes,
- mcs = options.maxChunkSize || fs,
- slice = this._blobSlice,
- dfd = $.Deferred(),
- promise = dfd.promise(),
- jqXHR,
- upload;
- if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) ||
- options.data) {
- return false;
- }
- if (testOnly) {
- return true;
- }
- if (ub >= fs) {
- file.error = options.i18n('uploadedBytes');
- return this._getXHRPromise(
- false,
- options.context,
- [null, 'error', file.error]
- );
- }
- // The chunk upload method:
- upload = function () {
- // Clone the options object for each chunk upload:
- var o = $.extend({}, options),
- currentLoaded = o._progress.loaded;
- o.blob = slice.call(
- file,
- ub,
- ub + mcs,
- file.type
- );
- // Store the current chunk size, as the blob itself
- // will be dereferenced after data processing:
- o.chunkSize = o.blob.size;
- // Expose the chunk bytes position range:
- o.contentRange = 'bytes ' + ub + '-' +
- (ub + o.chunkSize - 1) + '/' + fs;
- // Process the upload data (the blob and potential form data):
- that._initXHRData(o);
- // Add progress listeners for this chunk upload:
- that._initProgressListener(o);
- jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||
- that._getXHRPromise(false, o.context))
- .done(function (result, textStatus, jqXHR) {
- ub = that._getUploadedBytes(jqXHR) ||
- (ub + o.chunkSize);
- // Create a progress event if no final progress event
- // with loaded equaling total has been triggered
- // for this chunk:
- if (currentLoaded + o.chunkSize - o._progress.loaded) {
- that._onProgress($.Event('progress', {
- lengthComputable: true,
- loaded: ub - o.uploadedBytes,
- total: ub - o.uploadedBytes
- }), o);
- }
- options.uploadedBytes = o.uploadedBytes = ub;
- o.result = result;
- o.textStatus = textStatus;
- o.jqXHR = jqXHR;
- that._trigger('chunkdone', null, o);
- that._trigger('chunkalways', null, o);
- if (ub < fs) {
- // File upload not yet complete,
- // continue with the next chunk:
- upload();
- } else {
- dfd.resolveWith(
- o.context,
- [result, textStatus, jqXHR]
- );
- }
- })
- .fail(function (jqXHR, textStatus, errorThrown) {
- o.jqXHR = jqXHR;
- o.textStatus = textStatus;
- o.errorThrown = errorThrown;
- that._trigger('chunkfail', null, o);
- that._trigger('chunkalways', null, o);
- dfd.rejectWith(
- o.context,
- [jqXHR, textStatus, errorThrown]
- );
- });
- };
- this._enhancePromise(promise);
- promise.abort = function () {
- return jqXHR.abort();
- };
- upload();
- return promise;
- },
-
- _beforeSend: function (e, data) {
- if (this._active === 0) {
- // the start callback is triggered when an upload starts
- // and no other uploads are currently running,
- // equivalent to the global ajaxStart event:
- this._trigger('start');
- // Set timer for global bitrate progress calculation:
- this._bitrateTimer = new this._BitrateTimer();
- // Reset the global progress values:
- this._progress.loaded = this._progress.total = 0;
- this._progress.bitrate = 0;
- }
- // Make sure the container objects for the .response() and
- // .progress() methods on the data object are available
- // and reset to their initial state:
- this._initResponseObject(data);
- this._initProgressObject(data);
- data._progress.loaded = data.loaded = data.uploadedBytes || 0;
- data._progress.total = data.total = this._getTotal(data.files) || 1;
- data._progress.bitrate = data.bitrate = 0;
- this._active += 1;
- // Initialize the global progress values:
- this._progress.loaded += data.loaded;
- this._progress.total += data.total;
- },
-
- _onDone: function (result, textStatus, jqXHR, options) {
- var total = options._progress.total,
- response = options._response;
- if (options._progress.loaded < total) {
- // Create a progress event if no final progress event
- // with loaded equaling total has been triggered:
- this._onProgress($.Event('progress', {
- lengthComputable: true,
- loaded: total,
- total: total
- }), options);
- }
- response.result = options.result = result;
- response.textStatus = options.textStatus = textStatus;
- response.jqXHR = options.jqXHR = jqXHR;
- this._trigger('done', null, options);
- },
-
- _onFail: function (jqXHR, textStatus, errorThrown, options) {
- var response = options._response;
- if (options.recalculateProgress) {
- // Remove the failed (error or abort) file upload from
- // the global progress calculation:
- this._progress.loaded -= options._progress.loaded;
- this._progress.total -= options._progress.total;
- }
- response.jqXHR = options.jqXHR = jqXHR;
- response.textStatus = options.textStatus = textStatus;
- response.errorThrown = options.errorThrown = errorThrown;
- this._trigger('fail', null, options);
- },
-
- _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {
- // jqXHRorResult, textStatus and jqXHRorError are added to the
- // options object via done and fail callbacks
- this._trigger('always', null, options);
- },
-
- _onSend: function (e, data) {
- if (!data.submit) {
- this._addConvenienceMethods(e, data);
- }
- var that = this,
- jqXHR,
- aborted,
- slot,
- pipe,
- options = that._getAJAXSettings(data),
- send = function () {
- that._sending += 1;
- // Set timer for bitrate progress calculation:
- options._bitrateTimer = new that._BitrateTimer();
- jqXHR = jqXHR || (
- ((aborted || that._trigger(
- 'send',
- $.Event('send', {delegatedEvent: e}),
- options
- ) === false) &&
- that._getXHRPromise(false, options.context, aborted)) ||
- that._chunkedUpload(options) || $.ajax(options)
- ).done(function (result, textStatus, jqXHR) {
- that._onDone(result, textStatus, jqXHR, options);
- }).fail(function (jqXHR, textStatus, errorThrown) {
- that._onFail(jqXHR, textStatus, errorThrown, options);
- }).always(function (jqXHRorResult, textStatus, jqXHRorError) {
- that._onAlways(
- jqXHRorResult,
- textStatus,
- jqXHRorError,
- options
- );
- that._sending -= 1;
- that._active -= 1;
- if (options.limitConcurrentUploads &&
- options.limitConcurrentUploads > that._sending) {
- // Start the next queued upload,
- // that has not been aborted:
- var nextSlot = that._slots.shift();
- while (nextSlot) {
- if (that._getDeferredState(nextSlot) === 'pending') {
- nextSlot.resolve();
- break;
- }
- nextSlot = that._slots.shift();
- }
- }
- if (that._active === 0) {
- // The stop callback is triggered when all uploads have
- // been completed, equivalent to the global ajaxStop event:
- that._trigger('stop');
- }
- });
- return jqXHR;
- };
- this._beforeSend(e, options);
- if (this.options.sequentialUploads ||
- (this.options.limitConcurrentUploads &&
- this.options.limitConcurrentUploads <= this._sending)) {
- if (this.options.limitConcurrentUploads > 1) {
- slot = $.Deferred();
- this._slots.push(slot);
- pipe = slot.pipe(send);
- } else {
- this._sequence = this._sequence.pipe(send, send);
- pipe = this._sequence;
- }
- // Return the piped Promise object, enhanced with an abort method,
- // which is delegated to the jqXHR object of the current upload,
- // and jqXHR callbacks mapped to the equivalent Promise methods:
- pipe.abort = function () {
- aborted = [undefined, 'abort', 'abort'];
- if (!jqXHR) {
- if (slot) {
- slot.rejectWith(options.context, aborted);
- }
- return send();
- }
- return jqXHR.abort();
- };
- return this._enhancePromise(pipe);
- }
- return send();
- },
-
- _onAdd: function (e, data) {
- var that = this,
- result = true,
- options = $.extend({}, this.options, data),
- files = data.files,
- filesLength = files.length,
- limit = options.limitMultiFileUploads,
- limitSize = options.limitMultiFileUploadSize,
- overhead = options.limitMultiFileUploadSizeOverhead,
- batchSize = 0,
- paramName = this._getParamName(options),
- paramNameSet,
- paramNameSlice,
- fileSet,
- i,
- j = 0;
- if (!filesLength) {
- return false;
- }
- if (limitSize && files[0].size === undefined) {
- limitSize = undefined;
- }
- if (!(options.singleFileUploads || limit || limitSize) ||
- !this._isXHRUpload(options)) {
- fileSet = [files];
- paramNameSet = [paramName];
- } else if (!(options.singleFileUploads || limitSize) && limit) {
- fileSet = [];
- paramNameSet = [];
- for (i = 0; i < filesLength; i += limit) {
- fileSet.push(files.slice(i, i + limit));
- paramNameSlice = paramName.slice(i, i + limit);
- if (!paramNameSlice.length) {
- paramNameSlice = paramName;
- }
- paramNameSet.push(paramNameSlice);
- }
- } else if (!options.singleFileUploads && limitSize) {
- fileSet = [];
- paramNameSet = [];
- for (i = 0; i < filesLength; i = i + 1) {
- batchSize += files[i].size + overhead;
- if (i + 1 === filesLength ||
- ((batchSize + files[i + 1].size + overhead) > limitSize) ||
- (limit && i + 1 - j >= limit)) {
- fileSet.push(files.slice(j, i + 1));
- paramNameSlice = paramName.slice(j, i + 1);
- if (!paramNameSlice.length) {
- paramNameSlice = paramName;
- }
- paramNameSet.push(paramNameSlice);
- j = i + 1;
- batchSize = 0;
- }
- }
- } else {
- paramNameSet = paramName;
- }
- data.originalFiles = files;
- $.each(fileSet || files, function (index, element) {
- var newData = $.extend({}, data);
- newData.files = fileSet ? element : [element];
- newData.paramName = paramNameSet[index];
- that._initResponseObject(newData);
- that._initProgressObject(newData);
- that._addConvenienceMethods(e, newData);
- result = that._trigger(
- 'add',
- $.Event('add', {delegatedEvent: e}),
- newData
- );
- return result;
- });
- return result;
- },
-
- _replaceFileInput: function (data) {
- var input = data.fileInput,
- inputClone = input.clone(true),
- restoreFocus = input.is(document.activeElement);
- // Add a reference for the new cloned file input to the data argument:
- data.fileInputClone = inputClone;
- $(' ').append(inputClone)[0].reset();
- // Detaching allows to insert the fileInput on another form
- // without loosing the file input value:
- input.after(inputClone).detach();
- // If the fileInput had focus before it was detached,
- // restore focus to the inputClone.
- if (restoreFocus) {
- inputClone.focus();
- }
- // Avoid memory leaks with the detached file input:
- $.cleanData(input.unbind('remove'));
- // Replace the original file input element in the fileInput
- // elements set with the clone, which has been copied including
- // event handlers:
- this.options.fileInput = this.options.fileInput.map(function (i, el) {
- if (el === input[0]) {
- return inputClone[0];
- }
- return el;
- });
- // If the widget has been initialized on the file input itself,
- // override this.element with the file input clone:
- if (input[0] === this.element[0]) {
- this.element = inputClone;
- }
- },
-
- _handleFileTreeEntry: function (entry, path) {
- var that = this,
- dfd = $.Deferred(),
- errorHandler = function (e) {
- if (e && !e.entry) {
- e.entry = entry;
- }
- // Since $.when returns immediately if one
- // Deferred is rejected, we use resolve instead.
- // This allows valid files and invalid items
- // to be returned together in one set:
- dfd.resolve([e]);
- },
- successHandler = function (entries) {
- that._handleFileTreeEntries(
- entries,
- path + entry.name + '/'
- ).done(function (files) {
- dfd.resolve(files);
- }).fail(errorHandler);
- },
- readEntries = function () {
- dirReader.readEntries(function (results) {
- if (!results.length) {
- successHandler(entries);
- } else {
- entries = entries.concat(results);
- readEntries();
- }
- }, errorHandler);
- },
- dirReader, entries = [];
- path = path || '';
- if (entry.isFile) {
- if (entry._file) {
- // Workaround for Chrome bug #149735
- entry._file.relativePath = path;
- dfd.resolve(entry._file);
- } else {
- entry.file(function (file) {
- file.relativePath = path;
- dfd.resolve(file);
- }, errorHandler);
- }
- } else if (entry.isDirectory) {
- dirReader = entry.createReader();
- readEntries();
- } else {
- // Return an empy list for file system items
- // other than files or directories:
- dfd.resolve([]);
- }
- return dfd.promise();
- },
-
- _handleFileTreeEntries: function (entries, path) {
- var that = this;
- return $.when.apply(
- $,
- $.map(entries, function (entry) {
- return that._handleFileTreeEntry(entry, path);
- })
- ).pipe(function () {
- return Array.prototype.concat.apply(
- [],
- arguments
- );
- });
- },
-
- _getDroppedFiles: function (dataTransfer) {
- dataTransfer = dataTransfer || {};
- var items = dataTransfer.items;
- if (items && items.length && (items[0].webkitGetAsEntry ||
- items[0].getAsEntry)) {
- return this._handleFileTreeEntries(
- $.map(items, function (item) {
- var entry;
- if (item.webkitGetAsEntry) {
- entry = item.webkitGetAsEntry();
- if (entry) {
- // Workaround for Chrome bug #149735:
- entry._file = item.getAsFile();
- }
- return entry;
- }
- return item.getAsEntry();
- })
- );
- }
- return $.Deferred().resolve(
- $.makeArray(dataTransfer.files)
- ).promise();
- },
-
- _getSingleFileInputFiles: function (fileInput) {
- fileInput = $(fileInput);
- var entries = fileInput.prop('webkitEntries') ||
- fileInput.prop('entries'),
- files,
- value;
- if (entries && entries.length) {
- return this._handleFileTreeEntries(entries);
- }
- files = $.makeArray(fileInput.prop('files'));
- if (!files.length) {
- value = fileInput.prop('value');
- if (!value) {
- return $.Deferred().resolve([]).promise();
- }
- // If the files property is not available, the browser does not
- // support the File API and we add a pseudo File object with
- // the input value as name with path information removed:
- files = [{name: value.replace(/^.*\\/, '')}];
- } else if (files[0].name === undefined && files[0].fileName) {
- // File normalization for Safari 4 and Firefox 3:
- $.each(files, function (index, file) {
- file.name = file.fileName;
- file.size = file.fileSize;
- });
- }
- return $.Deferred().resolve(files).promise();
- },
-
- _getFileInputFiles: function (fileInput) {
- if (!(fileInput instanceof $) || fileInput.length === 1) {
- return this._getSingleFileInputFiles(fileInput);
- }
- return $.when.apply(
- $,
- $.map(fileInput, this._getSingleFileInputFiles)
- ).pipe(function () {
- return Array.prototype.concat.apply(
- [],
- arguments
- );
- });
- },
-
- _onChange: function (e) {
- var that = this,
- data = {
- fileInput: $(e.target),
- form: $(e.target.form)
- };
- this._getFileInputFiles(data.fileInput).always(function (files) {
- data.files = files;
- if (that.options.replaceFileInput) {
- that._replaceFileInput(data);
- }
- if (that._trigger(
- 'change',
- $.Event('change', {delegatedEvent: e}),
- data
- ) !== false) {
- that._onAdd(e, data);
- }
- });
- },
-
- _onPaste: function (e) {
- var items = e.originalEvent && e.originalEvent.clipboardData &&
- e.originalEvent.clipboardData.items,
- data = {files: []};
- if (items && items.length) {
- $.each(items, function (index, item) {
- var file = item.getAsFile && item.getAsFile();
- if (file) {
- data.files.push(file);
- }
- });
- if (this._trigger(
- 'paste',
- $.Event('paste', {delegatedEvent: e}),
- data
- ) !== false) {
- this._onAdd(e, data);
- }
- }
- },
-
- _onDrop: function (e) {
- e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;
- var that = this,
- dataTransfer = e.dataTransfer,
- data = {};
- if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
- e.preventDefault();
- this._getDroppedFiles(dataTransfer).always(function (files) {
- data.files = files;
- if (that._trigger(
- 'drop',
- $.Event('drop', {delegatedEvent: e}),
- data
- ) !== false) {
- that._onAdd(e, data);
- }
- });
- }
- },
-
- _onDragOver: getDragHandler('dragover'),
-
- _onDragEnter: getDragHandler('dragenter'),
-
- _onDragLeave: getDragHandler('dragleave'),
-
- _initEventHandlers: function () {
- if (this._isXHRUpload(this.options)) {
- this._on(this.options.dropZone, {
- dragover: this._onDragOver,
- drop: this._onDrop,
- // event.preventDefault() on dragenter is required for IE10+:
- dragenter: this._onDragEnter,
- // dragleave is not required, but added for completeness:
- dragleave: this._onDragLeave
- });
- this._on(this.options.pasteZone, {
- paste: this._onPaste
- });
- }
- if ($.support.fileInput) {
- this._on(this.options.fileInput, {
- change: this._onChange
- });
- }
- },
-
- _destroyEventHandlers: function () {
- this._off(this.options.dropZone, 'dragenter dragleave dragover drop');
- this._off(this.options.pasteZone, 'paste');
- this._off(this.options.fileInput, 'change');
- },
-
- _setOption: function (key, value) {
- var reinit = $.inArray(key, this._specialOptions) !== -1;
- if (reinit) {
- this._destroyEventHandlers();
- }
- this._super(key, value);
- if (reinit) {
- this._initSpecialOptions();
- this._initEventHandlers();
- }
- },
-
- _initSpecialOptions: function () {
- var options = this.options;
- if (options.fileInput === undefined) {
- options.fileInput = this.element.is('input[type="file"]') ?
- this.element : this.element.find('input[type="file"]');
- } else if (!(options.fileInput instanceof $)) {
- options.fileInput = $(options.fileInput);
- }
- if (!(options.dropZone instanceof $)) {
- options.dropZone = $(options.dropZone);
- }
- if (!(options.pasteZone instanceof $)) {
- options.pasteZone = $(options.pasteZone);
- }
- },
-
- _getRegExp: function (str) {
- var parts = str.split('/'),
- modifiers = parts.pop();
- parts.shift();
- return new RegExp(parts.join('/'), modifiers);
- },
-
- _isRegExpOption: function (key, value) {
- return key !== 'url' && $.type(value) === 'string' &&
- /^\/.*\/[igm]{0,3}$/.test(value);
- },
-
- _initDataAttributes: function () {
- var that = this,
- options = this.options,
- data = this.element.data();
- // Initialize options set via HTML5 data-attributes:
- $.each(
- this.element[0].attributes,
- function (index, attr) {
- var key = attr.name.toLowerCase(),
- value;
- if (/^data-/.test(key)) {
- // Convert hyphen-ated key to camelCase:
- key = key.slice(5).replace(/-[a-z]/g, function (str) {
- return str.charAt(1).toUpperCase();
- });
- value = data[key];
- if (that._isRegExpOption(key, value)) {
- value = that._getRegExp(value);
- }
- options[key] = value;
- }
- }
- );
- },
-
- _create: function () {
- this._initDataAttributes();
- this._initSpecialOptions();
- this._slots = [];
- this._sequence = this._getXHRPromise(true);
- this._sending = this._active = 0;
- this._initProgressObject(this);
- this._initEventHandlers();
- },
-
- // This method is exposed to the widget API and allows to query
- // the number of active uploads:
- active: function () {
- return this._active;
- },
-
- // This method is exposed to the widget API and allows to query
- // the widget upload progress.
- // It returns an object with loaded, total and bitrate properties
- // for the running uploads:
- progress: function () {
- return this._progress;
- },
-
- // This method is exposed to the widget API and allows adding files
- // using the fileupload API. The data parameter accepts an object which
- // must have a files property and can contain additional options:
- // .fileupload('add', {files: filesList});
- add: function (data) {
- var that = this;
- if (!data || this.options.disabled) {
- return;
- }
- if (data.fileInput && !data.files) {
- this._getFileInputFiles(data.fileInput).always(function (files) {
- data.files = files;
- that._onAdd(null, data);
- });
- } else {
- data.files = $.makeArray(data.files);
- this._onAdd(null, data);
- }
- },
-
- // This method is exposed to the widget API and allows sending files
- // using the fileupload API. The data parameter accepts an object which
- // must have a files or fileInput property and can contain additional options:
- // .fileupload('send', {files: filesList});
- // The method returns a Promise object for the file upload call.
- send: function (data) {
- if (data && !this.options.disabled) {
- if (data.fileInput && !data.files) {
- var that = this,
- dfd = $.Deferred(),
- promise = dfd.promise(),
- jqXHR,
- aborted;
- promise.abort = function () {
- aborted = true;
- if (jqXHR) {
- return jqXHR.abort();
- }
- dfd.reject(null, 'abort', 'abort');
- return promise;
- };
- this._getFileInputFiles(data.fileInput).always(
- function (files) {
- if (aborted) {
- return;
- }
- if (!files.length) {
- dfd.reject();
- return;
- }
- data.files = files;
- jqXHR = that._onSend(null, data);
- jqXHR.then(
- function (result, textStatus, jqXHR) {
- dfd.resolve(result, textStatus, jqXHR);
- },
- function (jqXHR, textStatus, errorThrown) {
- dfd.reject(jqXHR, textStatus, errorThrown);
- }
- );
- }
- );
- return this._enhancePromise(promise);
- }
- data.files = $.makeArray(data.files);
- if (data.files.length) {
- return this._onSend(null, data);
- }
- }
- return this._getXHRPromise(false, data && data.context);
- }
-
- });
-
-}));
diff --git a/milfs/plugins/upload/js/jquery.iframe-transport.js b/milfs/plugins/upload/js/jquery.iframe-transport.js
deleted file mode 100644
index a7d34e0..0000000
--- a/milfs/plugins/upload/js/jquery.iframe-transport.js
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * jQuery Iframe Transport Plugin
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2011, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* global define, require, window, document */
-
-(function (factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // Register as an anonymous AMD module:
- define(['jquery'], factory);
- } else if (typeof exports === 'object') {
- // Node/CommonJS:
- factory(require('jquery'));
- } else {
- // Browser globals:
- factory(window.jQuery);
- }
-}(function ($) {
- 'use strict';
-
- // Helper variable to create unique names for the transport iframes:
- var counter = 0;
-
- // The iframe transport accepts four additional options:
- // options.fileInput: a jQuery collection of file input fields
- // options.paramName: the parameter name for the file form data,
- // overrides the name property of the file input field(s),
- // can be a string or an array of strings.
- // options.formData: an array of objects with name and value properties,
- // equivalent to the return data of .serializeArray(), e.g.:
- // [{name: 'a', value: 1}, {name: 'b', value: 2}]
- // options.initialIframeSrc: the URL of the initial iframe src,
- // by default set to "javascript:false;"
- $.ajaxTransport('iframe', function (options) {
- if (options.async) {
- // javascript:false as initial iframe src
- // prevents warning popups on HTTPS in IE6:
- /*jshint scripturl: true */
- var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',
- /*jshint scripturl: false */
- form,
- iframe,
- addParamChar;
- return {
- send: function (_, completeCallback) {
- form = $(' ');
- form.attr('accept-charset', options.formAcceptCharset);
- addParamChar = /\?/.test(options.url) ? '&' : '?';
- // XDomainRequest only supports GET and POST:
- if (options.type === 'DELETE') {
- options.url = options.url + addParamChar + '_method=DELETE';
- options.type = 'POST';
- } else if (options.type === 'PUT') {
- options.url = options.url + addParamChar + '_method=PUT';
- options.type = 'POST';
- } else if (options.type === 'PATCH') {
- options.url = options.url + addParamChar + '_method=PATCH';
- options.type = 'POST';
- }
- // IE versions below IE8 cannot set the name property of
- // elements that have already been added to the DOM,
- // so we set the name along with the iframe HTML markup:
- counter += 1;
- iframe = $(
- ''
- ).bind('load', function () {
- var fileInputClones,
- paramNames = $.isArray(options.paramName) ?
- options.paramName : [options.paramName];
- iframe
- .unbind('load')
- .bind('load', function () {
- var response;
- // Wrap in a try/catch block to catch exceptions thrown
- // when trying to access cross-domain iframe contents:
- try {
- response = iframe.contents();
- // Google Chrome and Firefox do not throw an
- // exception when calling iframe.contents() on
- // cross-domain requests, so we unify the response:
- if (!response.length || !response[0].firstChild) {
- throw new Error();
- }
- } catch (e) {
- response = undefined;
- }
- // The complete callback returns the
- // iframe content document as response object:
- completeCallback(
- 200,
- 'success',
- {'iframe': response}
- );
- // Fix for IE endless progress bar activity bug
- // (happens on form submits to iframe targets):
- $('')
- .appendTo(form);
- window.setTimeout(function () {
- // Removing the form in a setTimeout call
- // allows Chrome's developer tools to display
- // the response result
- form.remove();
- }, 0);
- });
- form
- .prop('target', iframe.prop('name'))
- .prop('action', options.url)
- .prop('method', options.type);
- if (options.formData) {
- $.each(options.formData, function (index, field) {
- $(' ')
- .prop('name', field.name)
- .val(field.value)
- .appendTo(form);
- });
- }
- if (options.fileInput && options.fileInput.length &&
- options.type === 'POST') {
- fileInputClones = options.fileInput.clone();
- // Insert a clone for each file input field:
- options.fileInput.after(function (index) {
- return fileInputClones[index];
- });
- if (options.paramName) {
- options.fileInput.each(function (index) {
- $(this).prop(
- 'name',
- paramNames[index] || options.paramName
- );
- });
- }
- // Appending the file input fields to the hidden form
- // removes them from their original location:
- form
- .append(options.fileInput)
- .prop('enctype', 'multipart/form-data')
- // enctype must be set as encoding for IE:
- .prop('encoding', 'multipart/form-data');
- // Remove the HTML5 form attribute from the input(s):
- options.fileInput.removeAttr('form');
- }
- form.submit();
- // Insert the file input fields at their original location
- // by replacing the clones with the originals:
- if (fileInputClones && fileInputClones.length) {
- options.fileInput.each(function (index, input) {
- var clone = $(fileInputClones[index]);
- // Restore the original name and form properties:
- $(input)
- .prop('name', clone.prop('name'))
- .attr('form', clone.attr('form'));
- clone.replaceWith(input);
- });
- }
- });
- form.append(iframe).appendTo(document.body);
- },
- abort: function () {
- if (iframe) {
- // javascript:false as iframe src aborts the request
- // and prevents warning popups on HTTPS in IE6.
- // concat is used to avoid the "Script URL" JSLint error:
- iframe
- .unbind('load')
- .prop('src', initialIframeSrc);
- }
- if (form) {
- form.remove();
- }
- }
- };
- }
- });
-
- // The iframe transport returns the iframe content document as response.
- // The following adds converters from iframe to text, json, html, xml
- // and script.
- // Please note that the Content-Type for JSON responses has to be text/plain
- // or text/html, if the browser doesn't include application/json in the
- // Accept header, else IE will show a download dialog.
- // The Content-Type for XML responses on the other hand has to be always
- // application/xml or text/xml, so IE properly parses the XML response.
- // See also
- // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation
- $.ajaxSetup({
- converters: {
- 'iframe text': function (iframe) {
- return iframe && $(iframe[0].body).text();
- },
- 'iframe json': function (iframe) {
- return iframe && $.parseJSON($(iframe[0].body).text());
- },
- 'iframe html': function (iframe) {
- return iframe && $(iframe[0].body).html();
- },
- 'iframe xml': function (iframe) {
- var xmlDoc = iframe && iframe[0];
- return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :
- $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||
- $(xmlDoc.body).html());
- },
- 'iframe script': function (iframe) {
- return iframe && $.globalEval($(iframe[0].body).text());
- }
- }
- });
-
-}));
diff --git a/milfs/plugins/upload/js/load-image.all.min.js b/milfs/plugins/upload/js/load-image.all.min.js
deleted file mode 100644
index 2ec3313..0000000
--- a/milfs/plugins/upload/js/load-image.all.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(e){"use strict";var t=function(e,i,a){var o,r,n=document.createElement("img");if(n.onerror=i,n.onload=function(){!r||a&&a.noRevoke||t.revokeObjectURL(r),i&&i(t.scale(n,a))},t.isInstanceOf("Blob",e)||t.isInstanceOf("File",e))o=r=t.createObjectURL(e),n._type=e.type;else{if("string"!=typeof e)return!1;o=e,a&&a.crossOrigin&&(n.crossOrigin=a.crossOrigin)}return o?(n.src=o,n):t.readFile(e,function(e){var t=e.target;t&&t.result?n.src=t.result:i&&i(e)})},i=window.createObjectURL&&window||window.URL&&URL.revokeObjectURL&&URL||window.webkitURL&&webkitURL;t.isInstanceOf=function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"},t.transformCoordinates=function(){},t.getTransformedOptions=function(e,t){var i,a,o,r,n=t.aspectRatio;if(!n)return t;i={};for(a in t)t.hasOwnProperty(a)&&(i[a]=t[a]);return i.crop=!0,o=e.naturalWidth||e.width,r=e.naturalHeight||e.height,o/r>n?(i.maxWidth=r*n,i.maxHeight=r):(i.maxWidth=o,i.maxHeight=o/n),i},t.renderImageToCanvas=function(e,t,i,a,o,r,n,s,l,d){return e.getContext("2d").drawImage(t,i,a,o,r,n,s,l,d),e},t.hasCanvasOption=function(e){return e.canvas||e.crop||!!e.aspectRatio},t.scale=function(e,i){function a(){var e=Math.max((s||y)/y,(l||v)/v);e>1&&(y*=e,v*=e)}function o(){var e=Math.min((r||y)/y,(n||v)/v);1>e&&(y*=e,v*=e)}i=i||{};var r,n,s,l,d,u,c,g,f,h,m,p=document.createElement("canvas"),S=e.getContext||t.hasCanvasOption(i)&&p.getContext,b=e.naturalWidth||e.width,x=e.naturalHeight||e.height,y=b,v=x;if(S&&(i=t.getTransformedOptions(e,i),c=i.left||0,g=i.top||0,i.sourceWidth?(d=i.sourceWidth,void 0!==i.right&&void 0===i.left&&(c=b-d-i.right)):d=b-c-(i.right||0),i.sourceHeight?(u=i.sourceHeight,void 0!==i.bottom&&void 0===i.top&&(g=x-u-i.bottom)):u=x-g-(i.bottom||0),y=d,v=u),r=i.maxWidth,n=i.maxHeight,s=i.minWidth,l=i.minHeight,S&&r&&n&&i.crop?(y=r,v=n,m=d/u-r/n,0>m?(u=n*d/r,void 0===i.top&&void 0===i.bottom&&(g=(x-u)/2)):m>0&&(d=r*u/n,void 0===i.left&&void 0===i.right&&(c=(b-d)/2))):((i.contain||i.cover)&&(s=r=r||s,l=n=n||l),i.cover?(o(),a()):(a(),o())),S){if(f=i.pixelRatio,f>1&&(p.style.width=y+"px",p.style.height=v+"px",y*=f,v*=f,p.getContext("2d").scale(f,f)),h=i.downsamplingRatio,h>0&&1>h&&d>y&&u>v)for(;d*h>y;)p.width=d*h,p.height=u*h,t.renderImageToCanvas(p,e,c,g,d,u,0,0,p.width,p.height),d=p.width,u=p.height,e=document.createElement("canvas"),e.width=d,e.height=u,t.renderImageToCanvas(e,p,0,0,d,u,0,0,d,u);return p.width=y,p.height=v,t.transformCoordinates(p,i),t.renderImageToCanvas(p,e,c,g,d,u,0,0,y,v)}return e.width=y,e.height=v,e},t.createObjectURL=function(e){return i?i.createObjectURL(e):!1},t.revokeObjectURL=function(e){return i?i.revokeObjectURL(e):!1},t.readFile=function(e,t,i){if(window.FileReader){var a=new FileReader;if(a.onload=a.onerror=t,i=i||"readAsDataURL",a[i])return a[i](e),a}return!1},"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:e.loadImage=t}(window),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):e("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(e){"use strict";var t=e.hasCanvasOption,i=e.transformCoordinates,a=e.getTransformedOptions;e.hasCanvasOption=function(i){return!!i.orientation||t.call(e,i)},e.transformCoordinates=function(t,a){i.call(e,t,a);var o=t.getContext("2d"),r=t.width,n=t.height,s=t.style.width,l=t.style.height,d=a.orientation;if(d&&!(d>8))switch(d>4&&(t.width=n,t.height=r,t.style.width=l,t.style.height=s),d){case 2:o.translate(r,0),o.scale(-1,1);break;case 3:o.translate(r,n),o.rotate(Math.PI);break;case 4:o.translate(0,n),o.scale(1,-1);break;case 5:o.rotate(.5*Math.PI),o.scale(1,-1);break;case 6:o.rotate(.5*Math.PI),o.translate(0,-n);break;case 7:o.rotate(.5*Math.PI),o.translate(r,-n),o.scale(-1,1);break;case 8:o.rotate(-.5*Math.PI),o.translate(-r,0)}},e.getTransformedOptions=function(t,i){var o,r,n=a.call(e,t,i),s=n.orientation;if(!s||s>8||1===s)return n;o={};for(r in n)n.hasOwnProperty(r)&&(o[r]=n[r]);switch(n.orientation){case 2:o.left=n.right,o.right=n.left;break;case 3:o.left=n.right,o.top=n.bottom,o.right=n.left,o.bottom=n.top;break;case 4:o.top=n.bottom,o.bottom=n.top;break;case 5:o.left=n.top,o.top=n.left,o.right=n.bottom,o.bottom=n.right;break;case 6:o.left=n.top,o.top=n.right,o.right=n.bottom,o.bottom=n.left;break;case 7:o.left=n.bottom,o.top=n.right,o.right=n.top,o.bottom=n.left;break;case 8:o.left=n.bottom,o.top=n.left,o.right=n.top,o.bottom=n.right}return n.orientation>4&&(o.maxWidth=n.maxHeight,o.maxHeight=n.maxWidth,o.minWidth=n.minHeight,o.minHeight=n.minWidth,o.sourceWidth=n.sourceHeight,o.sourceHeight=n.sourceWidth),o}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):e("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(e){"use strict";var t=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);e.blobSlice=t&&function(){var e=this.slice||this.webkitSlice||this.mozSlice;return e.apply(this,arguments)},e.metaDataParsers={jpeg:{65505:[]}},e.parseMetaData=function(t,i,a){a=a||{};var o=this,r=a.maxMetaDataSize||262144,n={},s=!(window.DataView&&t&&t.size>=12&&"image/jpeg"===t.type&&e.blobSlice);(s||!e.readFile(e.blobSlice.call(t,0,r),function(t){if(t.target.error)return console.log(t.target.error),void i(n);var r,s,l,d,u=t.target.result,c=new DataView(u),g=2,f=c.byteLength-4,h=g;if(65496===c.getUint16(0)){for(;f>g&&(r=c.getUint16(g),r>=65504&&65519>=r||65534===r);){if(s=c.getUint16(g+2)+2,g+s>c.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(l=e.metaDataParsers.jpeg[r])for(d=0;d6&&(u.slice?n.imageHead=u.slice(0,h):n.imageHead=new Uint8Array(u).subarray(0,h))}else console.log("Invalid JPEG file: Missing JPEG marker.");i(n)},"readAsArrayBuffer"))&&i(n)}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-meta"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-meta")):e(window.loadImage)}(function(e){"use strict";e.ExifMap=function(){return this},e.ExifMap.prototype.map={Orientation:274},e.ExifMap.prototype.get=function(e){return this[e]||this[this.map[e]]},e.getExifThumbnail=function(e,t,i){var a,o,r;if(!i||t+i>e.byteLength)return void console.log("Invalid Exif data: Invalid thumbnail data.");for(a=[],o=0;i>o;o+=1)r=e.getUint8(t+o),a.push((16>r?"0":"")+r.toString(16));return"data:image/jpeg,%"+a.join("%")},e.exifTagTypes={1:{getValue:function(e,t){return e.getUint8(t)},size:1},2:{getValue:function(e,t){return String.fromCharCode(e.getUint8(t))},size:1,ascii:!0},3:{getValue:function(e,t,i){return e.getUint16(t,i)},size:2},4:{getValue:function(e,t,i){return e.getUint32(t,i)},size:4},5:{getValue:function(e,t,i){return e.getUint32(t,i)/e.getUint32(t+4,i)},size:8},9:{getValue:function(e,t,i){return e.getInt32(t,i)},size:4},10:{getValue:function(e,t,i){return e.getInt32(t,i)/e.getInt32(t+4,i)},size:8}},e.exifTagTypes[7]=e.exifTagTypes[1],e.getExifValue=function(t,i,a,o,r,n){var s,l,d,u,c,g,f=e.exifTagTypes[o];if(!f)return void console.log("Invalid Exif data: Invalid tag type.");if(s=f.size*r,l=s>4?i+t.getUint32(a+8,n):a+8,l+s>t.byteLength)return void console.log("Invalid Exif data: Invalid data offset.");if(1===r)return f.getValue(t,l,n);for(d=[],u=0;r>u;u+=1)d[u]=f.getValue(t,l+u*f.size,n);if(f.ascii){for(c="",u=0;ue.byteLength)return void console.log("Invalid Exif data: Invalid directory offset.");if(r=e.getUint16(i,a),n=i+2+12*r,n+4>e.byteLength)return void console.log("Invalid Exif data: Invalid directory size.");for(s=0;r>s;s+=1)this.parseExifTag(e,t,i+2+12*s,a,o);return e.getUint32(n,a)},e.parseExifData=function(t,i,a,o,r){if(!r.disableExif){var n,s,l,d=i+10;if(1165519206===t.getUint32(i+4)){if(d+8>t.byteLength)return void console.log("Invalid Exif data: Invalid segment size.");if(0!==t.getUint16(i+8))return void console.log("Invalid Exif data: Missing byte alignment offset.");switch(t.getUint16(d)){case 18761:n=!0;break;case 19789:n=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==t.getUint16(d+2,n))return void console.log("Invalid Exif data: Missing TIFF marker.");s=t.getUint32(d+4,n),o.exif=new e.ExifMap,s=e.parseExifTags(t,d,d+s,n,o),s&&!r.disableExifThumbnail&&(l={exif:{}},s=e.parseExifTags(t,d,d+s,n,l),l.exif[513]&&(o.exif.Thumbnail=e.getExifThumbnail(t,d+l.exif[513],l.exif[514]))),o.exif[34665]&&!r.disableExifSub&&e.parseExifTags(t,d,d+o.exif[34665],n,o),o.exif[34853]&&!r.disableExifGps&&e.parseExifTags(t,d,d+o.exif[34853],n,o)}}},e.metaDataParsers.jpeg[65505].push(e.parseExifData)}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-exif"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-exif")):e(window.loadImage)}(function(e){"use strict";e.ExifMap.prototype.tags={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},e.ExifMap.prototype.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}},e.ExifMap.prototype.getText=function(e){var t=this.get(e);switch(e){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[e][t];case"ExifVersion":case"FlashpixVersion":return String.fromCharCode(t[0],t[1],t[2],t[3]);case"ComponentsConfiguration":return this.stringValues[e][t[0]]+this.stringValues[e][t[1]]+this.stringValues[e][t[2]]+this.stringValues[e][t[3]];case"GPSVersionID":return t[0]+"."+t[1]+"."+t[2]+"."+t[3]}return String(t)},function(e){var t,i=e.tags,a=e.map;for(t in i)i.hasOwnProperty(t)&&(a[i[t]]=t)}(e.ExifMap.prototype),e.ExifMap.prototype.getAll=function(){var e,t,i={};for(e in this)this.hasOwnProperty(e)&&(t=this.tags[e],t&&(i[t]=this.getText(t)));return i}});
-//# sourceMappingURL=load-image.all.min.js.map
\ No newline at end of file
diff --git a/milfs/plugins/upload/js/load-image.all.min.js.map b/milfs/plugins/upload/js/load-image.all.min.js.map
deleted file mode 100644
index 0bbb4e8..0000000
--- a/milfs/plugins/upload/js/load-image.all.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["load-image.js","load-image-orientation.js","load-image-meta.js","load-image-exif.js","load-image-exif-map.js"],"names":["$","loadImage","file","callback","options","url","oUrl","img","document","createElement","onerror","onload","noRevoke","revokeObjectURL","scale","isInstanceOf","createObjectURL","_type","type","crossOrigin","src","readFile","e","target","result","urlAPI","window","URL","webkitURL","obj","Object","prototype","toString","call","transformCoordinates","getTransformedOptions","newOptions","i","width","height","aspectRatio","hasOwnProperty","crop","naturalWidth","naturalHeight","maxWidth","maxHeight","renderImageToCanvas","canvas","sourceX","sourceY","sourceWidth","sourceHeight","destX","destY","destWidth","destHeight","getContext","drawImage","hasCanvasOption","scaleUp","Math","max","minWidth","minHeight","scaleDown","min","pixelRatio","downsamplingRatio","tmp","useCanvas","left","top","undefined","right","bottom","contain","cover","style","method","FileReader","fileReader","define","amd","module","exports","factory","require","originalHasCanvasOption","originalTransformCoordinates","originalGetTransformedOptions","orientation","ctx","styleWidth","styleHeight","translate","rotate","PI","opts","hasblobSlice","Blob","slice","webkitSlice","mozSlice","blobSlice","this","apply","arguments","metaDataParsers","jpeg",65505,"parseMetaData","that","maxMetaDataSize","data","noMetaData","DataView","size","error","console","log","markerBytes","markerLength","parsers","buffer","dataView","offset","maxOffset","byteLength","headLength","getUint16","length","disableImageHead","imageHead","Uint8Array","subarray","ExifMap","map","Orientation","get","id","getExifThumbnail","hexData","b","getUint8","push","join","exifTagTypes",1,"getValue","dataOffset",2,"String","fromCharCode","ascii",3,"littleEndian",4,"getUint32",5,9,"getInt32",10,"getExifValue","tiffOffset","tagSize","values","str","c","tagType","parseExifTag","tag","exif","parseExifTags","dirOffset","tagsNumber","dirEndOffset","parseExifData","disableExif","thumbnailData","disableExifThumbnail","Thumbnail","disableExifSub","disableExifGps","tags",256,257,34665,34853,40965,258,259,262,274,277,284,530,531,282,283,296,273,278,279,513,514,301,318,319,529,532,306,270,271,272,305,315,33432,36864,40960,40961,40962,40963,42240,37121,37122,37500,37510,40964,36867,36868,37520,37521,37522,33434,33437,34850,34852,34855,34856,34864,34865,34866,34867,34868,34869,37377,37378,37379,37380,37381,37382,37383,37384,37385,37396,37386,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,42032,42033,42034,42035,42036,42037,0,6,7,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,"stringValues","ExposureProgram","MeteringMode",255,"LightSource","Flash",32,65,69,71,73,77,79,89,93,95,"SensingMethod","SceneCaptureType","SceneType","CustomRendered","WhiteBalance","GainControl","Contrast","Saturation","Sharpness","SubjectDistanceRange","FileSource","ComponentsConfiguration","getText","value","exifMapPrototype","prop","getAll"],"mappings":"CAaE,SAAUA,GACV,YAKA,IAAIC,GAAY,SAAUC,EAAMC,EAAUC,GACxC,GACIC,GACAC,EAFAC,EAAMC,SAASC,cAAc,MAYjC,IATAF,EAAIG,QAAUP,EACdI,EAAII,OAAS,YACPL,GAAUF,GAAWA,EAAQQ,UAC/BX,EAAUY,gBAAgBP,GAExBH,GACFA,EAASF,EAAUa,MAAMP,EAAKH,KAG9BH,EAAUc,aAAa,OAAQb,IAGjCD,EAAUc,aAAa,OAAQb,GAC/BG,EAAMC,EAAOL,EAAUe,gBAAgBd,GAEvCK,EAAIU,MAAQf,EAAKgB,SACZ,CAAA,GAAoB,gBAAThB,GAMhB,OAAO,CALPG,GAAMH,EACFE,GAAWA,EAAQe,cACrBZ,EAAIY,YAAcf,EAAQe,aAK9B,MAAId,IACFE,EAAIa,IAAMf,EACHE,GAEFN,EAAUoB,SAASnB,EAAM,SAAUoB,GACxC,GAAIC,GAASD,EAAEC,MACXA,IAAUA,EAAOC,OACnBjB,EAAIa,IAAMG,EAAOC,OAEbrB,GACFA,EAASmB,MAObG,EAAUC,OAAOV,iBAAmBU,QACzBA,OAAOC,KAAOA,IAAId,iBAAmBc,KACrCD,OAAOE,WAAaA,SAEnC3B,GAAUc,aAAe,SAAUG,EAAMW,GAEvC,MAAOC,QAAOC,UAAUC,SAASC,KAAKJ,KAAS,WAAaX,EAAO,KAMrEjB,EAAUiC,qBAAuB,aAOjCjC,EAAUkC,sBAAwB,SAAU5B,EAAKH,GAC/C,GACIgC,GACAC,EACAC,EACAC,EAJAC,EAAcpC,EAAQoC,WAK1B,KAAKA,EACH,MAAOpC,EAETgC,KACA,KAAKC,IAAKjC,GACJA,EAAQqC,eAAeJ,KACzBD,EAAWC,GAAKjC,EAAQiC,GAa5B,OAVAD,GAAWM,MAAO,EAClBJ,EAAQ/B,EAAIoC,cAAgBpC,EAAI+B,MAChCC,EAAShC,EAAIqC,eAAiBrC,EAAIgC,OAC9BD,EAAQC,EAASC,GACnBJ,EAAWS,SAAWN,EAASC,EAC/BJ,EAAWU,UAAYP,IAEvBH,EAAWS,SAAWP,EACtBF,EAAWU,UAAYR,EAAQE,GAE1BJ,GAITnC,EAAU8C,oBAAsB,SAC9BC,EACAzC,EACA0C,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAaA,MAXAR,GAAOS,WAAW,MAAMC,UACtBnD,EACA0C,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEKR,GAKT/C,EAAU0D,gBAAkB,SAAUvD,GACpC,MAAOA,GAAQ4C,QAAU5C,EAAQsC,QAAUtC,EAAQoC,aAQrDvC,EAAUa,MAAQ,SAAUP,EAAKH,GAoB/B,QAASwD,KACP,GAAI9C,GAAQ+C,KAAKC,KACdC,GAAYR,GAAaA,GACzBS,GAAaR,GAAcA,EAE1B1C,GAAQ,IACVyC,GAAazC,EACb0C,GAAc1C,GAGlB,QAASmD,KACP,GAAInD,GAAQ+C,KAAKK,KACdrB,GAAYU,GAAaA,GACzBT,GAAaU,GAAcA,EAElB,GAAR1C,IACFyC,GAAazC,EACb0C,GAAc1C,GApClBV,EAAUA,KACV,IAOIyC,GACAC,EACAiB,EACAC,EACAb,EACAC,EACAH,EACAC,EACAiB,EACAC,EACAC,EAjBArB,EAASxC,SAASC,cAAc,UAChC6D,EAAY/D,EAAIkD,YACHxD,EAAU0D,gBAAgBvD,IAAY4C,EAAOS,WAC1DnB,EAAQ/B,EAAIoC,cAAgBpC,EAAI+B,MAChCC,EAAShC,EAAIqC,eAAiBrC,EAAIgC,OAClCgB,EAAYjB,EACZkB,EAAajB,CAuFjB,IAvDI+B,IACFlE,EAAUH,EAAUkC,sBAAsB5B,EAAKH,GAC/C6C,EAAU7C,EAAQmE,MAAQ,EAC1BrB,EAAU9C,EAAQoE,KAAO,EACrBpE,EAAQ+C,aACVA,EAAc/C,EAAQ+C,YACAsB,SAAlBrE,EAAQsE,OAAwCD,SAAjBrE,EAAQmE,OACzCtB,EAAUX,EAAQa,EAAc/C,EAAQsE,QAG1CvB,EAAcb,EAAQW,GAAW7C,EAAQsE,OAAS,GAEhDtE,EAAQgD,cACVA,EAAehD,EAAQgD,aACAqB,SAAnBrE,EAAQuE,QAAwCF,SAAhBrE,EAAQoE,MAC1CtB,EAAUX,EAASa,EAAehD,EAAQuE,SAG5CvB,EAAeb,EAASW,GAAW9C,EAAQuE,QAAU,GAEvDpB,EAAYJ,EACZK,EAAaJ,GAEfP,EAAWzC,EAAQyC,SACnBC,EAAY1C,EAAQ0C,UACpBiB,EAAW3D,EAAQ2D,SACnBC,EAAY5D,EAAQ4D,UAChBM,GAAazB,GAAYC,GAAa1C,EAAQsC,MAChDa,EAAYV,EACZW,EAAaV,EACbuB,EAAMlB,EAAcC,EAAeP,EAAWC,EACpC,EAANuB,GACFjB,EAAeN,EAAYK,EAAcN,EACrB4B,SAAhBrE,EAAQoE,KAAwCC,SAAnBrE,EAAQuE,SACvCzB,GAAWX,EAASa,GAAgB,IAE7BiB,EAAM,IACflB,EAAcN,EAAWO,EAAeN,EACnB2B,SAAjBrE,EAAQmE,MAAwCE,SAAlBrE,EAAQsE,QACxCzB,GAAWX,EAAQa,GAAe,OAIlC/C,EAAQwE,SAAWxE,EAAQyE,SAC7Bd,EAAWlB,EAAWA,GAAYkB,EAClCC,EAAYlB,EAAYA,GAAakB,GAEnC5D,EAAQyE,OACVZ,IACAL,MAEAA,IACAK,MAGAK,EAAW,CAUb,GATAH,EAAa/D,EAAQ+D,WACjBA,EAAa,IACfnB,EAAO8B,MAAMxC,MAAQiB,EAAY,KACjCP,EAAO8B,MAAMvC,OAASiB,EAAa,KACnCD,GAAaY,EACbX,GAAcW,EACdnB,EAAOS,WAAW,MAAM3C,MAAMqD,EAAYA,IAE5CC,EAAoBhE,EAAQgE,kBACxBA,EAAoB,GAAyB,EAApBA,GACXjB,EAAZI,GAAwCH,EAAbI,EAC/B,KAAOL,EAAciB,EAAoBb,GACvCP,EAAOV,MAAQa,EAAciB,EAC7BpB,EAAOT,OAASa,EAAegB,EAC/BnE,EAAU8C,oBACRC,EACAzC,EACA0C,EACAC,EACAC,EACAC,EACA,EACA,EACAJ,EAAOV,MACPU,EAAOT,QAETY,EAAcH,EAAOV,MACrBc,EAAeJ,EAAOT,OACtBhC,EAAMC,SAASC,cAAc,UAC7BF,EAAI+B,MAAQa,EACZ5C,EAAIgC,OAASa,EACbnD,EAAU8C,oBACRxC,EACAyC,EACA,EACA,EACAG,EACAC,EACA,EACA,EACAD,EACAC,EAUN,OANAJ,GAAOV,MAAQiB,EACfP,EAAOT,OAASiB,EAChBvD,EAAUiC,qBACRc,EACA5C,GAEKH,EAAU8C,oBACfC,EACAzC,EACA0C,EACAC,EACAC,EACAC,EACA,EACA,EACAG,EACAC,GAKJ,MAFAjD,GAAI+B,MAAQiB,EACZhD,EAAIgC,OAASiB,EACNjD,GAGTN,EAAUe,gBAAkB,SAAUd,GACpC,MAAOuB,GAASA,EAAOT,gBAAgBd,IAAQ,GAGjDD,EAAUY,gBAAkB,SAAUR,GACpC,MAAOoB,GAASA,EAAOZ,gBAAgBR,IAAO,GAMhDJ,EAAUoB,SAAW,SAAUnB,EAAMC,EAAU4E,GAC7C,GAAIrD,OAAOsD,WAAY,CACrB,GAAIC,GAAa,GAAID,WAGrB,IAFAC,EAAWtE,OAASsE,EAAWvE,QAAUP,EACzC4E,EAASA,GAAU,gBACfE,EAAWF,GAEb,MADAE,GAAWF,GAAQ7E,GACZ+E,EAGX,OAAO,GAGa,kBAAXC,SAAyBA,OAAOC,IACzCD,OAAO,WACL,MAAOjF,KAEkB,gBAAXmF,SAAuBA,OAAOC,QAC9CD,OAAOC,QAAUpF,EAEjBD,EAAEC,UAAYA,GAEhByB,QC9UA,SAAU4D,GACV,YACsB,mBAAXJ,SAAyBA,OAAOC,IAEzCD,QAAQ,gBAAiBI,GAEzBA,EAD2B,gBAAXF,SAAuBA,OAAOC,QACtCE,QAAQ,gBAGR7D,OAAOzB,YAEjB,SAAUA,GACV,YAEA,IAAIuF,GAA0BvF,EAAU0D,gBACpC8B,EAA+BxF,EAAUiC,qBACzCwD,EAAgCzF,EAAUkC,qBAI9ClC,GAAU0D,gBAAkB,SAAUvD,GACpC,QAASA,EAAQuF,aACfH,EAAwBvD,KAAKhC,EAAWG,IAK5CH,EAAUiC,qBAAuB,SAAUc,EAAQ5C,GACjDqF,EAA6BxD,KAAKhC,EAAW+C,EAAQ5C,EACrD,IAAIwF,GAAM5C,EAAOS,WAAW,MACxBnB,EAAQU,EAAOV,MACfC,EAASS,EAAOT,OAChBsD,EAAa7C,EAAO8B,MAAMxC,MAC1BwD,EAAc9C,EAAO8B,MAAMvC,OAC3BoD,EAAcvF,EAAQuF,WAC1B,IAAKA,KAAeA,EAAc,GASlC,OANIA,EAAc,IAChB3C,EAAOV,MAAQC,EACfS,EAAOT,OAASD,EAChBU,EAAO8B,MAAMxC,MAAQwD,EACrB9C,EAAO8B,MAAMvC,OAASsD,GAEhBF,GACN,IAAK,GAEHC,EAAIG,UAAUzD,EAAO,GACrBsD,EAAI9E,MAAM,GAAI,EACd,MACF,KAAK,GAEH8E,EAAIG,UAAUzD,EAAOC,GACrBqD,EAAII,OAAOnC,KAAKoC,GAChB,MACF,KAAK,GAEHL,EAAIG,UAAU,EAAGxD,GACjBqD,EAAI9E,MAAM,EAAG,GACb,MACF,KAAK,GAEH8E,EAAII,OAAO,GAAMnC,KAAKoC,IACtBL,EAAI9E,MAAM,EAAG,GACb,MACF,KAAK,GAEH8E,EAAII,OAAO,GAAMnC,KAAKoC,IACtBL,EAAIG,UAAU,GAAIxD,EAClB,MACF,KAAK,GAEHqD,EAAII,OAAO,GAAMnC,KAAKoC,IACtBL,EAAIG,UAAUzD,GAAQC,GACtBqD,EAAI9E,MAAM,GAAI,EACd,MACF,KAAK,GAEH8E,EAAII,QAAQ,GAAMnC,KAAKoC,IACvBL,EAAIG,WAAWzD,EAAO,KAO5BrC,EAAUkC,sBAAwB,SAAU5B,EAAK2F,GAC/C,GAEI9D,GACAC,EAHAjC,EAAUsF,EAA8BzD,KAAKhC,EAAWM,EAAK2F,GAC7DP,EAAcvF,EAAQuF,WAG1B,KAAKA,GAAeA,EAAc,GAAqB,IAAhBA,EACrC,MAAOvF,EAETgC,KACA,KAAKC,IAAKjC,GACJA,EAAQqC,eAAeJ,KACzBD,EAAWC,GAAKjC,EAAQiC,GAG5B,QAAQjC,EAAQuF,aACd,IAAK,GAEHvD,EAAWmC,KAAOnE,EAAQsE,MAC1BtC,EAAWsC,MAAQtE,EAAQmE,IAC3B,MACF,KAAK,GAEHnC,EAAWmC,KAAOnE,EAAQsE,MAC1BtC,EAAWoC,IAAMpE,EAAQuE,OACzBvC,EAAWsC,MAAQtE,EAAQmE,KAC3BnC,EAAWuC,OAASvE,EAAQoE,GAC5B,MACF,KAAK,GAEHpC,EAAWoC,IAAMpE,EAAQuE,OACzBvC,EAAWuC,OAASvE,EAAQoE,GAC5B,MACF,KAAK,GAEHpC,EAAWmC,KAAOnE,EAAQoE,IAC1BpC,EAAWoC,IAAMpE,EAAQmE,KACzBnC,EAAWsC,MAAQtE,EAAQuE,OAC3BvC,EAAWuC,OAASvE,EAAQsE,KAC5B,MACF,KAAK,GAEHtC,EAAWmC,KAAOnE,EAAQoE,IAC1BpC,EAAWoC,IAAMpE,EAAQsE,MACzBtC,EAAWsC,MAAQtE,EAAQuE,OAC3BvC,EAAWuC,OAASvE,EAAQmE,IAC5B,MACF,KAAK,GAEHnC,EAAWmC,KAAOnE,EAAQuE,OAC1BvC,EAAWoC,IAAMpE,EAAQsE,MACzBtC,EAAWsC,MAAQtE,EAAQoE,IAC3BpC,EAAWuC,OAASvE,EAAQmE,IAC5B,MACF,KAAK,GAEHnC,EAAWmC,KAAOnE,EAAQuE,OAC1BvC,EAAWoC,IAAMpE,EAAQmE,KACzBnC,EAAWsC,MAAQtE,EAAQoE,IAC3BpC,EAAWuC,OAASvE,EAAQsE,MAWhC,MARItE,GAAQuF,YAAc,IACxBvD,EAAWS,SAAWzC,EAAQ0C,UAC9BV,EAAWU,UAAY1C,EAAQyC,SAC/BT,EAAW2B,SAAW3D,EAAQ4D,UAC9B5B,EAAW4B,UAAY5D,EAAQ2D,SAC/B3B,EAAWe,YAAc/C,EAAQgD,aACjChB,EAAWgB,aAAehD,EAAQ+C,aAE7Bf,KCvJT,SAAUkD,GACV,YACsB,mBAAXJ,SAAyBA,OAAOC,IAEzCD,QAAQ,gBAAiBI,GAEzBA,EAD2B,gBAAXF,SAAuBA,OAAOC,QACtCE,QAAQ,gBAGR7D,OAAOzB,YAEjB,SAAUA,GACV,YAEA,IAAIkG,GAAezE,OAAO0E,OAASA,KAAKrE,UAAUsE,OAClDD,KAAKrE,UAAUuE,aAAeF,KAAKrE,UAAUwE,SAE7CtG,GAAUuG,UAAYL,GAAgB,WACpC,GAAIE,GAAQI,KAAKJ,OAASI,KAAKH,aAAeG,KAAKF,QACnD,OAAOF,GAAMK,MAAMD,KAAME,YAG3B1G,EAAU2G,iBACRC,MACEC,WAUJ7G,EAAU8G,cAAgB,SAAU7G,EAAMC,EAAUC,GAClDA,EAAUA,KACV,IAAI4G,GAAOP,KAEPQ,EAAkB7G,EAAQ6G,iBAAmB,OAC7CC,KACAC,IAAezF,OAAO0F,UAAYlH,GAAQA,EAAKmH,MAAQ,IAC3B,eAAdnH,EAAKgB,MAAyBjB,EAAUuG,YACtDW,IAAelH,EAAUoB,SACzBpB,EAAUuG,UAAUvE,KAAK/B,EAAM,EAAG+G,GAClC,SAAU3F,GACR,GAAIA,EAAEC,OAAO+F,MAIX,MAFAC,SAAQC,IAAIlG,EAAEC,OAAO+F,WACrBnH,GAAS+G,EAOX,IAKIO,GACAC,EACAC,EACAtF,EARAuF,EAAStG,EAAEC,OAAOC,OAClBqG,EAAW,GAAIT,UAASQ,GACxBE,EAAS,EACTC,EAAYF,EAASG,WAAa,EAClCC,EAAaH,CAMjB,IAA8B,QAA1BD,EAASK,UAAU,GAAe,CACpC,KAAgBH,EAATD,IACLL,EAAcI,EAASK,UAAUJ,GAI5BL,GAAe,OAAyB,OAAfA,GACZ,QAAhBA,IANuB,CAYvB,GADAC,EAAeG,EAASK,UAAUJ,EAAS,GAAK,EAC5CA,EAASJ,EAAeG,EAASG,WAAY,CAC/CT,QAAQC,IAAI,2CACZ,OAGF,GADAG,EAAU1H,EAAU2G,gBAAgBC,KAAKY,GAEvC,IAAKpF,EAAI,EAAGA,EAAIsF,EAAQQ,OAAQ9F,GAAK,EACnCsF,EAAQtF,GAAGJ,KACT+E,EACAa,EACAC,EACAJ,EACAR,EACA9G,EAIN0H,IAAUJ,EACVO,EAAaH,GASZ1H,EAAQgI,kBAAoBH,EAAa,IACxCL,EAAOvB,MACTa,EAAKmB,UAAYT,EAAOvB,MAAM,EAAG4B,GAIjCf,EAAKmB,UAAY,GAAIC,YAAWV,GAC7BW,SAAS,EAAGN,QAInBV,SAAQC,IAAI,0CAEdrH,GAAS+G,IAEX,uBAEF/G,EAAS+G,MC9Hb,SAAU5B,GACV,YACsB,mBAAXJ,SAAyBA,OAAOC,IAEzCD,QAAQ,eAAgB,qBAAsBI,GACnB,gBAAXF,SAAuBA,OAAOC,QAC9CC,EAAQC,QAAQ,gBAAiBA,QAAQ,sBAGzCD,EAAQ5D,OAAOzB,YAEjB,SAAUA,GACV,YAEAA,GAAUuI,QAAU,WAClB,MAAO/B,OAGTxG,EAAUuI,QAAQzG,UAAU0G,KAC1BC,YAAe,KAGjBzI,EAAUuI,QAAQzG,UAAU4G,IAAM,SAAUC,GAC1C,MAAOnC,MAAKmC,IAAOnC,KAAKA,KAAKgC,IAAIG,KAGnC3I,EAAU4I,iBAAmB,SAAUhB,EAAUC,EAAQK,GACvD,GAAIW,GACFzG,EACA0G,CACF,KAAKZ,GAAUL,EAASK,EAASN,EAASG,WAExC,WADAT,SAAQC,IAAI,6CAId,KADAsB,KACKzG,EAAI,EAAO8F,EAAJ9F,EAAYA,GAAK,EAC3B0G,EAAIlB,EAASmB,SAASlB,EAASzF,GAC/ByG,EAAQG,MAAU,GAAJF,EAAS,IAAM,IAAMA,EAAE/G,SAAS,IAEhD,OAAO,oBAAsB8G,EAAQI,KAAK,MAG5CjJ,EAAUkJ,cAERC,GACEC,SAAU,SAAUxB,EAAUyB,GAC5B,MAAOzB,GAASmB,SAASM,IAE3BjC,KAAM,GAGRkC,GACEF,SAAU,SAAUxB,EAAUyB,GAC5B,MAAOE,QAAOC,aAAa5B,EAASmB,SAASM,KAE/CjC,KAAM,EACNqC,OAAO,GAGTC,GACEN,SAAU,SAAUxB,EAAUyB,EAAYM,GACxC,MAAO/B,GAASK,UAAUoB,EAAYM,IAExCvC,KAAM,GAGRwC,GACER,SAAU,SAAUxB,EAAUyB,EAAYM,GACxC,MAAO/B,GAASiC,UAAUR,EAAYM,IAExCvC,KAAM,GAGR0C,GACEV,SAAU,SAAUxB,EAAUyB,EAAYM,GACxC,MAAO/B,GAASiC,UAAUR,EAAYM,GACtC/B,EAASiC,UAAUR,EAAa,EAAGM,IAErCvC,KAAM,GAGR2C,GACEX,SAAU,SAAUxB,EAAUyB,EAAYM,GACxC,MAAO/B,GAASoC,SAASX,EAAYM,IAEvCvC,KAAM,GAGR6C,IACEb,SAAU,SAAUxB,EAAUyB,EAAYM,GACxC,MAAO/B,GAASoC,SAASX,EAAYM,GACrC/B,EAASoC,SAASX,EAAa,EAAGM,IAEpCvC,KAAM,IAIVpH,EAAUkJ,aAAa,GAAKlJ,EAAUkJ,aAAa,GAEnDlJ,EAAUkK,aAAe,SAAUtC,EAAUuC,EAAYtC,EAAQ5G,EAAMiH,EAAQyB,GAC7E,GACIS,GACAf,EACAgB,EACAjI,EACAkI,EACAC,EANAC,EAAUxK,EAAUkJ,aAAajI,EAOrC,KAAKuJ,EAEH,WADAlD,SAAQC,IAAI,uCASd,IANA6C,EAAUI,EAAQpD,KAAOc,EAGzBmB,EAAae,EAAU,EACnBD,EAAavC,EAASiC,UAAUhC,EAAS,EAAG8B,GAC3C9B,EAAS,EACVwB,EAAae,EAAUxC,EAASG,WAElC,WADAT,SAAQC,IAAI,0CAGd,IAAe,IAAXW,EACF,MAAOsC,GAAQpB,SAASxB,EAAUyB,EAAYM,EAGhD,KADAU,KACKjI,EAAI,EAAO8F,EAAJ9F,EAAYA,GAAK,EAC3BiI,EAAOjI,GAAKoI,EAAQpB,SAASxB,EAAUyB,EAAajH,EAAIoI,EAAQpD,KAAMuC,EAExE,IAAIa,EAAQf,MAAO,CAGjB,IAFAa,EAAM,GAEDlI,EAAI,EAAGA,EAAIiI,EAAOnC,SACrBqC,EAAIF,EAAOjI,GAED,SAANmI,GAHyBnI,GAAK,EAMlCkI,GAAOC,CAET,OAAOD,GAET,MAAOD,IAGTrK,EAAUyK,aAAe,SAAU7C,EAAUuC,EAAYtC,EAAQ8B,EAAc1C,GAC7E,GAAIyD,GAAM9C,EAASK,UAAUJ,EAAQ8B,EACrC1C,GAAK0D,KAAKD,GAAO1K,EAAUkK,aACzBtC,EACAuC,EACAtC,EACAD,EAASK,UAAUJ,EAAS,EAAG8B,GAC/B/B,EAASiC,UAAUhC,EAAS,EAAG8B,GAC/BA,IAIJ3J,EAAU4K,cAAgB,SAAUhD,EAAUuC,EAAYU,EAAWlB,EAAc1C,GACjF,GAAI6D,GACFC,EACA3I,CACF,IAAIyI,EAAY,EAAIjD,EAASG,WAE3B,WADAT,SAAQC,IAAI,+CAKd,IAFAuD,EAAalD,EAASK,UAAU4C,EAAWlB,GAC3CoB,EAAeF,EAAY,EAAI,GAAKC,EAChCC,EAAe,EAAInD,EAASG,WAE9B,WADAT,SAAQC,IAAI,6CAGd,KAAKnF,EAAI,EAAO0I,EAAJ1I,EAAgBA,GAAK,EAC/BoE,KAAKiE,aACH7C,EACAuC,EACAU,EAAY,EAAI,GAAKzI,EACrBuH,EACA1C,EAIJ,OAAOW,GAASiC,UAAUkB,EAAcpB,IAG1C3J,EAAUgL,cAAgB,SAAUpD,EAAUC,EAAQK,EAAQjB,EAAM9G,GAClE,IAAIA,EAAQ8K,YAAZ,CAGA,GACItB,GACAkB,EACAK,EAHAf,EAAatC,EAAS,EAK1B,IAAuC,aAAnCD,EAASiC,UAAUhC,EAAS,GAAhC,CAIA,GAAIsC,EAAa,EAAIvC,EAASG,WAE5B,WADAT,SAAQC,IAAI,2CAId,IAAuC,IAAnCK,EAASK,UAAUJ,EAAS,GAE9B,WADAP,SAAQC,IAAI,oDAId,QAAQK,EAASK,UAAUkC,IACzB,IAAK,OACHR,GAAe,CACf,MACF,KAAK,OACHA,GAAe,CACf,MACF,SAEE,WADArC,SAAQC,IAAI,qDAIhB,GAAyD,KAArDK,EAASK,UAAUkC,EAAa,EAAGR,GAErC,WADArC,SAAQC,IAAI,0CAIdsD,GAAYjD,EAASiC,UAAUM,EAAa,EAAGR,GAE/C1C,EAAK0D,KAAO,GAAI3K,GAAUuI,QAG1BsC,EAAY7K,EAAU4K,cACpBhD,EACAuC,EACAA,EAAaU,EACblB,EACA1C,GAEE4D,IAAc1K,EAAQgL,uBACxBD,GAAiBP,SACjBE,EAAY7K,EAAU4K,cACpBhD,EACAuC,EACAA,EAAaU,EACblB,EACAuB,GAGEA,EAAcP,KAAK,OACrB1D,EAAK0D,KAAKS,UAAYpL,EAAU4I,iBAC9BhB,EACAuC,EAAae,EAAcP,KAAK,KAChCO,EAAcP,KAAK,QAKrB1D,EAAK0D,KAAK,SAAYxK,EAAQkL,gBAChCrL,EAAU4K,cACRhD,EACAuC,EACAA,EAAalD,EAAK0D,KAAK,OACvBhB,EACA1C,GAIAA,EAAK0D,KAAK,SAAYxK,EAAQmL,gBAChCtL,EAAU4K,cACRhD,EACAuC,EACAA,EAAalD,EAAK0D,KAAK,OACvBhB,EACA1C,MAMNjH,EAAU2G,gBAAgBC,KAAK,OAAQoC,KAAKhJ,EAAUgL,iBCjRtD,SAAU3F,GACV,YACsB,mBAAXJ,SAAyBA,OAAOC,IAEzCD,QAAQ,eAAgB,qBAAsBI,GACnB,gBAAXF,SAAuBA,OAAOC,QAC9CC,EAAQC,QAAQ,gBAAiBA,QAAQ,sBAGzCD,EAAQ5D,OAAOzB,YAEjB,SAAUA,GACV,YAEAA,GAAUuI,QAAQzG,UAAUyJ,MAI1BC,IAAQ,aACRC,IAAQ,cACRC,MAAQ,iBACRC,MAAQ,oBACRC,MAAQ,6BACRC,IAAQ,gBACRC,IAAQ,cACRC,IAAQ,4BACRC,IAAQ,cACRC,IAAQ,kBACRC,IAAQ,sBACRC,IAAQ,mBACRC,IAAQ,mBACRC,IAAQ,cACRC,IAAQ,cACRC,IAAQ,iBACRC,IAAQ,eACRC,IAAQ,eACRC,IAAQ,kBACRC,IAAQ,wBACRC,IAAQ,8BACRC,IAAQ,mBACRC,IAAQ,aACRC,IAAQ,wBACRC,IAAQ,oBACRC,IAAQ,sBACRC,IAAQ,WACRC,IAAQ,mBACRC,IAAQ,OACRC,IAAQ,QACRC,IAAQ,WACRC,IAAQ,SACRC,MAAQ,YAIRC,MAAQ,cACRC,MAAQ,kBACRC,MAAQ,aACRC,MAAQ,kBACRC,MAAQ,kBACRC,MAAQ,QACRC,MAAQ,0BACRC,MAAQ,yBACRC,MAAQ,YACRC,MAAQ,cACRC,MAAQ,mBACRC,MAAQ,mBACRC,MAAQ,oBACRC,MAAQ,aACRC,MAAQ,qBACRC,MAAQ,sBACRC,MAAQ,eACRC,MAAQ,UACRC,MAAQ,kBACRC,MAAQ,sBACRC,MAAQ,0BACRC,MAAQ,OACRC,MAAQ,kBACRC,MAAQ,4BACRC,MAAQ,2BACRC,MAAQ,WACRC,MAAQ,sBACRC,MAAQ,sBACRC,MAAQ,oBACRC,MAAQ,gBACRC,MAAQ,kBACRC,MAAQ,eACRC,MAAQ,mBACRC,MAAQ,kBACRC,MAAQ,eACRC,MAAQ,cACRC,MAAQ,QACRC,MAAQ,cACRC,MAAQ,cACRC,MAAQ,cACRC,MAAQ,2BACRC,MAAQ,wBACRC,MAAQ,wBACRC,MAAQ,2BACRC,MAAQ,kBACRC,MAAQ,gBACRC,MAAQ,gBACRC,MAAQ,aACRC,MAAQ,YACRC,MAAQ,aACRC,MAAQ,iBACRC,MAAQ,eACRC,MAAQ,eACRC,MAAQ,mBACRC,MAAQ,wBACRC,MAAQ,mBACRC,MAAQ,cACRC,MAAQ,WACRC,MAAQ,aACRC,MAAQ,YACRC,MAAQ,2BACRC,MAAQ,uBACRC,MAAQ,gBACRC,MAAQ,kBACRC,MAAQ,mBACRC,MAAQ,oBACRC,MAAQ,WACRC,MAAQ,YACRC,MAAQ,mBAIRC,EAAQ,eACR3I,EAAQ,iBACRG,EAAQ,cACRI,EAAQ,kBACRE,EAAQ,eACRE,EAAQ,iBACRiI,EAAQ,cACRC,EAAQ,eACRC,EAAQ,gBACRlI,EAAQ,YACRE,GAAQ,iBACRiI,GAAQ,SACRC,GAAQ,cACRC,GAAQ,WACRC,GAAQ,cACRC,GAAQ,WACRC,GAAQ,qBACRC,GAAQ,kBACRC,GAAQ,cACRC,GAAQ,qBACRC,GAAQ,kBACRC,GAAQ,sBACRC,GAAQ,mBACRC,GAAQ,oBACRC,GAAQ,iBACRC,GAAQ,qBACRC,GAAQ,kBACRC,GAAQ,sBACRC,GAAQ,qBACRC,GAAQ,eACRC,GAAQ,kBACRC,GAAQ,wBAGVtT,EAAUuI,QAAQzG,UAAUyR,cAC1BC,iBACE1B,EAAG,YACH3I,EAAG,SACHG,EAAG,iBACHI,EAAG,oBACHE,EAAG,mBACHE,EAAG,mBACHiI,EAAG,iBACHC,EAAG,gBACHC,EAAG,kBAELwB,cACE3B,EAAG,UACH3I,EAAG,UACHG,EAAG,wBACHI,EAAG,OACHE,EAAG,YACHE,EAAG,UACHiI,EAAG,UACH2B,IAAK,SAEPC,aACE7B,EAAG,UACH3I,EAAG,WACHG,EAAG,cACHI,EAAG,gCACHE,EAAG,QACHG,EAAG,eACHE,GAAI,iBACJiI,GAAI,QACJC,GAAI,wCACJC,GAAI,yCACJC,GAAI,0CACJC,GAAI,sCACJE,GAAI,mBACJC,GAAI,mBACJC,GAAI,mBACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,sBACJW,IAAK,SAEPE,OACE9B,EAAQ,qBACR3I,EAAQ,cACRW,EAAQ,mCACRkI,EAAQ,+BACRjI,EAAQ,qCACRqI,GAAQ,gEACRE,GAAQ,4DACRC,GAAQ,4CACRQ,GAAQ,gCACRC,GAAQ,yBACRI,GAAQ,oDACRE,GAAQ,gDACRO,GAAQ,oBACRC,GAAQ,sCACRC,GAAQ,iEACRC,GAAQ,6DACRC,GAAQ,6DACRC,GAAQ,wFACRC,GAAQ,oFACRC,GAAQ,iDACRC,GAAQ,4EACRC,GAAQ,yEAEVC,eACEpL,EAAG,YACHG,EAAG,6BACHI,EAAG,6BACHE,EAAG,+BACHE,EAAG,+BACHkI,EAAG,mBACHC,EAAG,kCAELuC,kBACE1C,EAAG,WACH3I,EAAG,YACHG,EAAG,WACHI,EAAG,eAEL+K,WACEtL,EAAG,yBAELuL,gBACE5C,EAAG,iBACH3I,EAAG,kBAELwL,cACE7C,EAAG,qBACH3I,EAAG,wBAELyL,aACE9C,EAAG,OACH3I,EAAG,cACHG,EAAG,eACHI,EAAG,gBACHE,EAAG,kBAELiL,UACE/C,EAAG,SACH3I,EAAG,OACHG,EAAG,QAELwL,YACEhD,EAAG,SACH3I,EAAG,iBACHG,EAAG,mBAELyL,WACEjD,EAAG,SACH3I,EAAG,OACHG,EAAG,QAEL0L,sBACElD,EAAG,UACH3I,EAAG,QACHG,EAAG,aACHI,EAAG,gBAELuL,YACEvL,EAAG,OAELwL,yBACEpD,EAAG,GACH3I,EAAG,IACHG,EAAG,KACHI,EAAG,KACHE,EAAG,IACHE,EAAG,IACHiI,EAAG,KAELtJ,aACEU,EAAG,WACHG,EAAG,YACHI,EAAG,eACHE,EAAG,cACHE,EAAG,WACHiI,EAAG,YACHC,EAAG,eACHC,EAAG,gBAIPjS,EAAUuI,QAAQzG,UAAUqT,QAAU,SAAUxM,GAC9C,GAAIyM,GAAQ5O,KAAKkC,IAAIC,EACrB,QAAQA,GACN,IAAK,cACL,IAAK,QACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,mBACL,IAAK,YACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,WACL,IAAK,aACL,IAAK,YACL,IAAK,uBACL,IAAK,aACL,IAAK,cACH,MAAOnC,MAAK+M,aAAa5K,GAAIyM,EAC/B,KAAK,cACL,IAAK,kBACH,MAAO7L,QAAOC,aAAa4L,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GACjE,KAAK,0BACH,MAAO5O,MAAK+M,aAAa5K,GAAIyM,EAAM,IACnC5O,KAAK+M,aAAa5K,GAAIyM,EAAM,IAC5B5O,KAAK+M,aAAa5K,GAAIyM,EAAM,IAC5B5O,KAAK+M,aAAa5K,GAAIyM,EAAM,GAC9B,KAAK,eACH,MAAOA,GAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAAK,IAAMA,EAAM,GAEpE,MAAO7L,QAAO6L,IAGd,SAAUC,GACV,GAEIC,GAFA/J,EAAO8J,EAAiB9J,KACxB/C,EAAM6M,EAAiB7M,GAG3B,KAAK8M,IAAQ/J,GACPA,EAAK/I,eAAe8S,KACtB9M,EAAI+C,EAAK+J,IAASA,IAGtBtV,EAAUuI,QAAQzG,WAEpB9B,EAAUuI,QAAQzG,UAAUyT,OAAS,WACnC,GACID,GACA3M,EAFAH,IAGJ,KAAK8M,IAAQ9O,MACPA,KAAKhE,eAAe8S,KACtB3M,EAAKnC,KAAK+E,KAAK+J,GACX3M,IACFH,EAAIG,GAAMnC,KAAK2O,QAAQxM,IAI7B,OAAOH","file":"load-image.all.min.js"}
\ No newline at end of file
diff --git a/milfs/plugins/upload/js/main.js b/milfs/plugins/upload/js/main.js
deleted file mode 100644
index 85d085c..0000000
--- a/milfs/plugins/upload/js/main.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * jQuery File Upload Plugin JS Example
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2010, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-/* global $, window */
-
-$(function () {
- 'use strict';
-
- // Initialize the jQuery File Upload widget:
- $('#fileupload').fileupload({
- // Uncomment the following to send cross-domain cookies:
- //xhrFields: {withCredentials: true},
- url: 'server/php/'
- });
-
- // Enable iframe cross-domain access via redirect option:
- $('#fileupload').fileupload(
- 'option',
- 'redirect',
- window.location.href.replace(
- /\/[^\/]*$/,
- '/cors/result.html?%s'
- )
- );
-
- if (window.location.hostname === 'blueimp.github.io') {
- // Demo settings:
- $('#fileupload').fileupload('option', {
- url: '//jquery-file-upload.appspot.com/',
- // Enable image resizing, except for Android and Opera,
- // which actually support image resizing, but fail to
- // send Blob objects via XHR requests:
- disableImageResize: /Android(?!.*Chrome)|Opera/
- .test(window.navigator.userAgent),
- maxFileSize: 999000,
- acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
- });
- // Upload server status check for browsers with CORS support:
- if ($.support.cors) {
- $.ajax({
- url: '//jquery-file-upload.appspot.com/',
- type: 'HEAD'
- }).fail(function () {
- $('
')
- .text('Upload server currently unavailable - ' +
- new Date())
- .appendTo('#fileupload');
- });
- }
- } else {
- // Load existing files:
- $('#fileupload').addClass('fileupload-processing');
- $.ajax({
- // Uncomment the following to send cross-domain cookies:
- //xhrFields: {withCredentials: true},
- url: $('#fileupload').fileupload('option', 'url'),
- dataType: 'json',
- context: $('#fileupload')[0]
- }).always(function () {
- $(this).removeClass('fileupload-processing');
- }).done(function (result) {
- $(this).fileupload('option', 'done')
- .call(this, $.Event('done'), {result: result});
- });
- }
-
-});
diff --git a/milfs/plugins/upload/js/vendor/jquery.ui.widget.js b/milfs/plugins/upload/js/vendor/jquery.ui.widget.js
deleted file mode 100644
index e08df3f..0000000
--- a/milfs/plugins/upload/js/vendor/jquery.ui.widget.js
+++ /dev/null
@@ -1,572 +0,0 @@
-/*! jQuery UI - v1.11.4+CommonJS - 2015-08-28
-* http://jqueryui.com
-* Includes: widget.js
-* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
-
-(function( factory ) {
- if ( typeof define === "function" && define.amd ) {
-
- // AMD. Register as an anonymous module.
- define([ "jquery" ], factory );
-
- } else if ( typeof exports === "object" ) {
-
- // Node/CommonJS
- factory( require( "jquery" ) );
-
- } else {
-
- // Browser globals
- factory( jQuery );
- }
-}(function( $ ) {
-/*!
- * jQuery UI Widget 1.11.4
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/jQuery.widget/
- */
-
-
-var widget_uuid = 0,
- widget_slice = Array.prototype.slice;
-
-$.cleanData = (function( orig ) {
- return function( elems ) {
- var events, elem, i;
- for ( i = 0; (elem = elems[i]) != null; i++ ) {
- try {
-
- // Only trigger remove when necessary to save time
- events = $._data( elem, "events" );
- if ( events && events.remove ) {
- $( elem ).triggerHandler( "remove" );
- }
-
- // http://bugs.jquery.com/ticket/8235
- } catch ( e ) {}
- }
- orig( elems );
- };
-})( $.cleanData );
-
-$.widget = function( name, base, prototype ) {
- var fullName, existingConstructor, constructor, basePrototype,
- // proxiedPrototype allows the provided prototype to remain unmodified
- // so that it can be used as a mixin for multiple widgets (#8876)
- proxiedPrototype = {},
- namespace = name.split( "." )[ 0 ];
-
- name = name.split( "." )[ 1 ];
- fullName = namespace + "-" + name;
-
- if ( !prototype ) {
- prototype = base;
- base = $.Widget;
- }
-
- // create selector for plugin
- $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
- return !!$.data( elem, fullName );
- };
-
- $[ namespace ] = $[ namespace ] || {};
- existingConstructor = $[ namespace ][ name ];
- constructor = $[ namespace ][ name ] = function( options, element ) {
- // allow instantiation without "new" keyword
- if ( !this._createWidget ) {
- return new constructor( options, element );
- }
-
- // allow instantiation without initializing for simple inheritance
- // must use "new" keyword (the code above always passes args)
- if ( arguments.length ) {
- this._createWidget( options, element );
- }
- };
- // extend with the existing constructor to carry over any static properties
- $.extend( constructor, existingConstructor, {
- version: prototype.version,
- // copy the object used to create the prototype in case we need to
- // redefine the widget later
- _proto: $.extend( {}, prototype ),
- // track widgets that inherit from this widget in case this widget is
- // redefined after a widget inherits from it
- _childConstructors: []
- });
-
- basePrototype = new base();
- // we need to make the options hash a property directly on the new instance
- // otherwise we'll modify the options hash on the prototype that we're
- // inheriting from
- basePrototype.options = $.widget.extend( {}, basePrototype.options );
- $.each( prototype, function( prop, value ) {
- if ( !$.isFunction( value ) ) {
- proxiedPrototype[ prop ] = value;
- return;
- }
- proxiedPrototype[ prop ] = (function() {
- var _super = function() {
- return base.prototype[ prop ].apply( this, arguments );
- },
- _superApply = function( args ) {
- return base.prototype[ prop ].apply( this, args );
- };
- return function() {
- var __super = this._super,
- __superApply = this._superApply,
- returnValue;
-
- this._super = _super;
- this._superApply = _superApply;
-
- returnValue = value.apply( this, arguments );
-
- this._super = __super;
- this._superApply = __superApply;
-
- return returnValue;
- };
- })();
- });
- constructor.prototype = $.widget.extend( basePrototype, {
- // TODO: remove support for widgetEventPrefix
- // always use the name + a colon as the prefix, e.g., draggable:start
- // don't prefix for widgets that aren't DOM-based
- widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
- }, proxiedPrototype, {
- constructor: constructor,
- namespace: namespace,
- widgetName: name,
- widgetFullName: fullName
- });
-
- // If this widget is being redefined then we need to find all widgets that
- // are inheriting from it and redefine all of them so that they inherit from
- // the new version of this widget. We're essentially trying to replace one
- // level in the prototype chain.
- if ( existingConstructor ) {
- $.each( existingConstructor._childConstructors, function( i, child ) {
- var childPrototype = child.prototype;
-
- // redefine the child widget using the same prototype that was
- // originally used, but inherit from the new version of the base
- $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
- });
- // remove the list of existing child constructors from the old constructor
- // so the old child constructors can be garbage collected
- delete existingConstructor._childConstructors;
- } else {
- base._childConstructors.push( constructor );
- }
-
- $.widget.bridge( name, constructor );
-
- return constructor;
-};
-
-$.widget.extend = function( target ) {
- var input = widget_slice.call( arguments, 1 ),
- inputIndex = 0,
- inputLength = input.length,
- key,
- value;
- for ( ; inputIndex < inputLength; inputIndex++ ) {
- for ( key in input[ inputIndex ] ) {
- value = input[ inputIndex ][ key ];
- if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
- // Clone objects
- if ( $.isPlainObject( value ) ) {
- target[ key ] = $.isPlainObject( target[ key ] ) ?
- $.widget.extend( {}, target[ key ], value ) :
- // Don't extend strings, arrays, etc. with objects
- $.widget.extend( {}, value );
- // Copy everything else by reference
- } else {
- target[ key ] = value;
- }
- }
- }
- }
- return target;
-};
-
-$.widget.bridge = function( name, object ) {
- var fullName = object.prototype.widgetFullName || name;
- $.fn[ name ] = function( options ) {
- var isMethodCall = typeof options === "string",
- args = widget_slice.call( arguments, 1 ),
- returnValue = this;
-
- if ( isMethodCall ) {
- this.each(function() {
- var methodValue,
- instance = $.data( this, fullName );
- if ( options === "instance" ) {
- returnValue = instance;
- return false;
- }
- if ( !instance ) {
- return $.error( "cannot call methods on " + name + " prior to initialization; " +
- "attempted to call method '" + options + "'" );
- }
- if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
- return $.error( "no such method '" + options + "' for " + name + " widget instance" );
- }
- methodValue = instance[ options ].apply( instance, args );
- if ( methodValue !== instance && methodValue !== undefined ) {
- returnValue = methodValue && methodValue.jquery ?
- returnValue.pushStack( methodValue.get() ) :
- methodValue;
- return false;
- }
- });
- } else {
-
- // Allow multiple hashes to be passed on init
- if ( args.length ) {
- options = $.widget.extend.apply( null, [ options ].concat(args) );
- }
-
- this.each(function() {
- var instance = $.data( this, fullName );
- if ( instance ) {
- instance.option( options || {} );
- if ( instance._init ) {
- instance._init();
- }
- } else {
- $.data( this, fullName, new object( options, this ) );
- }
- });
- }
-
- return returnValue;
- };
-};
-
-$.Widget = function( /* options, element */ ) {};
-$.Widget._childConstructors = [];
-
-$.Widget.prototype = {
- widgetName: "widget",
- widgetEventPrefix: "",
- defaultElement: "",
- options: {
- disabled: false,
-
- // callbacks
- create: null
- },
- _createWidget: function( options, element ) {
- element = $( element || this.defaultElement || this )[ 0 ];
- this.element = $( element );
- this.uuid = widget_uuid++;
- this.eventNamespace = "." + this.widgetName + this.uuid;
-
- this.bindings = $();
- this.hoverable = $();
- this.focusable = $();
-
- if ( element !== this ) {
- $.data( element, this.widgetFullName, this );
- this._on( true, this.element, {
- remove: function( event ) {
- if ( event.target === element ) {
- this.destroy();
- }
- }
- });
- this.document = $( element.style ?
- // element within the document
- element.ownerDocument :
- // element is window or document
- element.document || element );
- this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
- }
-
- this.options = $.widget.extend( {},
- this.options,
- this._getCreateOptions(),
- options );
-
- this._create();
- this._trigger( "create", null, this._getCreateEventData() );
- this._init();
- },
- _getCreateOptions: $.noop,
- _getCreateEventData: $.noop,
- _create: $.noop,
- _init: $.noop,
-
- destroy: function() {
- this._destroy();
- // we can probably remove the unbind calls in 2.0
- // all event bindings should go through this._on()
- this.element
- .unbind( this.eventNamespace )
- .removeData( this.widgetFullName )
- // support: jquery <1.6.3
- // http://bugs.jquery.com/ticket/9413
- .removeData( $.camelCase( this.widgetFullName ) );
- this.widget()
- .unbind( this.eventNamespace )
- .removeAttr( "aria-disabled" )
- .removeClass(
- this.widgetFullName + "-disabled " +
- "ui-state-disabled" );
-
- // clean up events and states
- this.bindings.unbind( this.eventNamespace );
- this.hoverable.removeClass( "ui-state-hover" );
- this.focusable.removeClass( "ui-state-focus" );
- },
- _destroy: $.noop,
-
- widget: function() {
- return this.element;
- },
-
- option: function( key, value ) {
- var options = key,
- parts,
- curOption,
- i;
-
- if ( arguments.length === 0 ) {
- // don't return a reference to the internal hash
- return $.widget.extend( {}, this.options );
- }
-
- if ( typeof key === "string" ) {
- // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
- options = {};
- parts = key.split( "." );
- key = parts.shift();
- if ( parts.length ) {
- curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
- for ( i = 0; i < parts.length - 1; i++ ) {
- curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
- curOption = curOption[ parts[ i ] ];
- }
- key = parts.pop();
- if ( arguments.length === 1 ) {
- return curOption[ key ] === undefined ? null : curOption[ key ];
- }
- curOption[ key ] = value;
- } else {
- if ( arguments.length === 1 ) {
- return this.options[ key ] === undefined ? null : this.options[ key ];
- }
- options[ key ] = value;
- }
- }
-
- this._setOptions( options );
-
- return this;
- },
- _setOptions: function( options ) {
- var key;
-
- for ( key in options ) {
- this._setOption( key, options[ key ] );
- }
-
- return this;
- },
- _setOption: function( key, value ) {
- this.options[ key ] = value;
-
- if ( key === "disabled" ) {
- this.widget()
- .toggleClass( this.widgetFullName + "-disabled", !!value );
-
- // If the widget is becoming disabled, then nothing is interactive
- if ( value ) {
- this.hoverable.removeClass( "ui-state-hover" );
- this.focusable.removeClass( "ui-state-focus" );
- }
- }
-
- return this;
- },
-
- enable: function() {
- return this._setOptions({ disabled: false });
- },
- disable: function() {
- return this._setOptions({ disabled: true });
- },
-
- _on: function( suppressDisabledCheck, element, handlers ) {
- var delegateElement,
- instance = this;
-
- // no suppressDisabledCheck flag, shuffle arguments
- if ( typeof suppressDisabledCheck !== "boolean" ) {
- handlers = element;
- element = suppressDisabledCheck;
- suppressDisabledCheck = false;
- }
-
- // no element argument, shuffle and use this.element
- if ( !handlers ) {
- handlers = element;
- element = this.element;
- delegateElement = this.widget();
- } else {
- element = delegateElement = $( element );
- this.bindings = this.bindings.add( element );
- }
-
- $.each( handlers, function( event, handler ) {
- function handlerProxy() {
- // allow widgets to customize the disabled handling
- // - disabled as an array instead of boolean
- // - disabled class as method for disabling individual parts
- if ( !suppressDisabledCheck &&
- ( instance.options.disabled === true ||
- $( this ).hasClass( "ui-state-disabled" ) ) ) {
- return;
- }
- return ( typeof handler === "string" ? instance[ handler ] : handler )
- .apply( instance, arguments );
- }
-
- // copy the guid so direct unbinding works
- if ( typeof handler !== "string" ) {
- handlerProxy.guid = handler.guid =
- handler.guid || handlerProxy.guid || $.guid++;
- }
-
- var match = event.match( /^([\w:-]*)\s*(.*)$/ ),
- eventName = match[1] + instance.eventNamespace,
- selector = match[2];
- if ( selector ) {
- delegateElement.delegate( selector, eventName, handlerProxy );
- } else {
- element.bind( eventName, handlerProxy );
- }
- });
- },
-
- _off: function( element, eventName ) {
- eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
- this.eventNamespace;
- element.unbind( eventName ).undelegate( eventName );
-
- // Clear the stack to avoid memory leaks (#10056)
- this.bindings = $( this.bindings.not( element ).get() );
- this.focusable = $( this.focusable.not( element ).get() );
- this.hoverable = $( this.hoverable.not( element ).get() );
- },
-
- _delay: function( handler, delay ) {
- function handlerProxy() {
- return ( typeof handler === "string" ? instance[ handler ] : handler )
- .apply( instance, arguments );
- }
- var instance = this;
- return setTimeout( handlerProxy, delay || 0 );
- },
-
- _hoverable: function( element ) {
- this.hoverable = this.hoverable.add( element );
- this._on( element, {
- mouseenter: function( event ) {
- $( event.currentTarget ).addClass( "ui-state-hover" );
- },
- mouseleave: function( event ) {
- $( event.currentTarget ).removeClass( "ui-state-hover" );
- }
- });
- },
-
- _focusable: function( element ) {
- this.focusable = this.focusable.add( element );
- this._on( element, {
- focusin: function( event ) {
- $( event.currentTarget ).addClass( "ui-state-focus" );
- },
- focusout: function( event ) {
- $( event.currentTarget ).removeClass( "ui-state-focus" );
- }
- });
- },
-
- _trigger: function( type, event, data ) {
- var prop, orig,
- callback = this.options[ type ];
-
- data = data || {};
- event = $.Event( event );
- event.type = ( type === this.widgetEventPrefix ?
- type :
- this.widgetEventPrefix + type ).toLowerCase();
- // the original event may come from any element
- // so we need to reset the target on the new event
- event.target = this.element[ 0 ];
-
- // copy original event properties over to the new event
- orig = event.originalEvent;
- if ( orig ) {
- for ( prop in orig ) {
- if ( !( prop in event ) ) {
- event[ prop ] = orig[ prop ];
- }
- }
- }
-
- this.element.trigger( event, data );
- return !( $.isFunction( callback ) &&
- callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
- event.isDefaultPrevented() );
- }
-};
-
-$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
- $.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
- if ( typeof options === "string" ) {
- options = { effect: options };
- }
- var hasOptions,
- effectName = !options ?
- method :
- options === true || typeof options === "number" ?
- defaultEffect :
- options.effect || defaultEffect;
- options = options || {};
- if ( typeof options === "number" ) {
- options = { duration: options };
- }
- hasOptions = !$.isEmptyObject( options );
- options.complete = callback;
- if ( options.delay ) {
- element.delay( options.delay );
- }
- if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
- element[ method ]( options );
- } else if ( effectName !== method && element[ effectName ] ) {
- element[ effectName ]( options.duration, options.easing, callback );
- } else {
- element.queue(function( next ) {
- $( this )[ method ]();
- if ( callback ) {
- callback.call( element[ 0 ] );
- }
- next();
- });
- }
- };
-});
-
-var widget = $.widget;
-
-
-
-}));
diff --git a/milfs/plugins/upload/server/gae-go/app.yaml b/milfs/plugins/upload/server/gae-go/app.yaml
deleted file mode 100644
index 2d09daa..0000000
--- a/milfs/plugins/upload/server/gae-go/app.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-application: jquery-file-upload
-version: 2
-runtime: go
-api_version: go1
-
-handlers:
-- url: /(favicon\.ico|robots\.txt)
- static_files: static/\1
- upload: static/(.*)
- expiration: '1d'
-- url: /.*
- script: _go_app
diff --git a/milfs/plugins/upload/server/gae-go/app/main.go b/milfs/plugins/upload/server/gae-go/app/main.go
deleted file mode 100644
index 85df03c..0000000
--- a/milfs/plugins/upload/server/gae-go/app/main.go
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * jQuery File Upload Plugin GAE Go Example
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2011, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-package app
-
-import (
- "bufio"
- "bytes"
- "encoding/json"
- "fmt"
- "github.com/disintegration/gift"
- "golang.org/x/net/context"
- "google.golang.org/appengine"
- "google.golang.org/appengine/memcache"
- "hash/crc32"
- "image"
- "image/gif"
- "image/jpeg"
- "image/png"
- "io"
- "log"
- "mime/multipart"
- "net/http"
- "net/url"
- "path/filepath"
- "regexp"
- "strings"
-)
-
-const (
- WEBSITE = "https://blueimp.github.io/jQuery-File-Upload/"
- MIN_FILE_SIZE = 1 // bytes
- // Max file size is memcache limit (1MB) minus key size minus overhead:
- MAX_FILE_SIZE = 999000 // bytes
- IMAGE_TYPES = "image/(gif|p?jpeg|(x-)?png)"
- ACCEPT_FILE_TYPES = IMAGE_TYPES
- THUMB_MAX_WIDTH = 80
- THUMB_MAX_HEIGHT = 80
- EXPIRATION_TIME = 300 // seconds
- // If empty, only allow redirects to the referer protocol+host.
- // Set to a regexp string for custom pattern matching:
- REDIRECT_ALLOW_TARGET = ""
-)
-
-var (
- imageTypes = regexp.MustCompile(IMAGE_TYPES)
- acceptFileTypes = regexp.MustCompile(ACCEPT_FILE_TYPES)
- thumbSuffix = "." + fmt.Sprint(THUMB_MAX_WIDTH) + "x" +
- fmt.Sprint(THUMB_MAX_HEIGHT)
-)
-
-func escape(s string) string {
- return strings.Replace(url.QueryEscape(s), "+", "%20", -1)
-}
-
-func extractKey(r *http.Request) string {
- // Use RequestURI instead of r.URL.Path, as we need the encoded form:
- path := strings.Split(r.RequestURI, "?")[0]
- // Also adjust double encoded slashes:
- return strings.Replace(path[1:], "%252F", "%2F", -1)
-}
-
-func check(err error) {
- if err != nil {
- panic(err)
- }
-}
-
-type FileInfo struct {
- Key string `json:"-"`
- ThumbnailKey string `json:"-"`
- Url string `json:"url,omitempty"`
- ThumbnailUrl string `json:"thumbnailUrl,omitempty"`
- Name string `json:"name"`
- Type string `json:"type"`
- Size int64 `json:"size"`
- Error string `json:"error,omitempty"`
- DeleteUrl string `json:"deleteUrl,omitempty"`
- DeleteType string `json:"deleteType,omitempty"`
-}
-
-func (fi *FileInfo) ValidateType() (valid bool) {
- if acceptFileTypes.MatchString(fi.Type) {
- return true
- }
- fi.Error = "Filetype not allowed"
- return false
-}
-
-func (fi *FileInfo) ValidateSize() (valid bool) {
- if fi.Size < MIN_FILE_SIZE {
- fi.Error = "File is too small"
- } else if fi.Size > MAX_FILE_SIZE {
- fi.Error = "File is too big"
- } else {
- return true
- }
- return false
-}
-
-func (fi *FileInfo) CreateUrls(r *http.Request, c context.Context) {
- u := &url.URL{
- Scheme: r.URL.Scheme,
- Host: appengine.DefaultVersionHostname(c),
- Path: "/",
- }
- uString := u.String()
- fi.Url = uString + fi.Key
- fi.DeleteUrl = fi.Url
- fi.DeleteType = "DELETE"
- if fi.ThumbnailKey != "" {
- fi.ThumbnailUrl = uString + fi.ThumbnailKey
- }
-}
-
-func (fi *FileInfo) SetKey(checksum uint32) {
- fi.Key = escape(string(fi.Type)) + "/" +
- escape(fmt.Sprint(checksum)) + "/" +
- escape(string(fi.Name))
-}
-
-func (fi *FileInfo) createThumb(buffer *bytes.Buffer, c context.Context) {
- if imageTypes.MatchString(fi.Type) {
- src, _, err := image.Decode(bytes.NewReader(buffer.Bytes()))
- check(err)
- filter := gift.New(gift.ResizeToFit(
- THUMB_MAX_WIDTH,
- THUMB_MAX_HEIGHT,
- gift.LanczosResampling,
- ))
- dst := image.NewNRGBA(filter.Bounds(src.Bounds()))
- filter.Draw(dst, src)
- buffer.Reset()
- bWriter := bufio.NewWriter(buffer)
- switch fi.Type {
- case "image/jpeg", "image/pjpeg":
- err = jpeg.Encode(bWriter, dst, nil)
- case "image/gif":
- err = gif.Encode(bWriter, dst, nil)
- default:
- err = png.Encode(bWriter, dst)
- }
- check(err)
- bWriter.Flush()
- thumbnailKey := fi.Key + thumbSuffix + filepath.Ext(fi.Name)
- item := &memcache.Item{
- Key: thumbnailKey,
- Value: buffer.Bytes(),
- }
- err = memcache.Set(c, item)
- check(err)
- fi.ThumbnailKey = thumbnailKey
- }
-}
-
-func handleUpload(r *http.Request, p *multipart.Part) (fi *FileInfo) {
- fi = &FileInfo{
- Name: p.FileName(),
- Type: p.Header.Get("Content-Type"),
- }
- if !fi.ValidateType() {
- return
- }
- defer func() {
- if rec := recover(); rec != nil {
- log.Println(rec)
- fi.Error = rec.(error).Error()
- }
- }()
- var buffer bytes.Buffer
- hash := crc32.NewIEEE()
- mw := io.MultiWriter(&buffer, hash)
- lr := &io.LimitedReader{R: p, N: MAX_FILE_SIZE + 1}
- _, err := io.Copy(mw, lr)
- check(err)
- fi.Size = MAX_FILE_SIZE + 1 - lr.N
- if !fi.ValidateSize() {
- return
- }
- fi.SetKey(hash.Sum32())
- item := &memcache.Item{
- Key: fi.Key,
- Value: buffer.Bytes(),
- }
- context := appengine.NewContext(r)
- err = memcache.Set(context, item)
- check(err)
- fi.createThumb(&buffer, context)
- fi.CreateUrls(r, context)
- return
-}
-
-func getFormValue(p *multipart.Part) string {
- var b bytes.Buffer
- io.CopyN(&b, p, int64(1<<20)) // Copy max: 1 MiB
- return b.String()
-}
-
-func handleUploads(r *http.Request) (fileInfos []*FileInfo) {
- fileInfos = make([]*FileInfo, 0)
- mr, err := r.MultipartReader()
- check(err)
- r.Form, err = url.ParseQuery(r.URL.RawQuery)
- check(err)
- part, err := mr.NextPart()
- for err == nil {
- if name := part.FormName(); name != "" {
- if part.FileName() != "" {
- fileInfos = append(fileInfos, handleUpload(r, part))
- } else {
- r.Form[name] = append(r.Form[name], getFormValue(part))
- }
- }
- part, err = mr.NextPart()
- }
- return
-}
-
-func validateRedirect(r *http.Request, redirect string) bool {
- if redirect != "" {
- var redirectAllowTarget *regexp.Regexp
- if REDIRECT_ALLOW_TARGET != "" {
- redirectAllowTarget = regexp.MustCompile(REDIRECT_ALLOW_TARGET)
- } else {
- referer := r.Referer()
- if referer == "" {
- return false
- }
- refererUrl, err := url.Parse(referer)
- if err != nil {
- return false
- }
- redirectAllowTarget = regexp.MustCompile("^" + regexp.QuoteMeta(
- refererUrl.Scheme+"://"+refererUrl.Host+"/",
- ))
- }
- return redirectAllowTarget.MatchString(redirect)
- }
- return false
-}
-
-func get(w http.ResponseWriter, r *http.Request) {
- if r.URL.Path == "/" {
- http.Redirect(w, r, WEBSITE, http.StatusFound)
- return
- }
- // Use RequestURI instead of r.URL.Path, as we need the encoded form:
- key := extractKey(r)
- parts := strings.Split(key, "/")
- if len(parts) == 3 {
- context := appengine.NewContext(r)
- item, err := memcache.Get(context, key)
- if err == nil {
- w.Header().Add("X-Content-Type-Options", "nosniff")
- contentType, _ := url.QueryUnescape(parts[0])
- if !imageTypes.MatchString(contentType) {
- contentType = "application/octet-stream"
- }
- w.Header().Add("Content-Type", contentType)
- w.Header().Add(
- "Cache-Control",
- fmt.Sprintf("public,max-age=%d", EXPIRATION_TIME),
- )
- w.Write(item.Value)
- return
- }
- }
- http.Error(w, "404 Not Found", http.StatusNotFound)
-}
-
-func post(w http.ResponseWriter, r *http.Request) {
- result := make(map[string][]*FileInfo, 1)
- result["files"] = handleUploads(r)
- b, err := json.Marshal(result)
- check(err)
- if redirect := r.FormValue("redirect"); validateRedirect(r, redirect) {
- if strings.Contains(redirect, "%s") {
- redirect = fmt.Sprintf(
- redirect,
- escape(string(b)),
- )
- }
- http.Redirect(w, r, redirect, http.StatusFound)
- return
- }
- w.Header().Set("Cache-Control", "no-cache")
- jsonType := "application/json"
- if strings.Index(r.Header.Get("Accept"), jsonType) != -1 {
- w.Header().Set("Content-Type", jsonType)
- }
- fmt.Fprintln(w, string(b))
-}
-
-func delete(w http.ResponseWriter, r *http.Request) {
- key := extractKey(r)
- parts := strings.Split(key, "/")
- if len(parts) == 3 {
- result := make(map[string]bool, 1)
- context := appengine.NewContext(r)
- err := memcache.Delete(context, key)
- if err == nil {
- result[key] = true
- contentType, _ := url.QueryUnescape(parts[0])
- if imageTypes.MatchString(contentType) {
- thumbnailKey := key + thumbSuffix + filepath.Ext(parts[2])
- err := memcache.Delete(context, thumbnailKey)
- if err == nil {
- result[thumbnailKey] = true
- }
- }
- }
- w.Header().Set("Content-Type", "application/json")
- b, err := json.Marshal(result)
- check(err)
- fmt.Fprintln(w, string(b))
- } else {
- http.Error(w, "405 Method not allowed", http.StatusMethodNotAllowed)
- }
-}
-
-func handle(w http.ResponseWriter, r *http.Request) {
- params, err := url.ParseQuery(r.URL.RawQuery)
- check(err)
- w.Header().Add("Access-Control-Allow-Origin", "*")
- w.Header().Add(
- "Access-Control-Allow-Methods",
- "OPTIONS, HEAD, GET, POST, DELETE",
- )
- w.Header().Add(
- "Access-Control-Allow-Headers",
- "Content-Type, Content-Range, Content-Disposition",
- )
- switch r.Method {
- case "OPTIONS", "HEAD":
- return
- case "GET":
- get(w, r)
- case "POST":
- if len(params["_method"]) > 0 && params["_method"][0] == "DELETE" {
- delete(w, r)
- } else {
- post(w, r)
- }
- case "DELETE":
- delete(w, r)
- default:
- http.Error(w, "501 Not Implemented", http.StatusNotImplemented)
- }
-}
-
-func init() {
- http.HandleFunc("/", handle)
-}
diff --git a/milfs/plugins/upload/server/gae-go/static/favicon.ico b/milfs/plugins/upload/server/gae-go/static/favicon.ico
deleted file mode 100644
index 1a71ea7..0000000
Binary files a/milfs/plugins/upload/server/gae-go/static/favicon.ico and /dev/null differ
diff --git a/milfs/plugins/upload/server/gae-go/static/robots.txt b/milfs/plugins/upload/server/gae-go/static/robots.txt
deleted file mode 100644
index eb05362..0000000
--- a/milfs/plugins/upload/server/gae-go/static/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow:
diff --git a/milfs/plugins/upload/server/gae-python/app.yaml b/milfs/plugins/upload/server/gae-python/app.yaml
deleted file mode 100644
index 764449b..0000000
--- a/milfs/plugins/upload/server/gae-python/app.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-application: jquery-file-upload
-version: 1
-runtime: python27
-api_version: 1
-threadsafe: true
-
-libraries:
-- name: PIL
- version: latest
-
-handlers:
-- url: /(favicon\.ico|robots\.txt)
- static_files: static/\1
- upload: static/(.*)
- expiration: '1d'
-- url: /.*
- script: main.app
diff --git a/milfs/plugins/upload/server/gae-python/main.py b/milfs/plugins/upload/server/gae-python/main.py
deleted file mode 100644
index ebae73a..0000000
--- a/milfs/plugins/upload/server/gae-python/main.py
+++ /dev/null
@@ -1,204 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# jQuery File Upload Plugin GAE Python Example
-# https://github.com/blueimp/jQuery-File-Upload
-#
-# Copyright 2011, Sebastian Tschan
-# https://blueimp.net
-#
-# Licensed under the MIT license:
-# http://www.opensource.org/licenses/MIT
-#
-
-from google.appengine.api import memcache, images
-import json
-import os
-import re
-import urllib
-import webapp2
-
-DEBUG=os.environ.get('SERVER_SOFTWARE', '').startswith('Dev')
-WEBSITE = 'https://blueimp.github.io/jQuery-File-Upload/'
-MIN_FILE_SIZE = 1 # bytes
-# Max file size is memcache limit (1MB) minus key size minus overhead:
-MAX_FILE_SIZE = 999000 # bytes
-IMAGE_TYPES = re.compile('image/(gif|p?jpeg|(x-)?png)')
-ACCEPT_FILE_TYPES = IMAGE_TYPES
-THUMB_MAX_WIDTH = 80
-THUMB_MAX_HEIGHT = 80
-THUMB_SUFFIX = '.'+str(THUMB_MAX_WIDTH)+'x'+str(THUMB_MAX_HEIGHT)+'.png'
-EXPIRATION_TIME = 300 # seconds
-# If set to None, only allow redirects to the referer protocol+host.
-# Set to a regexp for custom pattern matching against the redirect value:
-REDIRECT_ALLOW_TARGET = None
-
-class CORSHandler(webapp2.RequestHandler):
- def cors(self):
- headers = self.response.headers
- headers['Access-Control-Allow-Origin'] = '*'
- headers['Access-Control-Allow-Methods'] =\
- 'OPTIONS, HEAD, GET, POST, DELETE'
- headers['Access-Control-Allow-Headers'] =\
- 'Content-Type, Content-Range, Content-Disposition'
-
- def initialize(self, request, response):
- super(CORSHandler, self).initialize(request, response)
- self.cors()
-
- def json_stringify(self, obj):
- return json.dumps(obj, separators=(',', ':'))
-
- def options(self, *args, **kwargs):
- pass
-
-class UploadHandler(CORSHandler):
- def validate(self, file):
- if file['size'] < MIN_FILE_SIZE:
- file['error'] = 'File is too small'
- elif file['size'] > MAX_FILE_SIZE:
- file['error'] = 'File is too big'
- elif not ACCEPT_FILE_TYPES.match(file['type']):
- file['error'] = 'Filetype not allowed'
- else:
- return True
- return False
-
- def validate_redirect(self, redirect):
- if redirect:
- if REDIRECT_ALLOW_TARGET:
- return REDIRECT_ALLOW_TARGET.match(redirect)
- referer = self.request.headers['referer']
- if referer:
- from urlparse import urlparse
- parts = urlparse(referer)
- redirect_allow_target = '^' + re.escape(
- parts.scheme + '://' + parts.netloc + '/'
- )
- return re.match(redirect_allow_target, redirect)
- return False
-
- def get_file_size(self, file):
- file.seek(0, 2) # Seek to the end of the file
- size = file.tell() # Get the position of EOF
- file.seek(0) # Reset the file position to the beginning
- return size
-
- def write_blob(self, data, info):
- key = urllib.quote(info['type'].encode('utf-8'), '') +\
- '/' + str(hash(data)) +\
- '/' + urllib.quote(info['name'].encode('utf-8'), '')
- try:
- memcache.set(key, data, time=EXPIRATION_TIME)
- except: #Failed to add to memcache
- return (None, None)
- thumbnail_key = None
- if IMAGE_TYPES.match(info['type']):
- try:
- img = images.Image(image_data=data)
- img.resize(
- width=THUMB_MAX_WIDTH,
- height=THUMB_MAX_HEIGHT
- )
- thumbnail_data = img.execute_transforms()
- thumbnail_key = key + THUMB_SUFFIX
- memcache.set(
- thumbnail_key,
- thumbnail_data,
- time=EXPIRATION_TIME
- )
- except: #Failed to resize Image or add to memcache
- thumbnail_key = None
- return (key, thumbnail_key)
-
- def handle_upload(self):
- results = []
- for name, fieldStorage in self.request.POST.items():
- if type(fieldStorage) is unicode:
- continue
- result = {}
- result['name'] = urllib.unquote(fieldStorage.filename)
- result['type'] = fieldStorage.type
- result['size'] = self.get_file_size(fieldStorage.file)
- if self.validate(result):
- key, thumbnail_key = self.write_blob(
- fieldStorage.value,
- result
- )
- if key is not None:
- result['url'] = self.request.host_url + '/' + key
- result['deleteUrl'] = result['url']
- result['deleteType'] = 'DELETE'
- if thumbnail_key is not None:
- result['thumbnailUrl'] = self.request.host_url +\
- '/' + thumbnail_key
- else:
- result['error'] = 'Failed to store uploaded file.'
- results.append(result)
- return results
-
- def head(self):
- pass
-
- def get(self):
- self.redirect(WEBSITE)
-
- def post(self):
- if (self.request.get('_method') == 'DELETE'):
- return self.delete()
- result = {'files': self.handle_upload()}
- s = self.json_stringify(result)
- redirect = self.request.get('redirect')
- if self.validate_redirect(redirect):
- return self.redirect(str(
- redirect.replace('%s', urllib.quote(s, ''), 1)
- ))
- if 'application/json' in self.request.headers.get('Accept'):
- self.response.headers['Content-Type'] = 'application/json'
- self.response.write(s)
-
-class FileHandler(CORSHandler):
- def normalize(self, str):
- return urllib.quote(urllib.unquote(str), '')
-
- def get(self, content_type, data_hash, file_name):
- content_type = self.normalize(content_type)
- file_name = self.normalize(file_name)
- key = content_type + '/' + data_hash + '/' + file_name
- data = memcache.get(key)
- if data is None:
- return self.error(404)
- # Prevent browsers from MIME-sniffing the content-type:
- self.response.headers['X-Content-Type-Options'] = 'nosniff'
- content_type = urllib.unquote(content_type)
- if not IMAGE_TYPES.match(content_type):
- # Force a download dialog for non-image types:
- content_type = 'application/octet-stream'
- elif file_name.endswith(THUMB_SUFFIX):
- content_type = 'image/png'
- self.response.headers['Content-Type'] = content_type
- # Cache for the expiration time:
- self.response.headers['Cache-Control'] = 'public,max-age=%d' \
- % EXPIRATION_TIME
- self.response.write(data)
-
- def delete(self, content_type, data_hash, file_name):
- content_type = self.normalize(content_type)
- file_name = self.normalize(file_name)
- key = content_type + '/' + data_hash + '/' + file_name
- result = {key: memcache.delete(key)}
- content_type = urllib.unquote(content_type)
- if IMAGE_TYPES.match(content_type):
- thumbnail_key = key + THUMB_SUFFIX
- result[thumbnail_key] = memcache.delete(thumbnail_key)
- if 'application/json' in self.request.headers.get('Accept'):
- self.response.headers['Content-Type'] = 'application/json'
- s = self.json_stringify(result)
- self.response.write(s)
-
-app = webapp2.WSGIApplication(
- [
- ('/', UploadHandler),
- ('/(.+)/([^/]+)/([^/]+)', FileHandler)
- ],
- debug=DEBUG
-)
diff --git a/milfs/plugins/upload/server/gae-python/static/favicon.ico b/milfs/plugins/upload/server/gae-python/static/favicon.ico
deleted file mode 100644
index 1a71ea7..0000000
Binary files a/milfs/plugins/upload/server/gae-python/static/favicon.ico and /dev/null differ
diff --git a/milfs/plugins/upload/server/gae-python/static/robots.txt b/milfs/plugins/upload/server/gae-python/static/robots.txt
deleted file mode 100644
index eb05362..0000000
--- a/milfs/plugins/upload/server/gae-python/static/robots.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow:
diff --git a/milfs/plugins/upload/server/php/UploadHandler.php b/milfs/plugins/upload/server/php/UploadHandler.php
deleted file mode 100644
index 67d53b4..0000000
--- a/milfs/plugins/upload/server/php/UploadHandler.php
+++ /dev/null
@@ -1,1389 +0,0 @@
- 'The uploaded file exceeds the upload_max_filesize directive in php.ini',
- 2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form',
- 3 => 'The uploaded file was only partially uploaded',
- 4 => 'No file was uploaded',
- 6 => 'Missing a temporary folder',
- 7 => 'Failed to write file to disk',
- 8 => 'A PHP extension stopped the file upload',
- 'post_max_size' => 'The uploaded file exceeds the post_max_size directive in php.ini',
- 'max_file_size' => 'File is too big',
- 'min_file_size' => 'File is too small',
- 'accept_file_types' => 'Filetype not allowed',
- 'max_number_of_files' => 'Maximum number of files exceeded',
- 'max_width' => 'Image exceeds maximum width',
- 'min_width' => 'Image requires a minimum width',
- 'max_height' => 'Image exceeds maximum height',
- 'min_height' => 'Image requires a minimum height',
- 'abort' => 'File upload aborted',
- 'image_resize' => 'Failed to resize image'
- );
-
- protected $image_objects = array();
-
- function __construct($options = null, $initialize = true, $error_messages = null) {
- $this->response = array();
- $this->options = array(
- 'script_url' => $this->get_full_url().'/'.basename($this->get_server_var('SCRIPT_NAME')),
- 'upload_dir' => '/var/www/images_secure/files/',
- //'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/',
- 'upload_url' => $this->get_full_url().'/files/',
- 'input_stream' => 'php://input',
- 'user_dirs' => false,
- 'mkdir_mode' => 0755,
- 'param_name' => 'files_33',
- // Set the following option to 'POST', if your server does not support
- // DELETE requests. This is a parameter sent to the client:
- 'delete_type' => 'DELETE',
- 'access_control_allow_origin' => '*',
- 'access_control_allow_credentials' => false,
- 'access_control_allow_methods' => array(
- 'OPTIONS',
- 'HEAD',
- 'GET',
- 'POST',
- 'PUT',
- 'PATCH',
- 'DELETE'
- ),
- 'access_control_allow_headers' => array(
- 'Content-Type',
- 'Content-Range',
- 'Content-Disposition'
- ),
- // By default, allow redirects to the referer protocol+host:
- 'redirect_allow_target' => '/^'.preg_quote(
- parse_url($this->get_server_var('HTTP_REFERER'), PHP_URL_SCHEME)
- .'://'
- .parse_url($this->get_server_var('HTTP_REFERER'), PHP_URL_HOST)
- .'/', // Trailing slash to not match subdomains by mistake
- '/' // preg_quote delimiter param
- ).'/',
- // Enable to provide file downloads via GET requests to the PHP script:
- // 1. Set to 1 to download files via readfile method through PHP
- // 2. Set to 2 to send a X-Sendfile header for lighttpd/Apache
- // 3. Set to 3 to send a X-Accel-Redirect header for nginx
- // If set to 2 or 3, adjust the upload_url option to the base path of
- // the redirect parameter, e.g. '/files/'.
- 'download_via_php' => false,
- // Read files in chunks to avoid memory limits when download_via_php
- // is enabled, set to 0 to disable chunked reading of files:
- 'readfile_chunk_size' => 10 * 1024 * 1024, // 10 MiB
- // Defines which files can be displayed inline when downloaded:
- 'inline_file_types' => '/\.(gif|jpe?g|png)$/i',
- // Defines which files (based on their names) are accepted for upload:
- 'accept_file_types' => '/.+$/i',
- // The php.ini settings upload_max_filesize and post_max_size
- // take precedence over the following max_file_size setting:
- 'max_file_size' => null,
- 'min_file_size' => 1,
- // The maximum number of files for the upload directory:
- 'max_number_of_files' => null,
- // Defines which files are handled as image files:
- 'image_file_types' => '/\.(gif|jpe?g|png)$/i',
- // Use exif_imagetype on all files to correct file extensions:
- 'correct_image_extensions' => false,
- // Image resolution restrictions:
- 'max_width' => null,
- 'max_height' => null,
- 'min_width' => 1,
- 'min_height' => 1,
- // Set the following option to false to enable resumable uploads:
- 'discard_aborted_uploads' => true,
- // Set to 0 to use the GD library to scale and orient images,
- // set to 1 to use imagick (if installed, falls back to GD),
- // set to 2 to use the ImageMagick convert binary directly:
- 'image_library' => 1,
- // Uncomment the following to define an array of resource limits
- // for imagick:
- /*
- 'imagick_resource_limits' => array(
- imagick::RESOURCETYPE_MAP => 32,
- imagick::RESOURCETYPE_MEMORY => 32
- ),
- */
- // Command or path for to the ImageMagick convert binary:
- 'convert_bin' => 'convert',
- // Uncomment the following to add parameters in front of each
- // ImageMagick convert call (the limit constraints seem only
- // to have an effect if put in front):
- /*
- 'convert_params' => '-limit memory 32MiB -limit map 32MiB',
- */
- // Command or path for to the ImageMagick identify binary:
- 'identify_bin' => 'identify',
- 'image_versions' => array(
- // The empty image version key defines options for the original image:
- '' => array(
- // Automatically rotate images based on EXIF meta data:
- 'auto_orient' => true
- ),
- // Uncomment the following to create medium sized images:
- /*
- 'medium' => array(
- 'max_width' => 800,
- 'max_height' => 600
- ),
- */
- 'thumbnail' => array(
- // Uncomment the following to use a defined directory for the thumbnails
- // instead of a subdirectory based on the version identifier.
- // Make sure that this directory doesn't allow execution of files if you
- // don't pose any restrictions on the type of uploaded files, e.g. by
- // copying the .htaccess file from the files directory for Apache:
- //'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/thumb/',
- //'upload_url' => $this->get_full_url().'/thumb/',
- // Uncomment the following to force the max
- // dimensions and e.g. create square thumbnails:
- //'crop' => true,
- 'max_width' => 80,
- 'max_height' => 80
- )
- ),
- 'print_response' => true
- );
- if ($options) {
- $this->options = $options + $this->options;
- }
- if ($error_messages) {
- $this->error_messages = $error_messages + $this->error_messages;
- }
- if ($initialize) {
- $this->initialize();
- }
- }
-
- protected function initialize() {
- switch ($this->get_server_var('REQUEST_METHOD')) {
- case 'OPTIONS':
- case 'HEAD':
- $this->head();
- break;
- case 'GET':
- $this->get($this->options['print_response']);
- break;
- case 'PATCH':
- case 'PUT':
- case 'POST':
- $this->post($this->options['print_response']);
- break;
- case 'DELETE':
- $this->delete($this->options['print_response']);
- break;
- default:
- $this->header('HTTP/1.1 405 Method Not Allowed');
- }
- }
-
- protected function get_full_url() {
- $https = !empty($_SERVER['HTTPS']) && strcasecmp($_SERVER['HTTPS'], 'on') === 0 ||
- !empty($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
- strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') === 0;
- return
- ($https ? 'https://' : 'http://').
- (!empty($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : '').
- (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME'].
- ($https && $_SERVER['SERVER_PORT'] === 443 ||
- $_SERVER['SERVER_PORT'] === 80 ? '' : ':'.$_SERVER['SERVER_PORT']))).
- substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/'));
- }
-
- protected function get_user_id() {
- @session_start();
- return session_id();
- }
-
- protected function get_user_path() {
- if ($this->options['user_dirs']) {
- return $this->get_user_id().'/';
- }
- return '';
- }
-
- protected function get_upload_path($file_name = null, $version = null) {
- $file_name = $file_name ? $file_name : '';
- if (empty($version)) {
- $version_path = '';
- } else {
- $version_dir = @$this->options['image_versions'][$version]['upload_dir'];
- if ($version_dir) {
- return $version_dir.$this->get_user_path().$file_name;
- }
- $version_path = $version.'/';
- }
- return $this->options['upload_dir'].$this->get_user_path()
- .$version_path.$file_name;
- }
-
- protected function get_query_separator($url) {
- return strpos($url, '?') === false ? '?' : '&';
- }
-
- protected function get_download_url($file_name, $version = null, $direct = false) {
- if (!$direct && $this->options['download_via_php']) {
- $url = $this->options['script_url']
- .$this->get_query_separator($this->options['script_url'])
- .$this->get_singular_param_name()
- .'='.rawurlencode($file_name);
- if ($version) {
- $url .= '&version='.rawurlencode($version);
- }
- return $url.'&download=1';
- }
- if (empty($version)) {
- $version_path = '';
- } else {
- $version_url = @$this->options['image_versions'][$version]['upload_url'];
- if ($version_url) {
- return $version_url.$this->get_user_path().rawurlencode($file_name);
- }
- $version_path = rawurlencode($version).'/';
- }
- return $this->options['upload_url'].$this->get_user_path()
- .$version_path.rawurlencode($file_name);
- }
-
- protected function set_additional_file_properties($file) {
- $file->deleteUrl = $this->options['script_url']
- .$this->get_query_separator($this->options['script_url'])
- .$this->get_singular_param_name()
- .'='.rawurlencode($file->name);
- $file->deleteType = $this->options['delete_type'];
- if ($file->deleteType !== 'DELETE') {
- $file->deleteUrl .= '&_method=DELETE';
- }
- if ($this->options['access_control_allow_credentials']) {
- $file->deleteWithCredentials = true;
- }
- }
-
- // Fix for overflowing signed 32 bit integers,
- // works for sizes up to 2^32-1 bytes (4 GiB - 1):
- protected function fix_integer_overflow($size) {
- if ($size < 0) {
- $size += 2.0 * (PHP_INT_MAX + 1);
- }
- return $size;
- }
-
- protected function get_file_size($file_path, $clear_stat_cache = false) {
- if ($clear_stat_cache) {
- if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
- clearstatcache(true, $file_path);
- } else {
- clearstatcache();
- }
- }
- return $this->fix_integer_overflow(filesize($file_path));
- }
-
- protected function is_valid_file_object($file_name) {
- $file_path = $this->get_upload_path($file_name);
- if (is_file($file_path) && $file_name[0] !== '.') {
- return true;
- }
- return false;
- }
-
- protected function get_file_object($file_name) {
- if ($this->is_valid_file_object($file_name)) {
- $file = new \stdClass();
- $file->name = $file_name;
- $file->size = $this->get_file_size(
- $this->get_upload_path($file_name)
- );
- $file->url = $this->get_download_url($file->name);
- foreach($this->options['image_versions'] as $version => $options) {
- if (!empty($version)) {
- if (is_file($this->get_upload_path($file_name, $version))) {
- $file->{$version.'Url'} = $this->get_download_url(
- $file->name,
- $version
- );
- }
- }
- }
- $this->set_additional_file_properties($file);
- return $file;
- }
- return null;
- }
-
- protected function get_file_objects($iteration_method = 'get_file_object') {
- $upload_dir = $this->get_upload_path();
- if (!is_dir($upload_dir)) {
- return array();
- }
- return array_values(array_filter(array_map(
- array($this, $iteration_method),
- scandir($upload_dir)
- )));
- }
-
- protected function count_file_objects() {
- return count($this->get_file_objects('is_valid_file_object'));
- }
-
- protected function get_error_message($error) {
- return isset($this->error_messages[$error]) ?
- $this->error_messages[$error] : $error;
- }
-
- function get_config_bytes($val) {
- $val = trim($val);
- $last = strtolower($val[strlen($val)-1]);
- switch($last) {
- case 'g':
- $val *= 1024;
- case 'm':
- $val *= 1024;
- case 'k':
- $val *= 1024;
- }
- return $this->fix_integer_overflow($val);
- }
-
- protected function validate($uploaded_file, $file, $error, $index) {
- if ($error) {
- $file->error = $this->get_error_message($error);
- return false;
- }
- $content_length = $this->fix_integer_overflow(
- (int)$this->get_server_var('CONTENT_LENGTH')
- );
- $post_max_size = $this->get_config_bytes(ini_get('post_max_size'));
- if ($post_max_size && ($content_length > $post_max_size)) {
- $file->error = $this->get_error_message('post_max_size');
- return false;
- }
- if (!preg_match($this->options['accept_file_types'], $file->name)) {
- $file->error = $this->get_error_message('accept_file_types');
- return false;
- }
- if ($uploaded_file && is_uploaded_file($uploaded_file)) {
- $file_size = $this->get_file_size($uploaded_file);
- } else {
- $file_size = $content_length;
- }
- if ($this->options['max_file_size'] && (
- $file_size > $this->options['max_file_size'] ||
- $file->size > $this->options['max_file_size'])
- ) {
- $file->error = $this->get_error_message('max_file_size');
- return false;
- }
- if ($this->options['min_file_size'] &&
- $file_size < $this->options['min_file_size']) {
- $file->error = $this->get_error_message('min_file_size');
- return false;
- }
- if (is_int($this->options['max_number_of_files']) &&
- ($this->count_file_objects() >= $this->options['max_number_of_files']) &&
- // Ignore additional chunks of existing files:
- !is_file($this->get_upload_path($file->name))) {
- $file->error = $this->get_error_message('max_number_of_files');
- return false;
- }
- $max_width = @$this->options['max_width'];
- $max_height = @$this->options['max_height'];
- $min_width = @$this->options['min_width'];
- $min_height = @$this->options['min_height'];
- if (($max_width || $max_height || $min_width || $min_height)
- && preg_match($this->options['image_file_types'], $file->name)) {
- list($img_width, $img_height) = $this->get_image_size($uploaded_file);
-
- // If we are auto rotating the image by default, do the checks on
- // the correct orientation
- if (
- @$this->options['image_versions']['']['auto_orient'] &&
- function_exists('exif_read_data') &&
- ($exif = @exif_read_data($uploaded_file)) &&
- (((int) @$exif['Orientation']) >= 5 )
- ) {
- $tmp = $img_width;
- $img_width = $img_height;
- $img_height = $tmp;
- unset($tmp);
- }
-
- }
- if (!empty($img_width)) {
- if ($max_width && $img_width > $max_width) {
- $file->error = $this->get_error_message('max_width');
- return false;
- }
- if ($max_height && $img_height > $max_height) {
- $file->error = $this->get_error_message('max_height');
- return false;
- }
- if ($min_width && $img_width < $min_width) {
- $file->error = $this->get_error_message('min_width');
- return false;
- }
- if ($min_height && $img_height < $min_height) {
- $file->error = $this->get_error_message('min_height');
- return false;
- }
- }
- return true;
- }
-
- protected function upcount_name_callback($matches) {
- $index = isset($matches[1]) ? ((int)$matches[1]) + 1 : 1;
- $ext = isset($matches[2]) ? $matches[2] : '';
- return ' ('.$index.')'.$ext;
- }
-
- protected function upcount_name($name) {
- return preg_replace_callback(
- '/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/',
- array($this, 'upcount_name_callback'),
- $name,
- 1
- );
- }
-
- protected function get_unique_filename($file_path, $name, $size, $type, $error,
- $index, $content_range) {
- while(is_dir($this->get_upload_path($name))) {
- $name = $this->upcount_name($name);
- }
- // Keep an existing filename if this is part of a chunked upload:
- $uploaded_bytes = $this->fix_integer_overflow((int)$content_range[1]);
- while(is_file($this->get_upload_path($name))) {
- if ($uploaded_bytes === $this->get_file_size(
- $this->get_upload_path($name))) {
- break;
- }
- $name = $this->upcount_name($name);
- }
- return $name;
- }
-
- protected function fix_file_extension($file_path, $name, $size, $type, $error,
- $index, $content_range) {
- // Add missing file extension for known image types:
- if (strpos($name, '.') === false &&
- preg_match('/^image\/(gif|jpe?g|png)/', $type, $matches)) {
- $name .= '.'.$matches[1];
- }
- if ($this->options['correct_image_extensions'] &&
- function_exists('exif_imagetype')) {
- switch(@exif_imagetype($file_path)){
- case IMAGETYPE_JPEG:
- $extensions = array('jpg', 'jpeg');
- break;
- case IMAGETYPE_PNG:
- $extensions = array('png');
- break;
- case IMAGETYPE_GIF:
- $extensions = array('gif');
- break;
- }
- // Adjust incorrect image file extensions:
- if (!empty($extensions)) {
- $parts = explode('.', $name);
- $extIndex = count($parts) - 1;
- $ext = strtolower(@$parts[$extIndex]);
- if (!in_array($ext, $extensions)) {
- $parts[$extIndex] = $extensions[0];
- $name = implode('.', $parts);
- }
- }
- }
- return $name;
- }
-
- protected function trim_file_name($file_path, $name, $size, $type, $error,
- $index, $content_range) {
- // Remove path information and dots around the filename, to prevent uploading
- // into different directories or replacing hidden system files.
- // Also remove control characters and spaces (\x00..\x20) around the filename:
- $name = trim(basename(stripslashes($name)), ".\x00..\x20");
- // Use a timestamp for empty filenames:
- if (!$name) {
- $name = str_replace('.', '-', microtime(true));
- }
- return $name;
- }
-
- protected function get_file_name($file_path, $name, $size, $type, $error,
- $index, $content_range) {
- $name = $this->trim_file_name($file_path, $name, $size, $type, $error,
- $index, $content_range);
- return $this->get_unique_filename(
- $file_path,
- $this->fix_file_extension($file_path, $name, $size, $type, $error,
- $index, $content_range),
- $size,
- $type,
- $error,
- $index,
- $content_range
- );
- }
-
- protected function get_scaled_image_file_paths($file_name, $version) {
- $file_path = $this->get_upload_path($file_name);
- if (!empty($version)) {
- $version_dir = $this->get_upload_path(null, $version);
- if (!is_dir($version_dir)) {
- mkdir($version_dir, $this->options['mkdir_mode'], true);
- }
- $new_file_path = $version_dir.'/'.$file_name;
- } else {
- $new_file_path = $file_path;
- }
- return array($file_path, $new_file_path);
- }
-
- protected function gd_get_image_object($file_path, $func, $no_cache = false) {
- if (empty($this->image_objects[$file_path]) || $no_cache) {
- $this->gd_destroy_image_object($file_path);
- $this->image_objects[$file_path] = $func($file_path);
- }
- return $this->image_objects[$file_path];
- }
-
- protected function gd_set_image_object($file_path, $image) {
- $this->gd_destroy_image_object($file_path);
- $this->image_objects[$file_path] = $image;
- }
-
- protected function gd_destroy_image_object($file_path) {
- $image = (isset($this->image_objects[$file_path])) ? $this->image_objects[$file_path] : null ;
- return $image && imagedestroy($image);
- }
-
- protected function gd_imageflip($image, $mode) {
- if (function_exists('imageflip')) {
- return imageflip($image, $mode);
- }
- $new_width = $src_width = imagesx($image);
- $new_height = $src_height = imagesy($image);
- $new_img = imagecreatetruecolor($new_width, $new_height);
- $src_x = 0;
- $src_y = 0;
- switch ($mode) {
- case '1': // flip on the horizontal axis
- $src_y = $new_height - 1;
- $src_height = -$new_height;
- break;
- case '2': // flip on the vertical axis
- $src_x = $new_width - 1;
- $src_width = -$new_width;
- break;
- case '3': // flip on both axes
- $src_y = $new_height - 1;
- $src_height = -$new_height;
- $src_x = $new_width - 1;
- $src_width = -$new_width;
- break;
- default:
- return $image;
- }
- imagecopyresampled(
- $new_img,
- $image,
- 0,
- 0,
- $src_x,
- $src_y,
- $new_width,
- $new_height,
- $src_width,
- $src_height
- );
- return $new_img;
- }
-
- protected function gd_orient_image($file_path, $src_img) {
- if (!function_exists('exif_read_data')) {
- return false;
- }
- $exif = @exif_read_data($file_path);
- if ($exif === false) {
- return false;
- }
- $orientation = (int)@$exif['Orientation'];
- if ($orientation < 2 || $orientation > 8) {
- return false;
- }
- switch ($orientation) {
- case 2:
- $new_img = $this->gd_imageflip(
- $src_img,
- defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2
- );
- break;
- case 3:
- $new_img = imagerotate($src_img, 180, 0);
- break;
- case 4:
- $new_img = $this->gd_imageflip(
- $src_img,
- defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1
- );
- break;
- case 5:
- $tmp_img = $this->gd_imageflip(
- $src_img,
- defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1
- );
- $new_img = imagerotate($tmp_img, 270, 0);
- imagedestroy($tmp_img);
- break;
- case 6:
- $new_img = imagerotate($src_img, 270, 0);
- break;
- case 7:
- $tmp_img = $this->gd_imageflip(
- $src_img,
- defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2
- );
- $new_img = imagerotate($tmp_img, 270, 0);
- imagedestroy($tmp_img);
- break;
- case 8:
- $new_img = imagerotate($src_img, 90, 0);
- break;
- default:
- return false;
- }
- $this->gd_set_image_object($file_path, $new_img);
- return true;
- }
-
- protected function gd_create_scaled_image($file_name, $version, $options) {
- if (!function_exists('imagecreatetruecolor')) {
- error_log('Function not found: imagecreatetruecolor');
- return false;
- }
- list($file_path, $new_file_path) =
- $this->get_scaled_image_file_paths($file_name, $version);
- $type = strtolower(substr(strrchr($file_name, '.'), 1));
- switch ($type) {
- case 'jpg':
- case 'jpeg':
- $src_func = 'imagecreatefromjpeg';
- $write_func = 'imagejpeg';
- $image_quality = isset($options['jpeg_quality']) ?
- $options['jpeg_quality'] : 75;
- break;
- case 'gif':
- $src_func = 'imagecreatefromgif';
- $write_func = 'imagegif';
- $image_quality = null;
- break;
- case 'png':
- $src_func = 'imagecreatefrompng';
- $write_func = 'imagepng';
- $image_quality = isset($options['png_quality']) ?
- $options['png_quality'] : 9;
- break;
- default:
- return false;
- }
- $src_img = $this->gd_get_image_object(
- $file_path,
- $src_func,
- !empty($options['no_cache'])
- );
- $image_oriented = false;
- if (!empty($options['auto_orient']) && $this->gd_orient_image(
- $file_path,
- $src_img
- )) {
- $image_oriented = true;
- $src_img = $this->gd_get_image_object(
- $file_path,
- $src_func
- );
- }
- $max_width = $img_width = imagesx($src_img);
- $max_height = $img_height = imagesy($src_img);
- if (!empty($options['max_width'])) {
- $max_width = $options['max_width'];
- }
- if (!empty($options['max_height'])) {
- $max_height = $options['max_height'];
- }
- $scale = min(
- $max_width / $img_width,
- $max_height / $img_height
- );
- if ($scale >= 1) {
- if ($image_oriented) {
- return $write_func($src_img, $new_file_path, $image_quality);
- }
- if ($file_path !== $new_file_path) {
- return copy($file_path, $new_file_path);
- }
- return true;
- }
- if (empty($options['crop'])) {
- $new_width = $img_width * $scale;
- $new_height = $img_height * $scale;
- $dst_x = 0;
- $dst_y = 0;
- $new_img = imagecreatetruecolor($new_width, $new_height);
- } else {
- if (($img_width / $img_height) >= ($max_width / $max_height)) {
- $new_width = $img_width / ($img_height / $max_height);
- $new_height = $max_height;
- } else {
- $new_width = $max_width;
- $new_height = $img_height / ($img_width / $max_width);
- }
- $dst_x = 0 - ($new_width - $max_width) / 2;
- $dst_y = 0 - ($new_height - $max_height) / 2;
- $new_img = imagecreatetruecolor($max_width, $max_height);
- }
- // Handle transparency in GIF and PNG images:
- switch ($type) {
- case 'gif':
- case 'png':
- imagecolortransparent($new_img, imagecolorallocate($new_img, 0, 0, 0));
- case 'png':
- imagealphablending($new_img, false);
- imagesavealpha($new_img, true);
- break;
- }
- $success = imagecopyresampled(
- $new_img,
- $src_img,
- $dst_x,
- $dst_y,
- 0,
- 0,
- $new_width,
- $new_height,
- $img_width,
- $img_height
- ) && $write_func($new_img, $new_file_path, $image_quality);
- $this->gd_set_image_object($file_path, $new_img);
- return $success;
- }
-
- protected function imagick_get_image_object($file_path, $no_cache = false) {
- if (empty($this->image_objects[$file_path]) || $no_cache) {
- $this->imagick_destroy_image_object($file_path);
- $image = new \Imagick();
- if (!empty($this->options['imagick_resource_limits'])) {
- foreach ($this->options['imagick_resource_limits'] as $type => $limit) {
- $image->setResourceLimit($type, $limit);
- }
- }
- $image->readImage($file_path);
- $this->image_objects[$file_path] = $image;
- }
- return $this->image_objects[$file_path];
- }
-
- protected function imagick_set_image_object($file_path, $image) {
- $this->imagick_destroy_image_object($file_path);
- $this->image_objects[$file_path] = $image;
- }
-
- protected function imagick_destroy_image_object($file_path) {
- $image = (isset($this->image_objects[$file_path])) ? $this->image_objects[$file_path] : null ;
- return $image && $image->destroy();
- }
-
- protected function imagick_orient_image($image) {
- $orientation = $image->getImageOrientation();
- $background = new \ImagickPixel('none');
- switch ($orientation) {
- case \imagick::ORIENTATION_TOPRIGHT: // 2
- $image->flopImage(); // horizontal flop around y-axis
- break;
- case \imagick::ORIENTATION_BOTTOMRIGHT: // 3
- $image->rotateImage($background, 180);
- break;
- case \imagick::ORIENTATION_BOTTOMLEFT: // 4
- $image->flipImage(); // vertical flip around x-axis
- break;
- case \imagick::ORIENTATION_LEFTTOP: // 5
- $image->flopImage(); // horizontal flop around y-axis
- $image->rotateImage($background, 270);
- break;
- case \imagick::ORIENTATION_RIGHTTOP: // 6
- $image->rotateImage($background, 90);
- break;
- case \imagick::ORIENTATION_RIGHTBOTTOM: // 7
- $image->flipImage(); // vertical flip around x-axis
- $image->rotateImage($background, 270);
- break;
- case \imagick::ORIENTATION_LEFTBOTTOM: // 8
- $image->rotateImage($background, 270);
- break;
- default:
- return false;
- }
- $image->setImageOrientation(\imagick::ORIENTATION_TOPLEFT); // 1
- return true;
- }
-
- protected function imagick_create_scaled_image($file_name, $version, $options) {
- list($file_path, $new_file_path) =
- $this->get_scaled_image_file_paths($file_name, $version);
- $image = $this->imagick_get_image_object(
- $file_path,
- !empty($options['crop']) || !empty($options['no_cache'])
- );
- if ($image->getImageFormat() === 'GIF') {
- // Handle animated GIFs:
- $images = $image->coalesceImages();
- foreach ($images as $frame) {
- $image = $frame;
- $this->imagick_set_image_object($file_name, $image);
- break;
- }
- }
- $image_oriented = false;
- if (!empty($options['auto_orient'])) {
- $image_oriented = $this->imagick_orient_image($image);
- }
- $new_width = $max_width = $img_width = $image->getImageWidth();
- $new_height = $max_height = $img_height = $image->getImageHeight();
- if (!empty($options['max_width'])) {
- $new_width = $max_width = $options['max_width'];
- }
- if (!empty($options['max_height'])) {
- $new_height = $max_height = $options['max_height'];
- }
- if (!($image_oriented || $max_width < $img_width || $max_height < $img_height)) {
- if ($file_path !== $new_file_path) {
- return copy($file_path, $new_file_path);
- }
- return true;
- }
- $crop = !empty($options['crop']);
- if ($crop) {
- $x = 0;
- $y = 0;
- if (($img_width / $img_height) >= ($max_width / $max_height)) {
- $new_width = 0; // Enables proportional scaling based on max_height
- $x = ($img_width / ($img_height / $max_height) - $max_width) / 2;
- } else {
- $new_height = 0; // Enables proportional scaling based on max_width
- $y = ($img_height / ($img_width / $max_width) - $max_height) / 2;
- }
- }
- $success = $image->resizeImage(
- $new_width,
- $new_height,
- isset($options['filter']) ? $options['filter'] : \imagick::FILTER_LANCZOS,
- isset($options['blur']) ? $options['blur'] : 1,
- $new_width && $new_height // fit image into constraints if not to be cropped
- );
- if ($success && $crop) {
- $success = $image->cropImage(
- $max_width,
- $max_height,
- $x,
- $y
- );
- if ($success) {
- $success = $image->setImagePage($max_width, $max_height, 0, 0);
- }
- }
- $type = strtolower(substr(strrchr($file_name, '.'), 1));
- switch ($type) {
- case 'jpg':
- case 'jpeg':
- if (!empty($options['jpeg_quality'])) {
- $image->setImageCompression(\imagick::COMPRESSION_JPEG);
- $image->setImageCompressionQuality($options['jpeg_quality']);
- }
- break;
- }
- if (!empty($options['strip'])) {
- $image->stripImage();
- }
- return $success && $image->writeImage($new_file_path);
- }
-
- protected function imagemagick_create_scaled_image($file_name, $version, $options) {
- list($file_path, $new_file_path) =
- $this->get_scaled_image_file_paths($file_name, $version);
- $resize = @$options['max_width']
- .(empty($options['max_height']) ? '' : 'X'.$options['max_height']);
- if (!$resize && empty($options['auto_orient'])) {
- if ($file_path !== $new_file_path) {
- return copy($file_path, $new_file_path);
- }
- return true;
- }
- $cmd = $this->options['convert_bin'];
- if (!empty($this->options['convert_params'])) {
- $cmd .= ' '.$this->options['convert_params'];
- }
- $cmd .= ' '.escapeshellarg($file_path);
- if (!empty($options['auto_orient'])) {
- $cmd .= ' -auto-orient';
- }
- if ($resize) {
- // Handle animated GIFs:
- $cmd .= ' -coalesce';
- if (empty($options['crop'])) {
- $cmd .= ' -resize '.escapeshellarg($resize.'>');
- } else {
- $cmd .= ' -resize '.escapeshellarg($resize.'^');
- $cmd .= ' -gravity center';
- $cmd .= ' -crop '.escapeshellarg($resize.'+0+0');
- }
- // Make sure the page dimensions are correct (fixes offsets of animated GIFs):
- $cmd .= ' +repage';
- }
- if (!empty($options['convert_params'])) {
- $cmd .= ' '.$options['convert_params'];
- }
- $cmd .= ' '.escapeshellarg($new_file_path);
- exec($cmd, $output, $error);
- if ($error) {
- error_log(implode('\n', $output));
- return false;
- }
- return true;
- }
-
- protected function get_image_size($file_path) {
- if ($this->options['image_library']) {
- if (extension_loaded('imagick')) {
- $image = new \Imagick();
- try {
- if (@$image->pingImage($file_path)) {
- $dimensions = array($image->getImageWidth(), $image->getImageHeight());
- $image->destroy();
- return $dimensions;
- }
- return false;
- } catch (\Exception $e) {
- error_log($e->getMessage());
- }
- }
- if ($this->options['image_library'] === 2) {
- $cmd = $this->options['identify_bin'];
- $cmd .= ' -ping '.escapeshellarg($file_path);
- exec($cmd, $output, $error);
- if (!$error && !empty($output)) {
- // image.jpg JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 465KB 0.000u 0:00.000
- $infos = preg_split('/\s+/', substr($output[0], strlen($file_path)));
- $dimensions = preg_split('/x/', $infos[2]);
- return $dimensions;
- }
- return false;
- }
- }
- if (!function_exists('getimagesize')) {
- error_log('Function not found: getimagesize');
- return false;
- }
- return @getimagesize($file_path);
- }
-
- protected function create_scaled_image($file_name, $version, $options) {
- if ($this->options['image_library'] === 2) {
- return $this->imagemagick_create_scaled_image($file_name, $version, $options);
- }
- if ($this->options['image_library'] && extension_loaded('imagick')) {
- return $this->imagick_create_scaled_image($file_name, $version, $options);
- }
- return $this->gd_create_scaled_image($file_name, $version, $options);
- }
-
- protected function destroy_image_object($file_path) {
- if ($this->options['image_library'] && extension_loaded('imagick')) {
- return $this->imagick_destroy_image_object($file_path);
- }
- }
-
- protected function is_valid_image_file($file_path) {
- if (!preg_match($this->options['image_file_types'], $file_path)) {
- return false;
- }
- if (function_exists('exif_imagetype')) {
- return @exif_imagetype($file_path);
- }
- $image_info = $this->get_image_size($file_path);
- return $image_info && $image_info[0] && $image_info[1];
- }
-
- protected function handle_image_file($file_path, $file) {
- $failed_versions = array();
- foreach($this->options['image_versions'] as $version => $options) {
- if ($this->create_scaled_image($file->name, $version, $options)) {
- if (!empty($version)) {
- $file->{$version.'Url'} = $this->get_download_url(
- $file->name,
- $version
- );
- } else {
- $file->size = $this->get_file_size($file_path, true);
- }
- } else {
- $failed_versions[] = $version ? $version : 'original';
- }
- }
- if (count($failed_versions)) {
- $file->error = $this->get_error_message('image_resize')
- .' ('.implode($failed_versions,', ').')';
- }
- // Free memory:
- $this->destroy_image_object($file_path);
- }
-
- protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
- $index = null, $content_range = null) {
- $file = new \stdClass();
- $file->name = $this->get_file_name($uploaded_file, $name, $size, $type, $error,
- $index, $content_range);
- $file->size = $this->fix_integer_overflow((int)$size);
- $file->type = $type;
- if ($this->validate($uploaded_file, $file, $error, $index)) {
- $this->handle_form_data($file, $index);
- $upload_dir = $this->get_upload_path();
- if (!is_dir($upload_dir)) {
- mkdir($upload_dir, $this->options['mkdir_mode'], true);
- }
- $file_path = $this->get_upload_path($file->name);
- $append_file = $content_range && is_file($file_path) &&
- $file->size > $this->get_file_size($file_path);
- if ($uploaded_file && is_uploaded_file($uploaded_file)) {
- // multipart/formdata uploads (POST method uploads)
- if ($append_file) {
- file_put_contents(
- $file_path,
- fopen($uploaded_file, 'r'),
- FILE_APPEND
- );
- } else {
- move_uploaded_file($uploaded_file, $file_path);
- }
- } else {
- // Non-multipart uploads (PUT method support)
- file_put_contents(
- $file_path,
- fopen($this->options['input_stream'], 'r'),
- $append_file ? FILE_APPEND : 0
- );
- }
- $file_size = $this->get_file_size($file_path, $append_file);
- if ($file_size === $file->size) {
- $file->url = $this->get_download_url($file->name);
- if ($this->is_valid_image_file($file_path)) {
- $this->handle_image_file($file_path, $file);
- }
- } else {
- $file->size = $file_size;
- if (!$content_range && $this->options['discard_aborted_uploads']) {
- unlink($file_path);
- $file->error = $this->get_error_message('abort');
- }
- }
- $this->set_additional_file_properties($file);
- }
- return $file;
- }
-
- protected function readfile($file_path) {
- $file_size = $this->get_file_size($file_path);
- $chunk_size = $this->options['readfile_chunk_size'];
- if ($chunk_size && $file_size > $chunk_size) {
- $handle = fopen($file_path, 'rb');
- while (!feof($handle)) {
- echo fread($handle, $chunk_size);
- @ob_flush();
- @flush();
- }
- fclose($handle);
- return $file_size;
- }
- return readfile($file_path);
- }
-
- protected function body($str) {
- echo $str;
- }
-
- protected function header($str) {
- header($str);
- }
-
- protected function get_upload_data($id) {
- return @$_FILES[$id];
- }
-
- protected function get_post_param($id) {
- return @$_POST[$id];
- }
-
- protected function get_query_param($id) {
- return @$_GET[$id];
- }
-
- protected function get_server_var($id) {
- return @$_SERVER[$id];
- }
-
- protected function handle_form_data($file, $index) {
- // Handle form data, e.g. $_POST['description'][$index]
- }
-
- protected function get_version_param() {
- return basename(stripslashes($this->get_query_param('version')));
- }
-
- protected function get_singular_param_name() {
- return substr($this->options['param_name'], 0, -1);
- }
-
- protected function get_file_name_param() {
- $name = $this->get_singular_param_name();
- return basename(stripslashes($this->get_query_param($name)));
- }
-
- protected function get_file_names_params() {
- $params = $this->get_query_param($this->options['param_name']);
- if (!$params) {
- return null;
- }
- foreach ($params as $key => $value) {
- $params[$key] = basename(stripslashes($value));
- }
- return $params;
- }
-
- protected function get_file_type($file_path) {
- switch (strtolower(pathinfo($file_path, PATHINFO_EXTENSION))) {
- case 'jpeg':
- case 'jpg':
- return 'image/jpeg';
- case 'png':
- return 'image/png';
- case 'gif':
- return 'image/gif';
- default:
- return '';
- }
- }
-
- protected function download() {
- switch ($this->options['download_via_php']) {
- case 1:
- $redirect_header = null;
- break;
- case 2:
- $redirect_header = 'X-Sendfile';
- break;
- case 3:
- $redirect_header = 'X-Accel-Redirect';
- break;
- default:
- return $this->header('HTTP/1.1 403 Forbidden');
- }
- $file_name = $this->get_file_name_param();
- if (!$this->is_valid_file_object($file_name)) {
- return $this->header('HTTP/1.1 404 Not Found');
- }
- if ($redirect_header) {
- return $this->header(
- $redirect_header.': '.$this->get_download_url(
- $file_name,
- $this->get_version_param(),
- true
- )
- );
- }
- $file_path = $this->get_upload_path($file_name, $this->get_version_param());
- // Prevent browsers from MIME-sniffing the content-type:
- $this->header('X-Content-Type-Options: nosniff');
- if (!preg_match($this->options['inline_file_types'], $file_name)) {
- $this->header('Content-Type: application/octet-stream');
- $this->header('Content-Disposition: attachment; filename="'.$file_name.'"');
- } else {
- $this->header('Content-Type: '.$this->get_file_type($file_path));
- $this->header('Content-Disposition: inline; filename="'.$file_name.'"');
- }
- $this->header('Content-Length: '.$this->get_file_size($file_path));
- $this->header('Last-Modified: '.gmdate('D, d M Y H:i:s T', filemtime($file_path)));
- $this->readfile($file_path);
- }
-
- protected function send_content_type_header() {
- $this->header('Vary: Accept');
- if (strpos($this->get_server_var('HTTP_ACCEPT'), 'application/json') !== false) {
- $this->header('Content-type: application/json');
- } else {
- $this->header('Content-type: text/plain');
- }
- }
-
- protected function send_access_control_headers() {
- $this->header('Access-Control-Allow-Origin: '.$this->options['access_control_allow_origin']);
- $this->header('Access-Control-Allow-Credentials: '
- .($this->options['access_control_allow_credentials'] ? 'true' : 'false'));
- $this->header('Access-Control-Allow-Methods: '
- .implode(', ', $this->options['access_control_allow_methods']));
- $this->header('Access-Control-Allow-Headers: '
- .implode(', ', $this->options['access_control_allow_headers']));
- }
-
- public function generate_response($content, $print_response = true) {
- $this->response = $content;
- if ($print_response) {
- $json = json_encode($content);
- $redirect = stripslashes($this->get_post_param('redirect'));
- if ($redirect && preg_match($this->options['redirect_allow_target'], $redirect)) {
- $this->header('Location: '.sprintf($redirect, rawurlencode($json)));
- return;
- }
- $this->head();
- if ($this->get_server_var('HTTP_CONTENT_RANGE')) {
- $files = isset($content[$this->options['param_name']]) ?
- $content[$this->options['param_name']] : null;
- if ($files && is_array($files) && is_object($files[0]) && $files[0]->size) {
- $this->header('Range: 0-'.(
- $this->fix_integer_overflow((int)$files[0]->size) - 1
- ));
- }
- }
- $this->body($json);
- }
- return $content;
- }
-
- public function get_response () {
- return $this->response;
- }
-
- public function head() {
- $this->header('Pragma: no-cache');
- $this->header('Cache-Control: no-store, no-cache, must-revalidate');
- $this->header('Content-Disposition: inline; filename="files.json"');
- // Prevent Internet Explorer from MIME-sniffing the content-type:
- $this->header('X-Content-Type-Options: nosniff');
- if ($this->options['access_control_allow_origin']) {
- $this->send_access_control_headers();
- }
- $this->send_content_type_header();
- }
-
- public function get($print_response = true) {
- if ($print_response && $this->get_query_param('download')) {
- return $this->download();
- }
- $file_name = $this->get_file_name_param();
- if ($file_name) {
- $response = array(
- $this->get_singular_param_name() => $this->get_file_object($file_name)
- );
- } else {
- $response = array(
- $this->options['param_name'] => $this->get_file_objects()
- );
- }
- return $this->generate_response($response, $print_response);
- }
-
- public function post($print_response = true) {
- if ($this->get_query_param('_method') === 'DELETE') {
- return $this->delete($print_response);
- }
- $upload = $this->get_upload_data($this->options['param_name']);
- // Parse the Content-Disposition header, if available:
- $content_disposition_header = $this->get_server_var('HTTP_CONTENT_DISPOSITION');
- $file_name = $content_disposition_header ?
- rawurldecode(preg_replace(
- '/(^[^"]+")|("$)/',
- '',
- $content_disposition_header
- )) : null;
- // Parse the Content-Range header, which has the following form:
- // Content-Range: bytes 0-524287/2000000
- $content_range_header = $this->get_server_var('HTTP_CONTENT_RANGE');
- $content_range = $content_range_header ?
- preg_split('/[^0-9]+/', $content_range_header) : null;
- $size = $content_range ? $content_range[3] : null;
- $files = array();
- if ($upload) {
- if (is_array($upload['tmp_name'])) {
- // param_name is an array identifier like "files[]",
- // $upload is a multi-dimensional array:
- foreach ($upload['tmp_name'] as $index => $value) {
- $files[] = $this->handle_file_upload(
- $upload['tmp_name'][$index],
- $file_name ? $file_name : $upload['name'][$index],
- $size ? $size : $upload['size'][$index],
- $upload['type'][$index],
- $upload['error'][$index],
- $index,
- $content_range
- );
- }
- } else {
- // param_name is a single object identifier like "file",
- // $upload is a one-dimensional array:
- $files[] = $this->handle_file_upload(
- isset($upload['tmp_name']) ? $upload['tmp_name'] : null,
- $file_name ? $file_name : (isset($upload['name']) ?
- $upload['name'] : null),
- $size ? $size : (isset($upload['size']) ?
- $upload['size'] : $this->get_server_var('CONTENT_LENGTH')),
- isset($upload['type']) ?
- $upload['type'] : $this->get_server_var('CONTENT_TYPE'),
- isset($upload['error']) ? $upload['error'] : null,
- null,
- $content_range
- );
- }
- }
- $response = array($this->options['param_name'] => $files);
- return $this->generate_response($response, $print_response);
- }
-
- public function delete($print_response = true) {
- $file_names = $this->get_file_names_params();
- if (empty($file_names)) {
- $file_names = array($this->get_file_name_param());
- }
- $response = array();
- foreach($file_names as $file_name) {
- $file_path = $this->get_upload_path($file_name);
- $success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path);
- if ($success) {
- foreach($this->options['image_versions'] as $version => $options) {
- if (!empty($version)) {
- $file = $this->get_upload_path($file_name, $version);
- if (is_file($file)) {
- unlink($file);
- }
- }
- }
- }
- $response[$file_name] = $success;
- }
- return $this->generate_response($response, $print_response);
- }
-
-}
diff --git a/milfs/plugins/upload/server/php/files.php b/milfs/plugins/upload/server/php/files.php
deleted file mode 100644
index a00ace3..0000000
--- a/milfs/plugins/upload/server/php/files.php
+++ /dev/null
@@ -1,17 +0,0 @@
-
\ No newline at end of file
diff --git a/milfs/plugins/upload/server/php/files/.htaccess b/milfs/plugins/upload/server/php/files/.htaccess
deleted file mode 100644
index 83fca55..0000000
--- a/milfs/plugins/upload/server/php/files/.htaccess
+++ /dev/null
@@ -1,23 +0,0 @@
-# The following directives prevent the execution of script files
-# in the context of the website.
-# They also force the content-type application/octet-stream and
-# force browsers to display a download dialog for non-image files.
-SetHandler default-handler
-ForceType application/octet-stream
-Header set Content-Disposition attachment
-
-# The following unsets the forced type and Content-Disposition headers
-# for known image files:
-
- ForceType none
- Header unset Content-Disposition
-
-
-# The following directive prevents browsers from MIME-sniffing the content-type.
-# This is an important complement to the ForceType directive above:
-Header set X-Content-Type-Options nosniff
-
-# Uncomment the following lines to prevent unauthorized download of files:
-#AuthName "Authorization required"
-#AuthType Basic
-#require valid-user
diff --git a/milfs/plugins/upload/server/php/files/FR030277.JPG b/milfs/plugins/upload/server/php/files/FR030277.JPG
deleted file mode 100644
index 8ed13e7..0000000
Binary files a/milfs/plugins/upload/server/php/files/FR030277.JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/FR030270.JPG b/milfs/plugins/upload/server/php/files/thumbnail/FR030270.JPG
deleted file mode 100644
index 8e365e0..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/FR030270.JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/FR030272.JPG b/milfs/plugins/upload/server/php/files/thumbnail/FR030272.JPG
deleted file mode 100644
index 48a3b57..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/FR030272.JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/FR030276 (1).JPG b/milfs/plugins/upload/server/php/files/thumbnail/FR030276 (1).JPG
deleted file mode 100644
index e210aa6..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/FR030276 (1).JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/FR030276 (2).JPG b/milfs/plugins/upload/server/php/files/thumbnail/FR030276 (2).JPG
deleted file mode 100644
index e210aa6..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/FR030276 (2).JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/FR030276.JPG b/milfs/plugins/upload/server/php/files/thumbnail/FR030276.JPG
deleted file mode 100644
index e210aa6..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/FR030276.JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/FR030277.JPG b/milfs/plugins/upload/server/php/files/thumbnail/FR030277.JPG
deleted file mode 100644
index dcfcf46..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/FR030277.JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/SDC11783.JPG b/milfs/plugins/upload/server/php/files/thumbnail/SDC11783.JPG
deleted file mode 100644
index 8acf1ae..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/SDC11783.JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/crear_puente_05.png b/milfs/plugins/upload/server/php/files/thumbnail/crear_puente_05.png
deleted file mode 100644
index 1f3017b..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/crear_puente_05.png and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/grupo FR030201 (1).JPG b/milfs/plugins/upload/server/php/files/thumbnail/grupo FR030201 (1).JPG
deleted file mode 100644
index b99067e..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/grupo FR030201 (1).JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/grupo FR030201 (2).JPG b/milfs/plugins/upload/server/php/files/thumbnail/grupo FR030201 (2).JPG
deleted file mode 100644
index b99067e..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/grupo FR030201 (2).JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/grupo FR030201.JPG b/milfs/plugins/upload/server/php/files/thumbnail/grupo FR030201.JPG
deleted file mode 100644
index b99067e..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/grupo FR030201.JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/maposmatic_crear.png b/milfs/plugins/upload/server/php/files/thumbnail/maposmatic_crear.png
deleted file mode 100644
index d4f0e81..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/maposmatic_crear.png and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (1).JPG b/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (1).JPG
deleted file mode 100644
index 711c364..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (1).JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (2).JPG b/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (2).JPG
deleted file mode 100644
index 711c364..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (2).JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (3).JPG b/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (3).JPG
deleted file mode 100644
index 711c364..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (3).JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (4).JPG b/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (4).JPG
deleted file mode 100644
index 711c364..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058 (4).JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058.JPG b/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058.JPG
deleted file mode 100644
index 711c364..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/pareja FR030058.JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/planeacion.jpg b/milfs/plugins/upload/server/php/files/thumbnail/planeacion.jpg
deleted file mode 100644
index cc1cdd3..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/planeacion.jpg and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/portada (1).jpg b/milfs/plugins/upload/server/php/files/thumbnail/portada (1).jpg
deleted file mode 100644
index 3c366b3..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/portada (1).jpg and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/portada.jpg b/milfs/plugins/upload/server/php/files/thumbnail/portada.jpg
deleted file mode 100644
index 3c366b3..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/portada.jpg and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/qr_wgs84.png b/milfs/plugins/upload/server/php/files/thumbnail/qr_wgs84.png
deleted file mode 100644
index 71b3bcc..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/qr_wgs84.png and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/files/thumbnail/trio FR030110.JPG b/milfs/plugins/upload/server/php/files/thumbnail/trio FR030110.JPG
deleted file mode 100644
index 3e4ab7d..0000000
Binary files a/milfs/plugins/upload/server/php/files/thumbnail/trio FR030110.JPG and /dev/null differ
diff --git a/milfs/plugins/upload/server/php/index.php b/milfs/plugins/upload/server/php/index.php
deleted file mode 100644
index 7c1a4f1..0000000
--- a/milfs/plugins/upload/server/php/index.php
+++ /dev/null
@@ -1,99 +0,0 @@
- 'POST',
- 'db_host' => 'localhost',
- 'db_user' => 'root',
- 'db_pass' => 'toor',
- 'db_name' => 'pruebas',
- 'db_table' => 'files'
-);
-
-error_reporting(E_ALL | E_STRICT);
-require('UploadHandler.php');
-
-class CustomUploadHandler extends UploadHandler {
-
- protected function initialize() {
- $this->db = new mysqli(
- $this->options['db_host'],
- $this->options['db_user'],
- $this->options['db_pass'],
- $this->options['db_name']
- );
- parent::initialize();
- $this->db->close();
- }
-
- protected function handle_form_data($file, $index) {
- $file->title = @$_REQUEST['title'][$index];
- $file->description = @$_REQUEST['description'][$index];
- }
-
- protected function handle_file_upload($uploaded_file, $name, $size, $type, $error,
- $index = null, $content_range = null) {
- $file = parent::handle_file_upload(
- $uploaded_file, $name, $size, $type, $error, $index, $content_range
- );
- if (empty($file->error)) {
- $sql = 'INSERT INTO `'.$this->options['db_table']
- .'` (`name`, `size`, `type`, `title`, `description`)'
- .' VALUES (?, ?, ?, ?, ?)';
- $query = $this->db->prepare($sql);
- $query->bind_param(
- 'sisss',
- $file->name,
- $file->size,
- $file->type,
- $file->title,
- $file->description
- );
- $query->execute();
- $file->id = $this->db->insert_id;
- }
- return $file;
- }
-
- protected function set_additional_file_properties($file) {
- parent::set_additional_file_properties($file);
- if ($_SERVER['REQUEST_METHOD'] === 'GET') {
- $sql = 'SELECT `id`, `type`, `title`, `description` FROM `'
- .$this->options['db_table'].'` WHERE `name`=?';
- $query = $this->db->prepare($sql);
- $query->bind_param('s', $file->name);
- $query->execute();
- $query->bind_result(
- $id,
- $type,
- $title,
- $description
- );
- while ($query->fetch()) {
- $file->id = $id;
- $file->type = $type;
- $file->title = $title;
- $file->description = $description;
- }
- }
- }
-
- public function delete($print_response = true) {
- $response = parent::delete(false);
- foreach ($response as $name => $deleted) {
- if ($deleted) {
- $sql = 'DELETE FROM `'
- .$this->options['db_table'].'` WHERE `name`=?';
- $query = $this->db->prepare($sql);
- $query->bind_param('s', $name);
- $query->execute();
- }
- }
- return $this->generate_response($response, $print_response);
- }
-
-}
-//$options = array('upload_dir'=>'/var/www/images_secure/files/', 'upload_url'=>'/var/www/images_secure/files/');
-
-// $custom_dir = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['custom_dir'];
-//$upload_handler = new CustomUploadHandler(array('upload_dir' => $custom_dir));
-$upload_handler = new CustomUploadHandler($options);
-//$upload_handler = new UploadHandler(array('upload_dir' => $custom_dir));
diff --git a/milfs/portal.php b/milfs/portal.php
deleted file mode 100644
index 3f1d945..0000000
--- a/milfs/portal.php
+++ /dev/null
@@ -1,250 +0,0 @@
-processRequests();
-$logo = remplacetas('empresa','id','1','imagen') ;
-$direccion = remplacetas('empresa','id','1','direccion') ;
-$telefono = remplacetas('empresa','id','1','telefono_1') ;
-$email = remplacetas('empresa','id','1','email') ;
-$razon_social = remplacetas('empresa','id','1','razon_social') ;
-$sigla = remplacetas('empresa','id','1','sigla') ;
-$facebook = remplacetas('empresa','id','1','facebook') ;
-$twitter = remplacetas('empresa','id','1','twitter') ;
-$slogan = remplacetas('empresa','id','1','slogan') ;
-$web = remplacetas('empresa','id','1','web') ;
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("milfs/xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xajax_formulario_modal('$_REQUEST[id]','','$_REQUEST[c]','$_REQUEST[t]')";} ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/presentacion.php b/milfs/presentacion.php
deleted file mode 100644
index 6f21f03..0000000
--- a/milfs/presentacion.php
+++ /dev/null
@@ -1,76 +0,0 @@
-processRequests();
-
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/psi.php b/milfs/psi.php
deleted file mode 100644
index 42cccdd..0000000
--- a/milfs/psi.php
+++ /dev/null
@@ -1,60 +0,0 @@
-$email[0]";
-$razon_social = remplacetas('empresa','id','1','razon_social','') ;
-$razon_social ="
$razon_social[0] ";
-$aviso ="
-
-
-
-
Aviso de privacidad
-Y políticas de manejo de información personal.
-
-
En $razon_social respetamos y protegemos tus datos personales
-
-
Sabemos que tu privacidad y tus datos personales son muy importantes. Por eso, en cumplimiento de la Ley 1581 de 2012 y del Decreto 1377 de 2013, Decreto 886 de 2014 -los cuales desarrollan el derecho constitucional (Habeas Data) que tienen todas las personas de conocer, actualizar, rectificar o suprimir cualquier tipo de información recogida sobre ellas en bases de datos o archivos-, solicitamos tu autorización para continuar realizando el tratamiento de tus datos personales en los siguientes términos:
-
-
$razon_social se toma en serio tus datos personales y te damos todas las garantías para que tus derechos sean una realidad. $razon_social como encargada del tratamiento de los datos personales y por tanto, será ella la que realizará la recolección, almacenamiento, uso, circulación o supresión de los datos personales en nombre de $razon_social y conforme a la finalidad que señalemos como responsables del tratamiento de datos personales.
-
-
En $razon_social necesitamos tus datos personales para establecer un canal de comunicación y mantenerte informado e informada de nuestras actividades relacionadas con nuestra actividad. Por otra parte y debido a la naturaleza de nuestra institución estos datos son necesarios para cumplir con la relación Cliente-vendedor o como preferimos llamarlos Prosumidores.
-
-
Estas actividades comprenden la difusión de alertas, lanzamientos, comunicados, boletines, noticias, convocatorias, campañas, eventos, talleres, seminarios, etc., a través de la lista de correo de la comunidad , de los correos electrónicos recopilados en listas de asistencia a eventos organizados por la comunidad y del formulario Contacto de nuestra plataforma web, y de la base de datos que hemos elaborado a partir de la información que se encuentra públicamente en Internet, entre otros.
-
-
$razon_social, implementará las medidas técnicas necesarias para garantizar la autenticidad, integridad y confidencialidad de la información. Sin embargo, si estás interesado o interesada en recibir información de $razon_social podremos compartir tus datos personales con ésta si lo autorizas de forma expresa e informada.
-
-
Te recordamos que tienes derecho al acceso, consulta, rectificación, actualización y eliminación de tus datos en los términos de la Ley 1581 de 2012 y del Decreto 1377 de 2013, Decreto 886 de 2014. Para el ejercicio de estos derechos, o si no estás interesado o interesada en seguir recibiendo nuestra información y no nos autorizas para el tratamiento de tus datos personales de acuerdo con nuestra Política de privacidad, puedes escribirnos a $email
-
-
Si pasados 30 días hábiles a partir del recibo de este mensaje no hemos recibido alguna comunicación en donde nos indiques que NO nos autorizas a efectuar el tratamiento de tus datos personales, asumimos que nos has autorizado y continuaremos realizando dicho tratamiento. No obstante, conservas el derecho a solicitar la supresión, actualización de tus datos y a revocar esta autorización en cualquier momento.
-
-
Si quieres comunicarte con $razon_social , encargada del tratamiento de datos personales, puedes escribirle al área de Comunicaciones a $email
-
-
-
-
ATENCION: Puede existir una versión mas reciente de este archivo en http://qwerty.co/milfs por favor compruebelo antes de modificarlo.
-
-
Este sistema podría tener código basado en otros programas y especialmente en http://GaleNUx.com el cual tiene Copyright © 13-22-2/ 17-Dic-2008 Dirección nacional de derechos de autor Colombia pero igualmente distribuido bajo licencia GPL V3. http://GaleNUx.com Es un sistema para de información para la salud adaptado al sistema de salud Colombiano.
-
-
Si necesita consultoría o capacitación en el manejo, instalación y/o soporte o ampliación de prestaciones de GaleNUx por favor comuníquese con nosotros al email correo@qwerty.co.
-
-
Este programa es software libre: usted puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Fundación para el Software Libre, ya sea la versión 3 de la Licencia, o cualquier versión posterior.
-
-
Este programa se distribuye con la esperanza de que sea útil, pero SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO. Consulte los detalles de la Licencia Pública General GNU para obtener una información más detallada.
-
-
Debería haber recibido una copia de la Licencia Pública General GNU junto a este programa. En caso contrario, consulte .
-
-
El equipo de MILFS agradece especialmente a todas las instituciones y personas que han hecho este proyecto posible con su inspiración, patrocinio y cientos de horas de dedicación.
-
-
-
-
-
-
-";
-
-//$aviso= nl2br($aviso);
-//print($aviso);
-?>
\ No newline at end of file
diff --git a/milfs/rss.php b/milfs/rss.php
deleted file mode 100644
index e97fd2c..0000000
--- a/milfs/rss.php
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
-
- Formularios $consulta
-
-
- Respuestas a formularios
- Formularios
- http://qwerty.co
- correo@qwerty.co
- $fecha
- correo@qwerty.co
- es-ES ";
-
-mysqli_data_seek($resultado, 0);
- while ($fila = mysqli_fetch_array($resultado)) {
- $formulario_nombre = remplacetas('form_id','id',$fila[form_id],'nombre') ;
- $formulario_nombre = utf8_encode($formulario_nombre[0]);
- $title = utf8_encode($fila[item_title]);
- $description = utf8_encode($fila[item_description]);
- $content = utf8_encode($fila[item_content]);
- $contenido = utf8_encode($fila[contenido]);
- $campo = utf8_encode($fila[campo_nombre]);
-//$resultado .= "$row[form_datos_id] $row[fecha] $row[timestamp] $formulario_nombre[0] $row[campo_nombre] $row[contenido] ";
- $xml .= "-
-
$formulario_nombre
- $fila[form_id]
- $fila[id_campo]
- $campo
-
- $fila[fecha]
- $fila[control]
- $fila[id_usuario]
-
- ";
- }
- $xml .= ' ';
-
-
-
-echo $xml;
-//
-?>
diff --git a/milfs/rt.php b/milfs/rt.php
deleted file mode 100644
index 0c79d4f..0000000
--- a/milfs/rt.php
+++ /dev/null
@@ -1,159 +0,0 @@
-processRequests();
-if($_REQUEST[id2] =='') {$agregar= $_REQUEST[id];}else {$agregar = $_REQUEST[id2];}
-$formulario_nombre = remplacetas('form_id','id',$_REQUEST[id],'nombre') ;
-$agregar_nombre = remplacetas('form_id','id',$agregar,'nombre') ;
-?>
-
-
-
-
-
MILFS
-
-
-
-
-
-
-
-
-
MILFS
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/test.php b/milfs/test.php
deleted file mode 100644
index 1735d6c..0000000
--- a/milfs/test.php
+++ /dev/null
@@ -1,119 +0,0 @@
-processRequests();
-$logo = remplacetas('empresa','id','1','imagen') ;
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ¿DÓNDE
-ESTÁN
- MIS DATOS?
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Los datos que se encuentran en esta página estan asociados al resultado
- de la investigación que se encuentra en
http://www.dondeestanmisdatos.info/
- lo que se encuentra en este sitio es un visualización de datos creada a
- partir de los resultados de la investigación después de ser ingresados a la
- plataforma
MILFS
-
- Esta plataforma nos entrega los datos en forma de una
- API que puede ser consumida en le siguiente enlace:
-
-
-
http://datos.labmde.org/api.php?id=19
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/timeline.php b/milfs/timeline.php
deleted file mode 100644
index 238f64a..0000000
--- a/milfs/timeline.php
+++ /dev/null
@@ -1,128 +0,0 @@
-processRequests();
-$logo = remplacetas('empresa','id','1','imagen') ;
-$direccion = remplacetas('empresa','id','1','direccion') ;
-$telefono = remplacetas('empresa','id','1','telefono_1') ;
-$email = remplacetas('empresa','id','1','email') ;
-$razon_social = remplacetas('empresa','id','1','razon_social') ;
-$sigla = remplacetas('empresa','id','1','sigla') ;
-$facebook = remplacetas('empresa','id','1','facebook') ;
-$twitter = remplacetas('empresa','id','1','twitter') ;
-$slogan = remplacetas('empresa','id','1','slogan') ;
-$web = remplacetas('empresa','id','1','web') ;
-?>
-
-
-
-
-
-
-
-
-
- printJavascript("milfs/xajax/"); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xajax_contenido_timeline('$id');";} ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/milfs/tmp/Prueba_Formulario_1458164302_26967.csv b/milfs/tmp/Prueba_Formulario_1458164302_26967.csv
deleted file mode 100644
index 789953c..0000000
--- a/milfs/tmp/Prueba_Formulario_1458164302_26967.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-Identificador,,"Nombres y apellidos",Comentario,"Correo electronico"
-
-6ac0fbed0ebb04faa23de400bf647d19,Array," Kleper ","Que bueno poder encontrar la documentación del sistema centralizada"," kleper@qwerty.co "
-1b3e951f20de8adcfce1f298bbc657a3,Array," Julian ","Que bueno la mesa de ayuda"," julian@bibliolabs.cc "
diff --git a/milfs/toa/.gitignore b/milfs/toa/.gitignore
deleted file mode 100644
index 8213dad..0000000
--- a/milfs/toa/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.DS_Store
-composer.lock
-vendor
-env
diff --git a/milfs/toa/.travis.yml b/milfs/toa/.travis.yml
deleted file mode 100644
index eb25411..0000000
--- a/milfs/toa/.travis.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-language: php
-php:
- - '7.0'
- - 5.6
- - 5.5
- - hhvm
-sudo: false
-before_script:
- - composer self-update
- - composer install --prefer-source --no-interaction
-script: phpunit
diff --git a/milfs/toa/LICENSE.md b/milfs/toa/LICENSE.md
deleted file mode 100644
index 64e83a1..0000000
--- a/milfs/toa/LICENSE.md
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2009 Abraham Williams - http://abrah.am - abraham@abrah.am
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
diff --git a/milfs/toa/README.md b/milfs/toa/README.md
deleted file mode 100644
index 9793f39..0000000
--- a/milfs/toa/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-TwitterOAuth [![Build Status](https://img.shields.io/travis/abraham/twitteroauth.svg)](https://travis-ci.org/abraham/twitteroauth) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/abraham/twitteroauth/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/abraham/twitteroauth/?branch=master) [![Issues Count](https://img.shields.io/github/issues/abraham/twitteroauth.svg)](https://github.com/abraham/twitteroauth/issues) [![Latest Version](https://img.shields.io/packagist/v/abraham/twitteroauth.svg)](https://packagist.org/packages/abraham/twitteroauth)
-------------
-
-The most popular PHP library for Twitter's OAuth REST API.
-
-See documentation at https://twitteroauth.com.
-
-OAuth signing code originally sourced from [here](https://code.google.com/p/oauth/).
-
-
diff --git a/milfs/toa/arttesano.jpg b/milfs/toa/arttesano.jpg
deleted file mode 100644
index 48c3f90..0000000
Binary files a/milfs/toa/arttesano.jpg and /dev/null differ
diff --git a/milfs/toa/autoload.php b/milfs/toa/autoload.php
deleted file mode 100644
index cff03e8..0000000
--- a/milfs/toa/autoload.php
+++ /dev/null
@@ -1,36 +0,0 @@
-=5.5.0",
- "ext-curl": "*"
- },
- "require-dev": {
- "phpunit/phpunit": "4.8.*",
- "squizlabs/php_codesniffer": "2.3.*",
- "phpmd/phpmd": "2.3.*"
- },
- "autoload": {
- "psr-4": {
- "Abraham\\TwitterOAuth\\": "src"
- }
- }
-}
diff --git a/milfs/toa/concect.php b/milfs/toa/concect.php
deleted file mode 100644
index ce9bf33..0000000
--- a/milfs/toa/concect.php
+++ /dev/null
@@ -1,4 +0,0 @@
-tupale
-
-conectarse
-
\ No newline at end of file
diff --git a/milfs/toa/config.php b/milfs/toa/config.php
deleted file mode 100644
index 150fc2b..0000000
--- a/milfs/toa/config.php
+++ /dev/null
@@ -1,6 +0,0 @@
-
\ No newline at end of file
diff --git a/milfs/toa/connect.php b/milfs/toa/connect.php
deleted file mode 100644
index 19bc637..0000000
--- a/milfs/toa/connect.php
+++ /dev/null
@@ -1,5 +0,0 @@
-Contra la violencia en los taxis
-
-Autoriza para publicar en twitter.
-
-
diff --git a/milfs/toa/datos.php b/milfs/toa/datos.php
deleted file mode 100644
index c1d87aa..0000000
--- a/milfs/toa/datos.php
+++ /dev/null
@@ -1,31 +0,0 @@
-oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
-$request_token = $connection->oauth('oauth/request_token');
-//$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
-$user = $connection->get("account/verify_credentials");
-//print $user->screen_name;
-print_r($user);
-// Post Update
-
-$content = $connection->post('statuses/update', array('status' => 'Bonito dia'));
-print_r( $content);
-print_r($url);
-
-
-//print_r($request_token); //print connection contentsa
-
-
-?>
\ No newline at end of file
diff --git a/milfs/toa/hola.php b/milfs/toa/hola.php
deleted file mode 100644
index 473b518..0000000
--- a/milfs/toa/hola.php
+++ /dev/null
@@ -1,62 +0,0 @@
-getAccessToken($_REQUEST['oauth_verifier']);
-$access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier']));
-
-
-/* Guardar el token de acceso. Normalmente, este token se guardará también en una base
- de datos para volver a ser utilizado en otras ocasiones. */
-$_SESSION['access_token'] = $access_token;
-
-/* Eliminar el token temporal de solicitud */
-unset($_SESSION['oauth_token']);
-unset($_SESSION['oauth_token_secret']);
-
-/* Si todo va bien, presentar al usuario la página principal "index.php" del servicio */
-//if (200 == $connection->http_code) {
- /* El usuario ha sido verificado */
- $_SESSION['status'] = 'verified';
- echo send_tweet($access_token);
- //}
-function base64_encode_image ($filename=string,$filetype=string) {
-if ($filename) {
-$imgbinary = fread(fopen($filename, "r"), filesize($filename));
-return base64_encode($imgbinary);
-}
-}
-
- function send_tweet($access_token) {
- $tweet = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
- $access_token['oauth_token'], $access_token['oauth_token_secret']);
- $media1 = $tweet->upload('media/upload', array('media' => 'arttesano.jpg'));
- $parameters = array(
- 'status' => 'Contra los taxistas violentos #jesuisArttesano @arttesano @denuncieTaxista http://datos.labmde.org/milfs/toa/connect.php',
- 'media_ids' => implode(',', array($media1->media_id_string)),
-);
-$result = $tweet-> post('statuses/update', $parameters);
-$image = "arttesano.jpg";
-$base64 = base64_encode_image (''.$image,'jpg');
-//$result = $tweet-> post('account/update_profile_image', array('image' => $base64.';type=image/jpg;filename='.$image));
-
- $message = "Bonito dia.";
- $tweet->post('statuses/update', array('status' => "$message"));
-
-}
-echo "Gracias por tu solidaridad !";
-
- // header('Location: ./index.php');
-//} else {
- //header('Location: ./clearsessions.php');
-//
diff --git a/milfs/toa/phpmd.xml b/milfs/toa/phpmd.xml
deleted file mode 100644
index ef45e75..0000000
--- a/milfs/toa/phpmd.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- Keep TwitterOAuth source code clean.
-
-
-
-
-
-
-
-
diff --git a/milfs/toa/phpunit.xml b/milfs/toa/phpunit.xml
deleted file mode 100644
index 71cc3e1..0000000
--- a/milfs/toa/phpunit.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
- ./tests/
-
-
-
diff --git a/milfs/toa/redirect.php b/milfs/toa/redirect.php
deleted file mode 100644
index 43ff03c..0000000
--- a/milfs/toa/redirect.php
+++ /dev/null
@@ -1,31 +0,0 @@
-getRequestToken(OAUTH_CALLBACK);
-$request_token = $connection->oauth('oauth/request_token');
-
-/* Guarda la credenciales temporales en sesión. */
-$_SESSION['oauth_token'] = $token = $request_token['oauth_token'];
-$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
-//switch ($connection->http_code) {
-// case 200:
- /* Construye la url de autorización y envía al usuario a Twitter. */
- $url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
- //$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
- //$url = $connection->getAuthorizeURL($token);
-// print $url;
- header('Location: ' . $url);
- //break;
- // default:
- /* Indica que se ha producido un error. */
- // echo 'Error de conexión a Twitter.';
- // echo "\nHTTP CODE: " . $connection->http_code;
-//}
\ No newline at end of file
diff --git a/milfs/toa/src/Config.php b/milfs/toa/src/Config.php
deleted file mode 100644
index 5815d61..0000000
--- a/milfs/toa/src/Config.php
+++ /dev/null
@@ -1,64 +0,0 @@
-
- */
-class Config
-{
- /** @var int How long to wait for a response from the API */
- protected $timeout = 5;
- /** @var int how long to wait while connecting to the API */
- protected $connectionTimeout = 5;
- /**
- * Decode JSON Response as associative Array
- *
- * @see http://php.net/manual/en/function.json-decode.php
- *
- * @var bool
- */
- protected $decodeJsonAsArray = false;
- /** @var string User-Agent header */
- protected $userAgent = 'TwitterOAuth (+https://twitteroauth.com)';
- /** @var array Store proxy connection details */
- protected $proxy = [];
-
- /**
- * Set the connection and response timeouts.
- *
- * @param int $connectionTimeout
- * @param int $timeout
- */
- public function setTimeouts($connectionTimeout, $timeout)
- {
- $this->connectionTimeout = (int)$connectionTimeout;
- $this->timeout = (int)$timeout;
- }
-
- /**
- * @param bool $value
- */
- public function setDecodeJsonAsArray($value)
- {
- $this->decodeJsonAsArray = (bool)$value;
- }
-
- /**
- * @param string $userAgent
- */
- public function setUserAgent($userAgent)
- {
- $this->userAgent = (string)$userAgent;
- }
-
- /**
- * @param array $proxy
- */
- public function setProxy(array $proxy)
- {
- $this->proxy = $proxy;
- }
-}
diff --git a/milfs/toa/src/Consumer.php b/milfs/toa/src/Consumer.php
deleted file mode 100644
index ceaf1ef..0000000
--- a/milfs/toa/src/Consumer.php
+++ /dev/null
@@ -1,36 +0,0 @@
-key = $key;
- $this->secret = $secret;
- $this->callbackUrl = $callbackUrl;
- }
-
- /**
- * @return string
- */
- public function __toString()
- {
- return "Consumer[key=$this->key,secret=$this->secret]";
- }
-}
diff --git a/milfs/toa/src/HmacSha1.php b/milfs/toa/src/HmacSha1.php
deleted file mode 100644
index d8cdab8..0000000
--- a/milfs/toa/src/HmacSha1.php
+++ /dev/null
@@ -1,39 +0,0 @@
-getSignatureBaseString();
-
- $parts = [$consumer->secret, null !== $token ? $token->secret : ""];
-
- $parts = Util::urlencodeRfc3986($parts);
- $key = implode('&', $parts);
-
- return base64_encode(hash_hmac('sha1', $signatureBase, $key, true));
- }
-}
diff --git a/milfs/toa/src/Request.php b/milfs/toa/src/Request.php
deleted file mode 100644
index a60c23d..0000000
--- a/milfs/toa/src/Request.php
+++ /dev/null
@@ -1,254 +0,0 @@
-parameters = $parameters;
- $this->httpMethod = $httpMethod;
- $this->httpUrl = $httpUrl;
- }
-
- /**
- * pretty much a helper function to set up the request
- *
- * @param Consumer $consumer
- * @param Token $token
- * @param string $httpMethod
- * @param string $httpUrl
- * @param array $parameters
- *
- * @return Request
- */
- public static function fromConsumerAndToken(
- Consumer $consumer,
- Token $token = null,
- $httpMethod,
- $httpUrl,
- array $parameters = []
- ) {
- $defaults = [
- "oauth_version" => Request::$version,
- "oauth_nonce" => Request::generateNonce(),
- "oauth_timestamp" => time(),
- "oauth_consumer_key" => $consumer->key
- ];
- if (null !== $token) {
- $defaults['oauth_token'] = $token->key;
- }
-
- $parameters = array_merge($defaults, $parameters);
-
- return new Request($httpMethod, $httpUrl, $parameters);
- }
-
- /**
- * @param string $name
- * @param string $value
- */
- public function setParameter($name, $value)
- {
- $this->parameters[$name] = $value;
- }
-
- /**
- * @param $name
- *
- * @return string|null
- */
- public function getParameter($name)
- {
- return isset($this->parameters[$name]) ? $this->parameters[$name] : null;
- }
-
- /**
- * @return array
- */
- public function getParameters()
- {
- return $this->parameters;
- }
-
- /**
- * @param $name
- */
- public function removeParameter($name)
- {
- unset($this->parameters[$name]);
- }
-
- /**
- * The request parameters, sorted and concatenated into a normalized string.
- *
- * @return string
- */
- public function getSignableParameters()
- {
- // Grab all parameters
- $params = $this->parameters;
-
- // Remove oauth_signature if present
- // Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.")
- if (isset($params['oauth_signature'])) {
- unset($params['oauth_signature']);
- }
-
- return Util::buildHttpQuery($params);
- }
-
- /**
- * Returns the base string of this request
- *
- * The base string defined as the method, the url
- * and the parameters (normalized), each urlencoded
- * and the concated with &.
- *
- * @return string
- */
- public function getSignatureBaseString()
- {
- $parts = [
- $this->getNormalizedHttpMethod(),
- $this->getNormalizedHttpUrl(),
- $this->getSignableParameters()
- ];
-
- $parts = Util::urlencodeRfc3986($parts);
-
- return implode('&', $parts);
- }
-
- /**
- * Returns the HTTP Method in uppercase
- *
- * @return string
- */
- public function getNormalizedHttpMethod()
- {
- return strtoupper($this->httpMethod);
- }
-
- /**
- * parses the url and rebuilds it to be
- * scheme://host/path
- *
- * @return string
- */
- public function getNormalizedHttpUrl()
- {
- $parts = parse_url($this->httpUrl);
-
- $scheme = $parts['scheme'];
- $host = strtolower($parts['host']);
- $path = $parts['path'];
-
- return "$scheme://$host$path";
- }
-
- /**
- * Builds a url usable for a GET request
- *
- * @return string
- */
- public function toUrl()
- {
- $postData = $this->toPostdata();
- $out = $this->getNormalizedHttpUrl();
- if ($postData) {
- $out .= '?' . $postData;
- }
- return $out;
- }
-
- /**
- * Builds the data one would send in a POST request
- *
- * @return string
- */
- public function toPostdata()
- {
- return Util::buildHttpQuery($this->parameters);
- }
-
- /**
- * Builds the Authorization: header
- *
- * @return string
- * @throws TwitterOAuthException
- */
- public function toHeader()
- {
- $first = true;
- $out = 'Authorization: OAuth';
- foreach ($this->parameters as $k => $v) {
- if (substr($k, 0, 5) != "oauth") {
- continue;
- }
- if (is_array($v)) {
- throw new TwitterOAuthException('Arrays not supported in headers');
- }
- $out .= ($first) ? ' ' : ', ';
- $out .= Util::urlencodeRfc3986($k) . '="' . Util::urlencodeRfc3986($v) . '"';
- $first = false;
- }
- return $out;
- }
-
- /**
- * @return string
- */
- public function __toString()
- {
- return $this->toUrl();
- }
-
- /**
- * @param SignatureMethod $signatureMethod
- * @param Consumer $consumer
- * @param Token $token
- */
- public function signRequest(SignatureMethod $signatureMethod, Consumer $consumer, Token $token = null)
- {
- $this->setParameter("oauth_signature_method", $signatureMethod->getName());
- $signature = $this->buildSignature($signatureMethod, $consumer, $token);
- $this->setParameter("oauth_signature", $signature);
- }
-
- /**
- * @param SignatureMethod $signatureMethod
- * @param Consumer $consumer
- * @param Token $token
- *
- * @return string
- */
- public function buildSignature(SignatureMethod $signatureMethod, Consumer $consumer, Token $token = null)
- {
- return $signatureMethod->buildSignature($this, $consumer, $token);
- }
-
- /**
- * @return string
- */
- public static function generateNonce()
- {
- return md5(microtime() . mt_rand());
- }
-}
diff --git a/milfs/toa/src/Response.php b/milfs/toa/src/Response.php
deleted file mode 100644
index cbab8ab..0000000
--- a/milfs/toa/src/Response.php
+++ /dev/null
@@ -1,107 +0,0 @@
-
- */
-class Response
-{
- /** @var string|null API path from the most recent request */
- private $apiPath;
- /** @var int HTTP status code from the most recent request */
- private $httpCode = 0;
- /** @var array HTTP headers from the most recent request */
- private $headers = [];
- /** @var array|object Response body from the most recent request */
- private $body = [];
- /** @var array HTTP headers from the most recent request that start with X */
- private $xHeaders = [];
-
- /**
- * @param string $apiPath
- */
- public function setApiPath($apiPath)
- {
- $this->apiPath = $apiPath;
- }
-
- /**
- * @return string|null
- */
- public function getApiPath()
- {
- return $this->apiPath;
- }
-
- /**
- * @param array|object $body
- */
- public function setBody($body)
- {
- $this->body = $body;
- }
-
- /**
- * @return array|object|string
- */
- public function getBody()
- {
- return $this->body;
- }
-
- /**
- * @param int $httpCode
- */
- public function setHttpCode($httpCode)
- {
- $this->httpCode = $httpCode;
- }
-
- /**
- * @return int
- */
- public function getHttpCode()
- {
- return $this->httpCode;
- }
-
- /**
- * @param array $headers
- */
- public function setHeaders($headers)
- {
- foreach ($headers as $key => $value) {
- if (substr($key, 0, 1) == 'x') {
- $this->xHeaders[$key] = $value;
- }
- }
- $this->headers = $headers;
- }
-
- /**
- * @return array
- */
- public function getsHeaders()
- {
- return $this->headers;
- }
-
- /**
- * @param array $xHeaders
- */
- public function setXHeaders($xHeaders)
- {
- $this->xHeaders = $xHeaders;
- }
-
- /**
- * @return array
- */
- public function getXHeaders()
- {
- return $this->xHeaders;
- }
-}
diff --git a/milfs/toa/src/SignatureMethod.php b/milfs/toa/src/SignatureMethod.php
deleted file mode 100644
index 40fd51e..0000000
--- a/milfs/toa/src/SignatureMethod.php
+++ /dev/null
@@ -1,66 +0,0 @@
-buildSignature($request, $consumer, $token);
-
- // Check for zero length, although unlikely here
- if (strlen($built) == 0 || strlen($signature) == 0) {
- return false;
- }
-
- if (strlen($built) != strlen($signature)) {
- return false;
- }
-
- // Avoid a timing leak with a (hopefully) time insensitive compare
- $result = 0;
- for ($i = 0; $i < strlen($signature); $i++) {
- $result |= ord($built{$i}) ^ ord($signature{$i});
- }
-
- return $result == 0;
- }
-}
diff --git a/milfs/toa/src/Token.php b/milfs/toa/src/Token.php
deleted file mode 100644
index 140c1ec..0000000
--- a/milfs/toa/src/Token.php
+++ /dev/null
@@ -1,38 +0,0 @@
-key = $key;
- $this->secret = $secret;
- }
-
- /**
- * Generates the basic string serialization of a token that a server
- * would respond to request_token and access_token calls with
- *
- * @return string
- */
- public function __toString()
- {
- return sprintf("oauth_token=%s&oauth_token_secret=%s",
- Util::urlencodeRfc3986($this->key),
- Util::urlencodeRfc3986($this->secret)
- );
- }
-}
diff --git a/milfs/toa/src/TwitterOAuth.php b/milfs/toa/src/TwitterOAuth.php
deleted file mode 100644
index 739dc2d..0000000
--- a/milfs/toa/src/TwitterOAuth.php
+++ /dev/null
@@ -1,448 +0,0 @@
-
- */
-class TwitterOAuth extends Config
-{
- const API_VERSION = '1.1';
- const API_HOST = 'https://api.twitter.com';
- const UPLOAD_HOST = 'https://upload.twitter.com';
- const UPLOAD_CHUNK = 40960; // 1024 * 40
-
- /** @var Response details about the result of the last request */
- private $response;
- /** @var string|null Application bearer token */
- private $bearer;
- /** @var Consumer Twitter application details */
- private $consumer;
- /** @var Token|null User access token details */
- private $token;
- /** @var HmacSha1 OAuth 1 signature type used by Twitter */
- private $signatureMethod;
-
- /**
- * Constructor
- *
- * @param string $consumerKey The Application Consumer Key
- * @param string $consumerSecret The Application Consumer Secret
- * @param string|null $oauthToken The Client Token (optional)
- * @param string|null $oauthTokenSecret The Client Token Secret (optional)
- */
- public function __construct($consumerKey, $consumerSecret, $oauthToken = null, $oauthTokenSecret = null)
- {
- $this->resetLastResponse();
- $this->signatureMethod = new HmacSha1();
- $this->consumer = new Consumer($consumerKey, $consumerSecret);
- if (!empty($oauthToken) && !empty($oauthTokenSecret)) {
- $this->token = new Token($oauthToken, $oauthTokenSecret);
- }
- if (empty($oauthToken) && !empty($oauthTokenSecret)) {
- $this->bearer = $oauthTokenSecret;
- }
- }
-
- /**
- * @param string $oauthToken
- * @param string $oauthTokenSecret
- */
- public function setOauthToken($oauthToken, $oauthTokenSecret)
- {
- $this->token = new Token($oauthToken, $oauthTokenSecret);
- }
-
- /**
- * @return string|null
- */
- public function getLastApiPath()
- {
- return $this->response->getApiPath();
- }
-
- /**
- * @return int
- */
- public function getLastHttpCode()
- {
- return $this->response->getHttpCode();
- }
-
- /**
- * @return array
- */
- public function getLastXHeaders()
- {
- return $this->response->getXHeaders();
- }
-
- /**
- * @return array|object|null
- */
- public function getLastBody()
- {
- return $this->response->getBody();
- }
-
- /**
- * Resets the last response cache.
- */
- public function resetLastResponse()
- {
- $this->response = new Response();
- }
-
- /**
- * Make URLs for user browser navigation.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return string
- */
- public function url($path, array $parameters)
- {
- $this->resetLastResponse();
- $this->response->setApiPath($path);
- $query = http_build_query($parameters);
- return sprintf('%s/%s?%s', self::API_HOST, $path, $query);
- }
-
- /**
- * Make /oauth/* requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array
- * @throws TwitterOAuthException
- */
- public function oauth($path, array $parameters = [])
- {
- $response = [];
- $this->resetLastResponse();
- $this->response->setApiPath($path);
- $url = sprintf('%s/%s', self::API_HOST, $path);
- $result = $this->oAuthRequest($url, 'POST', $parameters);
-
- if ($this->getLastHttpCode() != 200) {
- throw new TwitterOAuthException($result);
- }
-
- parse_str($result, $response);
- $this->response->setBody($response);
-
- return $response;
- }
-
- /**
- * Make /oauth2/* requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function oauth2($path, array $parameters = [])
- {
- $method = 'POST';
- $this->resetLastResponse();
- $this->response->setApiPath($path);
- $url = sprintf('%s/%s', self::API_HOST, $path);
- $request = Request::fromConsumerAndToken($this->consumer, $this->token, $method, $url, $parameters);
- $authorization = 'Authorization: Basic ' . $this->encodeAppAuthorization($this->consumer);
- $result = $this->request($request->getNormalizedHttpUrl(), $method, $authorization, $parameters);
- $response = JsonDecoder::decode($result, $this->decodeJsonAsArray);
- $this->response->setBody($response);
- return $response;
- }
-
- /**
- * Make GET requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function get($path, array $parameters = [])
- {
- return $this->http('GET', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Make POST requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function post($path, array $parameters = [])
- {
- return $this->http('POST', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Make DELETE requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function delete($path, array $parameters = [])
- {
- return $this->http('DELETE', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Make PUT requests to the API.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- public function put($path, array $parameters = [])
- {
- return $this->http('PUT', self::API_HOST, $path, $parameters);
- }
-
- /**
- * Upload media to upload.twitter.com.
- *
- * @param string $path
- * @param array $parameters
- * @param boolean $chunked
- *
- * @return array|object
- */
- public function upload($path, array $parameters = [], $chunked = false)
- {
- if ($chunked) {
- return $this->uploadMediaChunked($path, $parameters);
- } else {
- return $this->uploadMediaNotChunked($path, $parameters);
- }
- }
-
- /**
- * Private method to upload media (not chunked) to upload.twitter.com.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- private function uploadMediaNotChunked($path, $parameters)
- {
- $file = file_get_contents($parameters['media']);
- $base = base64_encode($file);
- $parameters['media'] = $base;
- return $this->http('POST', self::UPLOAD_HOST, $path, $parameters);
- }
-
- /**
- * Private method to upload media (chunked) to upload.twitter.com.
- *
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- private function uploadMediaChunked($path, $parameters)
- {
- // Init
- $init = $this->http('POST', self::UPLOAD_HOST, $path, [
- 'command' => 'INIT',
- 'media_type' => $parameters['media_type'],
- 'total_bytes' => filesize($parameters['media'])
- ]);
- // Append
- $segment_index = 0;
- $media = fopen($parameters['media'], 'rb');
- while (!feof($media))
- {
- $this->http('POST', self::UPLOAD_HOST, 'media/upload', [
- 'command' => 'APPEND',
- 'media_id' => $init->media_id_string,
- 'segment_index' => $segment_index++,
- 'media_data' => base64_encode(fread($media, self::UPLOAD_CHUNK))
- ]);
- }
- fclose($media);
- // Finalize
- $finalize = $this->http('POST', self::UPLOAD_HOST, 'media/upload', [
- 'command' => 'FINALIZE',
- 'media_id' => $init->media_id_string
- ]);
- return $finalize;
- }
-
- /**
- * @param string $method
- * @param string $host
- * @param string $path
- * @param array $parameters
- *
- * @return array|object
- */
- private function http($method, $host, $path, array $parameters)
- {
- $this->resetLastResponse();
- $url = sprintf('%s/%s/%s.json', $host, self::API_VERSION, $path);
- $this->response->setApiPath($path);
- $result = $this->oAuthRequest($url, $method, $parameters);
- $response = JsonDecoder::decode($result, $this->decodeJsonAsArray);
- $this->response->setBody($response);
- return $response;
- }
-
- /**
- * Format and sign an OAuth / API request
- *
- * @param string $url
- * @param string $method
- * @param array $parameters
- *
- * @return string
- * @throws TwitterOAuthException
- */
- private function oAuthRequest($url, $method, array $parameters)
- {
- $request = Request::fromConsumerAndToken($this->consumer, $this->token, $method, $url, $parameters);
- if (array_key_exists('oauth_callback', $parameters)) {
- // Twitter doesn't like oauth_callback as a parameter.
- unset($parameters['oauth_callback']);
- }
- if ($this->bearer === null) {
- $request->signRequest($this->signatureMethod, $this->consumer, $this->token);
- $authorization = $request->toHeader();
- } else {
- $authorization = 'Authorization: Bearer ' . $this->bearer;
- }
- return $this->request($request->getNormalizedHttpUrl(), $method, $authorization, $parameters);
- }
-
- /**
- * Make an HTTP request
- *
- * @param string $url
- * @param string $method
- * @param string $authorization
- * @param array $postfields
- *
- * @return string
- * @throws TwitterOAuthException
- */
- private function request($url, $method, $authorization, $postfields)
- {
- /* Curl settings */
- $options = [
- // CURLOPT_VERBOSE => true,
- CURLOPT_CAINFO => __DIR__ . DIRECTORY_SEPARATOR . 'cacert.pem',
- CURLOPT_CONNECTTIMEOUT => $this->connectionTimeout,
- CURLOPT_HEADER => true,
- CURLOPT_HTTPHEADER => ['Accept: application/json', $authorization, 'Expect:'],
- CURLOPT_RETURNTRANSFER => true,
- CURLOPT_SSL_VERIFYHOST => 2,
- CURLOPT_SSL_VERIFYPEER => true,
- CURLOPT_TIMEOUT => $this->timeout,
- CURLOPT_URL => $url,
- CURLOPT_USERAGENT => $this->userAgent,
- CURLOPT_ENCODING => 'gzip',
- ];
-
- if (!empty($this->proxy)) {
- $options[CURLOPT_PROXY] = $this->proxy['CURLOPT_PROXY'];
- $options[CURLOPT_PROXYUSERPWD] = $this->proxy['CURLOPT_PROXYUSERPWD'];
- $options[CURLOPT_PROXYPORT] = $this->proxy['CURLOPT_PROXYPORT'];
- $options[CURLOPT_PROXYAUTH] = CURLAUTH_BASIC;
- $options[CURLOPT_PROXYTYPE] = CURLPROXY_HTTP;
- }
-
- switch ($method) {
- case 'GET':
- break;
- case 'POST':
- $options[CURLOPT_POST] = true;
- $options[CURLOPT_POSTFIELDS] = Util::buildHttpQuery($postfields);
- break;
- case 'DELETE':
- $options[CURLOPT_CUSTOMREQUEST] = 'DELETE';
- break;
- case 'PUT':
- $options[CURLOPT_CUSTOMREQUEST] = 'PUT';
- break;
- }
-
- if (in_array($method, ['GET', 'PUT', 'DELETE']) && !empty($postfields)) {
- $options[CURLOPT_URL] .= '?' . Util::buildHttpQuery($postfields);
- }
-
-
- $curlHandle = curl_init();
- curl_setopt_array($curlHandle, $options);
- $response = curl_exec($curlHandle);
-
- // Throw exceptions on cURL errors.
- if (curl_errno($curlHandle) > 0) {
- throw new TwitterOAuthException(curl_error($curlHandle), curl_errno($curlHandle));
- }
-
- $this->response->setHttpCode(curl_getinfo($curlHandle, CURLINFO_HTTP_CODE));
- $parts = explode("\r\n\r\n", $response);
- $responseBody = array_pop($parts);
- $responseHeader = array_pop($parts);
- $this->response->setHeaders($this->parseHeaders($responseHeader));
-
- curl_close($curlHandle);
-
- return $responseBody;
- }
-
- /**
- * Get the header info to store.
- *
- * @param string $header
- *
- * @return array
- */
- private function parseHeaders($header)
- {
- $headers = [];
- foreach (explode("\r\n", $header) as $line) {
- if (strpos($line, ':') !== false) {
- list ($key, $value) = explode(': ', $line);
- $key = str_replace('-', '_', strtolower($key));
- $headers[$key] = trim($value);
- }
- }
- return $headers;
- }
-
- /**
- * Encode application authorization header with base64.
- *
- * @param Consumer $consumer
- *
- * @return string
- */
- private function encodeAppAuthorization($consumer)
- {
- // TODO: key and secret should be rfc 1738 encoded
- $key = $consumer->key;
- $secret = $consumer->secret;
- return base64_encode($key . ':' . $secret);
- }
-}
diff --git a/milfs/toa/src/TwitterOAuthException.php b/milfs/toa/src/TwitterOAuthException.php
deleted file mode 100644
index 79903ec..0000000
--- a/milfs/toa/src/TwitterOAuthException.php
+++ /dev/null
@@ -1,10 +0,0 @@
-
- */
-class TwitterOAuthException extends \Exception
-{
-}
diff --git a/milfs/toa/src/Util.php b/milfs/toa/src/Util.php
deleted file mode 100644
index fff6143..0000000
--- a/milfs/toa/src/Util.php
+++ /dev/null
@@ -1,115 +0,0 @@
- array('b','c'), 'd' => 'e')
- *
- * @param mixed $input
- *
- * @return array
- */
- public static function parseParameters($input)
- {
- if (!isset($input) || !$input) {
- return [];
- }
-
- $pairs = explode('&', $input);
-
- $parameters = [];
- foreach ($pairs as $pair) {
- $split = explode('=', $pair, 2);
- $parameter = Util::urldecodeRfc3986($split[0]);
- $value = isset($split[1]) ? Util::urldecodeRfc3986($split[1]) : '';
-
- if (isset($parameters[$parameter])) {
- // We have already recieved parameter(s) with this name, so add to the list
- // of parameters with this name
-
- if (is_scalar($parameters[$parameter])) {
- // This is the first duplicate, so transform scalar (string) into an array
- // so we can add the duplicates
- $parameters[$parameter] = [$parameters[$parameter]];
- }
-
- $parameters[$parameter][] = $value;
- } else {
- $parameters[$parameter] = $value;
- }
- }
- return $parameters;
- }
-
- /**
- * @param $params
- *
- * @return string
- */
- public static function buildHttpQuery($params)
- {
- if (!$params) {
- return '';
- }
-
- // Urlencode both keys and values
- $keys = Util::urlencodeRfc3986(array_keys($params));
- $values = Util::urlencodeRfc3986(array_values($params));
- $params = array_combine($keys, $values);
-
- // Parameters are sorted by name, using lexicographical byte value ordering.
- // Ref: Spec: 9.1.1 (1)
- uksort($params, 'strcmp');
-
- $pairs = [];
- foreach ($params as $parameter => $value) {
- if (is_array($value)) {
- // If two or more parameters share the same name, they are sorted by their value
- // Ref: Spec: 9.1.1 (1)
- // June 12th, 2010 - changed to sort because of issue 164 by hidetaka
- sort($value, SORT_STRING);
- foreach ($value as $duplicateValue) {
- $pairs[] = $parameter . '=' . $duplicateValue;
- }
- } else {
- $pairs[] = $parameter . '=' . $value;
- }
- }
- // For each parameter, the name is separated from the corresponding value by an '=' character (ASCII code 61)
- // Each name-value pair is separated by an '&' character (ASCII code 38)
- return implode('&', $pairs);
- }
-}
diff --git a/milfs/toa/src/Util/JsonDecoder.php b/milfs/toa/src/Util/JsonDecoder.php
deleted file mode 100644
index c8589c5..0000000
--- a/milfs/toa/src/Util/JsonDecoder.php
+++ /dev/null
@@ -1,26 +0,0 @@
-
- */
-class JsonDecoder
-{
- /**
- * Decodes a JSON string to stdObject or associative array
- *
- * @param string $string
- * @param bool $asArray
- *
- * @return array|object
- */
- public static function decode($string, $asArray)
- {
- if (version_compare(PHP_VERSION, '5.4.0', '>=') && !(defined('JSON_C_VERSION') && PHP_INT_SIZE > 4)) {
- return json_decode($string, $asArray, 512, JSON_BIGINT_AS_STRING);
- }
-
- return json_decode($string, $asArray);
- }
-}
diff --git a/milfs/toa/src/cacert.pem b/milfs/toa/src/cacert.pem
deleted file mode 100644
index 742dc6e..0000000
--- a/milfs/toa/src/cacert.pem
+++ /dev/null
@@ -1,3952 +0,0 @@
-##
-## Bundle of CA Root Certificates
-##
-## Certificate data from Mozilla as of: Wed Oct 28 04:12:04 2015
-##
-## This is a bundle of X.509 certificates of public Certificate Authorities
-## (CA). These were automatically extracted from Mozilla's root certificates
-## file (certdata.txt). This file can be found in the mozilla source tree:
-## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
-##
-## It contains the certificates in PEM format and therefore
-## can be directly used with curl / libcurl / php_curl, or with
-## an Apache+mod_ssl webserver for SSL client authentication.
-## Just configure this file as the SSLCACertificateFile.
-##
-## Conversion done with mk-ca-bundle.pl version 1.25.
-## SHA1: 6d7d2f0a4fae587e7431be191a081ac1257d300a
-##
-
-
-Equifax Secure CA
-=================
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
-ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
-MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
-B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
-nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
-fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
-8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
-A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
-CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
-A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
-spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
-Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
-zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
-BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
-70+sB3c4
------END CERTIFICATE-----
-
-GlobalSign Root CA
-==================
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx
-GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
-b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV
-BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD
-VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa
-DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc
-THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb
-Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP
-c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX
-gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
-HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF
-AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj
-Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG
-j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH
-hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC
-X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
------END CERTIFICATE-----
-
-GlobalSign Root CA - R2
-=======================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6
-ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp
-s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN
-S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL
-TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C
-ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
-FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i
-YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN
-BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp
-9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu
-01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
-9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
-TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
------END CERTIFICATE-----
-
-Verisign Class 3 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1
-EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc
-cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw
-EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj
-055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
-j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0
-xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa
-t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
-Verisign Class 4 Public Primary Certification Authority - G3
-============================================================
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
-dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS
-tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM
-8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW
-Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX
-Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA
-j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
-mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd
-RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG
-UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
-Entrust.net Premium 2048 Secure Server CA
-=========================================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u
-ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp
-bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx
-NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3
-d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
-MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u
-ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL
-Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr
-hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW
-nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi
-VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ
-KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy
-T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
-zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT
-J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e
-nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE=
------END CERTIFICATE-----
-
-Baltimore CyberTrust Root
-=========================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE
-ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li
-ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC
-SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs
-dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME
-uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB
-UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C
-G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9
-XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr
-l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI
-VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
-BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh
-cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5
-hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa
-Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
-RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-AddTrust Low-Value Services Root
-================================
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU
-cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw
-CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO
-ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB
-AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6
-54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr
-oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1
-Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui
-GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w
-HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD
-AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT
-RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw
-HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt
-ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
-iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr
-mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj
-ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
-AddTrust External Root
-======================
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD
-VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw
-NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU
-cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg
-Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821
-+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw
-Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo
-aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy
-2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7
-7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P
-BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL
-VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk
-VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
-j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355
-e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u
-G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
-AddTrust Public Services Root
-=============================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU
-cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ
-BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l
-dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu
-nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i
-d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG
-Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw
-HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G
-A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G
-A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4
-JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
-+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9
-Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H
-EufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
-AddTrust Qualified Certificates Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU
-cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx
-CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
-IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG
-9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx
-64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3
-KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o
-L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR
-wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU
-MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE
-BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y
-azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD
-ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
-GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze
-RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB
-iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
------END CERTIFICATE-----
-
-Entrust Root Certification Authority
-====================================
------BEGIN CERTIFICATE-----
-MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw
-b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG
-A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0
-MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu
-MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu
-Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v
-dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz
-A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww
-Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68
-j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN
-rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1
-MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
-hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
-A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM
-Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa
-v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS
-W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0
-tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8
------END CERTIFICATE-----
-
-RSA Security 2048 v3
-====================
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK
-ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy
-MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb
-BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
-AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7
-Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb
-WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH
-KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP
-+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/
-MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E
-FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY
-v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj
-0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj
-VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395
-nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
-pKnXwiJPZ9d37CAFYd4=
------END CERTIFICATE-----
-
-GeoTrust Global CA
-==================
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
-Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw
-MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo
-BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet
-8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc
-T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU
-vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD
-AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk
-DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q
-zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4
-d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2
-mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p
-XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
-Mw==
------END CERTIFICATE-----
-
-GeoTrust Global CA 2
-====================
------BEGIN CERTIFICATE-----
-MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw
-MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j
-LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/
-NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k
-LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA
-Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b
-HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH
-K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7
-srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh
-ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL
-OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC
-x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
-H4z1Ir+rzoPz4iIprn2DQKi6bA==
------END CERTIFICATE-----
-
-GeoTrust Universal CA
-=====================
------BEGIN CERTIFICATE-----
-MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1
-MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu
-Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t
-JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e
-RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs
-7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d
-8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V
-qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga
-Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB
-Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu
-KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08
-ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0
-XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
-hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
-aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2
-qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL
-oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK
-xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF
-KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2
-DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK
-xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU
-p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI
-P/rmMuGNG2+k5o7Y+SlIis5z/iw=
------END CERTIFICATE-----
-
-GeoTrust Universal CA 2
-=======================
------BEGIN CERTIFICATE-----
-MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN
-R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0
-MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg
-SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0
-DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17
-j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q
-JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a
-QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2
-WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP
-20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn
-ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC
-SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG
-8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2
-+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
-BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
-dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ
-4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+
-mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq
-A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg
-Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP
-pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d
-FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp
-gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm
-X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
------END CERTIFICATE-----
-
-Visa eCommerce Root
-===================
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG
-EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug
-QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2
-WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm
-VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL
-F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b
-RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0
-TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI
-/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs
-GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
-MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc
-CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW
-YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz
-zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
-YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
-Certum Root CA
-==============
------BEGIN CERTIFICATE-----
-MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
-ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
-Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
-by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
-wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
-kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
-89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
-Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
-NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
-hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
-GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
-GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
-0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
-qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
------END CERTIFICATE-----
-
-Comodo AAA Services root
-========================
------BEGIN CERTIFICATE-----
-MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw
-MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl
-c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
-BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG
-C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs
-i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW
-Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH
-Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK
-Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f
-BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl
-cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz
-LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
-7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
-Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z
-8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C
-12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
------END CERTIFICATE-----
-
-Comodo Secure Services root
-===========================
------BEGIN CERTIFICATE-----
-MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw
-MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
-Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi
-BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP
-9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc
-rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC
-oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V
-p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E
-FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj
-YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm
-aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
-4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj
-Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL
-DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw
-pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H
-RR3B7Hzs/Sk=
------END CERTIFICATE-----
-
-Comodo Trusted Services root
-============================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS
-R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg
-TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw
-MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h
-bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw
-IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7
-3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y
-/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6
-juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS
-ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud
-DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
-/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp
-ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl
-cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
-uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32
-pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA
-BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l
-R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O
-9y5Xt5hwXsjEeLBi
------END CERTIFICATE-----
-
-QuoVadis Root CA
-================
------BEGIN CERTIFICATE-----
-MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE
-ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz
-MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp
-cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD
-EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk
-J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL
-F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL
-YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen
-AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w
-PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y
-ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7
-MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj
-YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
-ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
-Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW
-Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu
-BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw
-FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6
-tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo
-fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul
-LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x
-gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi
-5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi
-5nrQNiOKSnQ2+Q==
------END CERTIFICATE-----
-
-QuoVadis Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx
-ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6
-XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk
-lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB
-lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy
-lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt
-66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn
-wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh
-D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy
-BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie
-J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud
-DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
-a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
-ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv
-Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3
-UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm
-VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK
-+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW
-IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1
-WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X
-f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II
-4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8
-VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
------END CERTIFICATE-----
-
-QuoVadis Root CA 3
-==================
------BEGIN CERTIFICATE-----
-MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT
-EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx
-OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
-aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg
-DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij
-KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K
-DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv
-BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp
-p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8
-nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX
-MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM
-Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz
-uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT
-BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
-YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
-aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB
-BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD
-VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4
-ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE
-AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV
-qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s
-hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z
-POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2
-Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp
-8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC
-bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu
-g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p
-vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr
-qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
------END CERTIFICATE-----
-
-Security Communication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP
-U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw
-8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM
-DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX
-5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd
-DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2
-JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw
-DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g
-0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a
-mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ
-s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ
-6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
-FL39vmwLAw==
------END CERTIFICATE-----
-
-Sonera Class 2 Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG
-U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw
-NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh
-IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3
-/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT
-dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG
-f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P
-tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH
-nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT
-XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt
-0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI
-cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph
-Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx
-EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
-llpwrN9M
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA
-=============================
------BEGIN CERTIFICATE-----
-MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE
-ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w
-HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh
-bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt
-vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P
-jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca
-C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth
-vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6
-22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV
-HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v
-dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN
-BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR
-EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw
-MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
-nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
-iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
------END CERTIFICATE-----
-
-UTN DATACorp SGC Root CA
-========================
------BEGIN CERTIFICATE-----
-MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ
-BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa
-MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w
-HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy
-dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys
-raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo
-wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA
-9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv
-33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud
-DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9
-BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD
-LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
-DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft
-Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0
-I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx
-EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP
-DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
------END CERTIFICATE-----
-
-UTN USERFirst Hardware Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE
-BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl
-IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd
-BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx
-OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0
-eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz
-ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI
-wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd
-tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8
-i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf
-Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw
-gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF
-lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF
-UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
-BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM
-//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW
-XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2
-lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn
-iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67
-nfhmqA==
------END CERTIFICATE-----
-
-Camerfirma Chambers of Commerce Root
-====================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
-NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
-cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
-MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
-AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
-xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
-NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
-DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
-d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
-EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
-cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
-AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
-bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
-VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
-aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
-fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
-L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
-UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
-ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
-erfutGWaIZDgqtCYvDi1czyL+Nw=
------END CERTIFICATE-----
-
-Camerfirma Global Chambersign Root
-==================================
------BEGIN CERTIFICATE-----
-MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
-QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
-ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
-NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
-YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
-MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
-ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
-1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
-by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
-6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
-8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
-BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
-aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
-Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
-aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
-ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
-bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
-PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
-gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
-PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
-IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
-t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
------END CERTIFICATE-----
-
-NetLock Notary (Class A) Root
-=============================
------BEGIN CERTIFICATE-----
-MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI
-EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6
-dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j
-ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX
-DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH
-EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD
-VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz
-cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM
-D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ
-z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC
-/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7
-tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6
-4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG
-A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC
-Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
-bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
-IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn
-LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0
-ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz
-IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh
-IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu
-b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh
-bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg
-Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp
-bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5
-ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP
-ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB
-CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr
-KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM
-8CgHrTwXZoi1/baI
------END CERTIFICATE-----
-
-XRamp Global CA Root
-====================
------BEGIN CERTIFICATE-----
-MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
-BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj
-dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx
-HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg
-U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu
-IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx
-foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE
-zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs
-AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry
-xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap
-oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC
-AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
-/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
-qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n
-nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz
-8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
------END CERTIFICATE-----
-
-Go Daddy Class 2 CA
-===================
------BEGIN CERTIFICATE-----
-MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
-VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG
-A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g
-RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD
-ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv
-2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32
-qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j
-YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY
-vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O
-BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o
-atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu
-MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG
-A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim
-PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
-I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
-HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI
-Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b
-vZ8=
------END CERTIFICATE-----
-
-Starfield Class 2 CA
-====================
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc
-U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo
-MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
-A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG
-SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY
-bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ
-JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm
-epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN
-F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF
-MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f
-hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo
-bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g
-QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs
-afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
-PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
-xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD
-KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
-QBFGmh95DmK/D5fs4C8fF5Q=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
-FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
-Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
-YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
-AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
-Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
-U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
-LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
-cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
-cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
-dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
-AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
-3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
-vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
-fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
-fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
-EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
-yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
-1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
-lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
-g14=
------END CERTIFICATE-----
-
-Taiwan GRCA
-===========
------BEGIN CERTIFICATE-----
-MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG
-EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
-DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv
-dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN
-w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5
-BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O
-1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO
-htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov
-J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7
-Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t
-B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB
-O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8
-lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV
-HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
-09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
-TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj
-Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2
-Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU
-D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz
-DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk
-Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk
-7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ
-CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy
-+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS
------END CERTIFICATE-----
-
-Swisscom Root CA 1
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4
-MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM
-MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF
-NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe
-AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC
-b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn
-7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN
-cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp
-WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5
-haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY
-MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
-BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9
-MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn
-jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ
-MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H
-VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl
-vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl
-OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3
-1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq
-nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy
-x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW
-NY6E0F/6MBr1mmz0DlP5OlvRHA==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx
-MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO
-9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy
-UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW
-/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy
-oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf
-GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF
-66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq
-hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc
-EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn
-SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
-8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
-+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
------END CERTIFICATE-----
-
-DigiCert Global Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw
-MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn
-TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5
-BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H
-4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y
-7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB
-o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm
-8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF
-BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr
-EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt
-tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
-UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
-CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
------END CERTIFICATE-----
-
-DigiCert High Assurance EV Root CA
-==================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
-KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
-MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
-MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
-Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
-Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
-OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
-MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
-NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
-h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
-Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
-JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
-V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
-myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
-mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
------END CERTIFICATE-----
-
-Certplus Class 2 Primary CA
-===========================
------BEGIN CERTIFICATE-----
-MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE
-BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN
-OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy
-dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR
-5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ
-Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO
-YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e
-e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME
-CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ
-YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t
-L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD
-P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R
-TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+
-7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
-//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
-l7+ijrRU
------END CERTIFICATE-----
-
-DST Root CA X3
-==============
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK
-ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X
-DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1
-cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT
-rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9
-UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy
-xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d
-utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ
-MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug
-dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE
-GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw
-RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
-fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
------END CERTIFICATE-----
-
-DST ACES CA X6
-==============
------BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
-MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
-MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
-CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
-DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
-pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
-GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
-MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
-EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
-Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
-dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
-CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
-5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
-Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
-nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
-vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
-oKfN5XozNmr6mis=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2
-==============================================
------BEGIN CERTIFICATE-----
-MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN
-MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr
-dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe
-LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI
-x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g
-QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr
-5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB
-AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G
-A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
-Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4
-Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+
-hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P
-9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5
-UrbnBEI=
------END CERTIFICATE-----
-
-SwissSign Gold CA - G2
-======================
------BEGIN CERTIFICATE-----
-MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw
-EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN
-MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp
-c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq
-t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C
-jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg
-vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF
-ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR
-AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend
-jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO
-peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR
-7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi
-GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
-OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
-L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm
-5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr
-44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf
-Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m
-Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp
-mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk
-vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf
-KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br
-NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj
-viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
------END CERTIFICATE-----
-
-SwissSign Silver CA - G2
-========================
------BEGIN CERTIFICATE-----
-MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT
-BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X
-DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
-aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG
-9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644
-N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm
-+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH
-6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu
-MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h
-qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5
-FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs
-ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc
-celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X
-CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
-tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
-cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P
-4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F
-kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L
-3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx
-/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa
-DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP
-e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu
-WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ
-DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub
-DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority
-========================================
------BEGIN CERTIFICATE-----
-MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx
-CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ
-cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN
-b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9
-nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge
-RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt
-tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI
-hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K
-Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN
-NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa
-Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
-1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
------END CERTIFICATE-----
-
-thawte Primary Root CA
-======================
------BEGIN CERTIFICATE-----
-MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3
-MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
-SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv
-KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT
-FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs
-oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ
-1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc
-q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K
-aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p
-afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD
-VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF
-AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
-uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
-xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89
-jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH
-z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G5
-============================================================
------BEGIN CERTIFICATE-----
-MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB
-yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
-biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh
-dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz
-j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD
-Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/
-Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r
-fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/
-BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
-Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
-aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG
-SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+
-X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE
-KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC
-Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE
-ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
------END CERTIFICATE-----
-
-SecureTrust CA
-==============
------BEGIN CERTIFICATE-----
-MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy
-dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe
-BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX
-OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t
-DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH
-GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b
-01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH
-ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/
-BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj
-aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu
-SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf
-mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
-nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
-3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
------END CERTIFICATE-----
-
-Secure Global CA
-================
------BEGIN CERTIFICATE-----
-MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG
-EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH
-bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg
-MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg
-Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx
-YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ
-bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g
-8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV
-HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi
-0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn
-oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA
-MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+
-OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn
-CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
-3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
-f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
------END CERTIFICATE-----
-
-COMODO Certification Authority
-==============================
------BEGIN CERTIFICATE-----
-MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1
-dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb
-MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD
-T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH
-+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww
-xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV
-4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA
-1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI
-rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k
-b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC
-AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
-OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
-RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc
-IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN
-+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
------END CERTIFICATE-----
-
-Network Solutions Certificate Authority
-=======================================
------BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG
-EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr
-IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx
-MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
-MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx
-jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT
-aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT
-crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc
-/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB
-AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv
-bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA
-A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q
-4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/
-GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv
-wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD
-ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey
------END CERTIFICATE-----
-
-WellsSecure Public Root Certificate Authority
-=============================================
------BEGIN CERTIFICATE-----
-MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM
-F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw
-NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
-MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl
-bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD
-VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1
-iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13
-i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8
-bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB
-K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB
-AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu
-cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm
-lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB
-i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww
-GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI
-K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0
-bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj
-qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es
-E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ
-tylv2G0xffX8oRAHh84vWdw+WNs=
------END CERTIFICATE-----
-
-COMODO ECC Certification Authority
-==================================
------BEGIN CERTIFICATE-----
-MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC
-R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
-ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix
-GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
-Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo
-b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X
-4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni
-wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E
-BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG
-FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
-U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
------END CERTIFICATE-----
-
-IGC/A
-=====
------BEGIN CERTIFICATE-----
-MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD
-VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE
-Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy
-MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI
-EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT
-STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2
-TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW
-So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy
-HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd
-frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ
-tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB
-egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC
-iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK
-q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q
-MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
-Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI
-lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF
-0mBWWg==
------END CERTIFICATE-----
-
-Security Communication EV RootCA1
-=================================
------BEGIN CERTIFICATE-----
-MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
-BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
-Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
-/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
-WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
-ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
-bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
-9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
-SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
-iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
-Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
-mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
-T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
------END CERTIFICATE-----
-
-OISTE WISeKey Global Root GA CA
-===============================
------BEGIN CERTIFICATE-----
-MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE
-BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG
-A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH
-bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD
-VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw
-IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5
-IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9
-Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg
-Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD
-d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ
-/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R
-LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
-KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm
-MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4
-+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
-hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY
-okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0=
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA
-=========================
------BEGIN CERTIFICATE-----
-MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE
-BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL
-EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0
-MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz
-dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT
-GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG
-d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N
-oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc
-QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ
-PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb
-MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG
-IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD
-VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3
-LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A
-dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
-AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA
-4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg
-AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA
-egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6
-Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO
-PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv
-c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h
-cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw
-IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT
-WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV
-MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER
-MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp
-Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal
-HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT
-nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE
-aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
-86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK
-yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB
-S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
------END CERTIFICATE-----
-
-Certigna
-========
------BEGIN CERTIFICATE-----
-MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw
-EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3
-MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI
-Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q
-XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH
-GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p
-ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg
-DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf
-Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ
-tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ
-BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J
-SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
-hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+
-ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu
-PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
-1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
-WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
------END CERTIFICATE-----
-
-Deutsche Telekom Root CA 2
-==========================
------BEGIN CERTIFICATE-----
-MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT
-RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG
-A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5
-MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G
-A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS
-b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5
-bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI
-KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY
-AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK
-Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV
-jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV
-HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr
-E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy
-zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8
-rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G
-dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
-Cm26OWMohpLzGITY+9HPBVZkVw==
------END CERTIFICATE-----
-
-Cybertrust Global Root
-======================
------BEGIN CERTIFICATE-----
-MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li
-ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4
-MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD
-ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
-+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW
-0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL
-AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin
-89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT
-8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2
-MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G
-A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO
-lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi
-5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2
-hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T
-X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
-WL1WMRJOEcgh4LMRkWXbtKaIOM5V
------END CERTIFICATE-----
-
-ePKI Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG
-EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg
-Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx
-MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq
-MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B
-AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs
-IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi
-lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv
-qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX
-12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O
-WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+
-ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao
-lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/
-vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi
-Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi
-MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
-ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0
-1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq
-KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV
-xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP
-NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r
-GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE
-xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx
-gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy
-sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
-BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
------END CERTIFICATE-----
-
-T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
-=============================================================================================================================
------BEGIN CERTIFICATE-----
-MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
-DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
-aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
-b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
-BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
-S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
-MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
-IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
-n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
-IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
-dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
-cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
-Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
-xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
-6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
-hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
-BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
-N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
-y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
-LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
-dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
------END CERTIFICATE-----
-
-Buypass Class 2 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2
-MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
-c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M
-cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83
-0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4
-0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R
-uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P
-AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV
-1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt
-7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2
-fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
-wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
------END CERTIFICATE-----
-
-EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
-==========================================================================
------BEGIN CERTIFICATE-----
-MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg
-QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe
-Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p
-ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt
-IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG
-SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by
-X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b
-gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr
-eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ
-TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy
-Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn
-uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI
-qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm
-ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0
-Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW
-Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t
-FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm
-zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k
-XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT
-bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU
-RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK
-1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt
-2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ
-Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9
-AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
------END CERTIFICATE-----
-
-certSIGN ROOT CA
-================
------BEGIN CERTIFICATE-----
-MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD
-VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa
-Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE
-CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I
-JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH
-rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2
-ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD
-0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943
-AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
-Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB
-AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8
-SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0
-x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt
-vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
-TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
------END CERTIFICATE-----
-
-CNNIC ROOT
-==========
------BEGIN CERTIFICATE-----
-MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE
-ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw
-OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD
-o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz
-VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT
-VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or
-czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK
-y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC
-wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S
-lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5
-Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM
-O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8
-BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2
-G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m
-mxE=
------END CERTIFICATE-----
-
-ApplicationCA - Japanese Government
-===================================
------BEGIN CERTIFICATE-----
-MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT
-SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw
-MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl
-cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4
-fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN
-wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE
-jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu
-nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU
-WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV
-BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD
-vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs
-o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g
-/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD
-io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW
-dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
-rosot4LKGAfmt1t06SAZf7IbiVQ=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G3
-=============================================
------BEGIN CERTIFICATE-----
-MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE
-BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0
-IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy
-eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz
-NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo
-YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT
-LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j
-K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE
-c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C
-IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu
-dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr
-2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9
-cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE
-Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
-AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s
-t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt
------END CERTIFICATE-----
-
-thawte Primary Root CA - G2
-===========================
------BEGIN CERTIFICATE-----
-MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC
-VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu
-IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg
-Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV
-MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG
-b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt
-IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS
-LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5
-8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU
-mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN
-G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K
-rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
------END CERTIFICATE-----
-
-thawte Primary Root CA - G3
-===========================
------BEGIN CERTIFICATE-----
-MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE
-BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2
-aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv
-cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w
-ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
-d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD
-VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG
-A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
-MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At
-P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC
-+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY
-7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW
-vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ
-KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK
-A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
-t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC
-8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm
-er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A=
------END CERTIFICATE-----
-
-GeoTrust Primary Certification Authority - G2
-=============================================
------BEGIN CERTIFICATE-----
-MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
-VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
-Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
-ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
-OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
-MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
-b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
-BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
-KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
-VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
-EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
-ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
-npaqBA+K
------END CERTIFICATE-----
-
-VeriSign Universal Root Certification Authority
-===============================================
------BEGIN CERTIFICATE-----
-MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
-BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
-ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
-IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
-IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
-IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
-aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
-1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
-MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
-9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
-AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
-tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
-CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
-a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
-DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
-Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
-Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
-P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
-wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
-mJO37M2CYfE45k+XmCpajQ==
------END CERTIFICATE-----
-
-VeriSign Class 3 Public Primary Certification Authority - G4
-============================================================
------BEGIN CERTIFICATE-----
-MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC
-VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3
-b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz
-ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj
-YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL
-MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU
-cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo
-b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5
-IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8
-Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz
-rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB
-/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw
-HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u
-Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD
-A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx
-AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
------END CERTIFICATE-----
-
-NetLock Arany (Class Gold) Főtanúsítvány
-============================================
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
-A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
-dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB
-cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx
-MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO
-ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6
-c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu
-0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw
-/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk
-H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw
-fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1
-neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB
-BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW
-qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta
-YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
-bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna
-NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu
-dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA - G2
-==================================
------BEGIN CERTIFICATE-----
-MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC
-TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
-ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ
-5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn
-vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj
-CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil
-e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR
-OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI
-CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65
-48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi
-trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737
-qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB
-AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC
-ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
-HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA
-A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz
-+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj
-f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN
-kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk
-CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF
-URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb
-CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h
-oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV
-IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm
-66+KAQ==
------END CERTIFICATE-----
-
-CA Disig
-========
------BEGIN CERTIFICATE-----
-MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK
-QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw
-MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz
-bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm
-GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD
-Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo
-hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt
-ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w
-gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P
-AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz
-aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff
-ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa
-BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t
-WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3
-mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
-CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K
-ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA
-4Z7CRneC9VkGjCFMhwnN5ag=
------END CERTIFICATE-----
-
-Juur-SK
-=======
------BEGIN CERTIFICATE-----
-MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA
-c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw
-DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG
-SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy
-aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf
-TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC
-+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw
-UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa
-Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF
-MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD
-HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh
-AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA
-cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr
-AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw
-cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
-FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G
-A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo
-ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL
-abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678
-IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh
-Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2
-yyqcjg==
------END CERTIFICATE-----
-
-Hongkong Post Root CA 1
-=======================
------BEGIN CERTIFICATE-----
-MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT
-DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx
-NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n
-IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1
-ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr
-auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh
-qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY
-V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV
-HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i
-h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio
-l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei
-IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps
-T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT
-c4afU9hDDl3WY4JxHYB0yvbiAmvZWg==
------END CERTIFICATE-----
-
-SecureSign RootCA11
-===================
------BEGIN CERTIFICATE-----
-MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi
-SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS
-b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw
-KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1
-cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL
-TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO
-wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq
-g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP
-O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA
-bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX
-t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh
-OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r
-bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ
-Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01
-y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
-lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
------END CERTIFICATE-----
-
-ACEDICOM Root
-=============
------BEGIN CERTIFICATE-----
-MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
-T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
-MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
-A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
-AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
-WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
-YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
-MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
-m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
-HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
-xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
-3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
-2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
-TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
-4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
-9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
-bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
-aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
-eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
-zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
-ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
-KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
-nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
-I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
-MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
-tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
------END CERTIFICATE-----
-
-Microsec e-Szigno Root CA 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER
-MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv
-c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
-dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE
-BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt
-U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA
-fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG
-0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA
-pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm
-1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC
-AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf
-QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE
-FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o
-lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX
-I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
-tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02
-yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
-LXpUq3DDfSJlgnCW
------END CERTIFICATE-----
-
-GlobalSign Root CA - R3
-=======================
------BEGIN CERTIFICATE-----
-MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv
-YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh
-bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT
-aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln
-bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt
-iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ
-0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3
-rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl
-OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2
-xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7
-lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8
-EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E
-bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18
-YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r
-kpeDMdmztcpHWD9f
------END CERTIFICATE-----
-
-Autoridad de Certificacion Firmaprofesional CIF A62634068
-=========================================================
------BEGIN CERTIFICATE-----
-MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA
-BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2
-MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw
-QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB
-NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD
-Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P
-B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY
-7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH
-ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI
-plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX
-MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX
-LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK
-bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU
-vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud
-EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH
-DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
-cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA
-bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx
-ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx
-51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk
-R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP
-T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f
-Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl
-osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR
-crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR
-saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD
-KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi
-6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
------END CERTIFICATE-----
-
-Izenpe.com
-==========
------BEGIN CERTIFICATE-----
-MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG
-EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz
-MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu
-QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ
-03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK
-ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU
-+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC
-PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT
-OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK
-F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK
-0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+
-0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB
-leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID
-AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+
-SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG
-NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx
-MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
-BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l
-Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga
-kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q
-hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs
-g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5
-aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5
-nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC
-ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo
-Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z
-WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw==
------END CERTIFICATE-----
-
-Chambers of Commerce Root - 2008
-================================
------BEGIN CERTIFICATE-----
-MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy
-Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl
-ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF
-EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl
-cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
-AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA
-XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj
-h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/
-ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk
-NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g
-D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331
-lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ
-0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
-ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2
-EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI
-G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ
-BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh
-bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh
-bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC
-CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH
-AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1
-wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH
-3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU
-RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6
-M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1
-YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF
-9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK
-zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG
-nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
-OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ
------END CERTIFICATE-----
-
-Global Chambersign Root - 2008
-==============================
------BEGIN CERTIFICATE-----
-MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD
-MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv
-bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu
-QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx
-NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg
-Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ
-QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
-aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf
-VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf
-XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0
-ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB
-/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA
-TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M
-H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe
-Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF
-HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
-wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB
-AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT
-BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE
-BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm
-aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm
-aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp
-1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0
-dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG
-/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6
-ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s
-dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg
-9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH
-foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du
-qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr
-P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq
-c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
-09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
------END CERTIFICATE-----
-
-Go Daddy Root Certificate Authority - G2
-========================================
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu
-MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
-MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
-b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G
-A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq
-9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD
-+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd
-fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl
-NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9
-BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac
-vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r
-5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV
-N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
-LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1
------END CERTIFICATE-----
-
-Starfield Root Certificate Authority - G2
-=========================================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
-eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw
-DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg
-VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB
-dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv
-W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs
-bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk
-N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf
-ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU
-JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol
-TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx
-4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw
-F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
-pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ
-c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
------END CERTIFICATE-----
-
-Starfield Services Root Certificate Authority - G2
-==================================================
------BEGIN CERTIFICATE-----
-MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
-B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s
-b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl
-IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV
-BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT
-dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg
-Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2
-h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa
-hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP
-LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB
-rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw
-AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG
-SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP
-E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy
-xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
-iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza
-YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6
------END CERTIFICATE-----
-
-AffirmTrust Commercial
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw
-MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb
-DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV
-C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6
-BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww
-MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV
-HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG
-hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi
-qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv
-0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh
-sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
------END CERTIFICATE-----
-
-AffirmTrust Networking
-======================
------BEGIN CERTIFICATE-----
-MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw
-MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly
-bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE
-Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI
-dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24
-/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb
-h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV
-HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu
-UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6
-12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23
-WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9
-/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
------END CERTIFICATE-----
-
-AffirmTrust Premium
-===================
------BEGIN CERTIFICATE-----
-MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS
-BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy
-OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy
-dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn
-BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV
-5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs
-+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd
-GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R
-p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI
-S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04
-6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5
-/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo
-+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv
-MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
-Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC
-6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S
-L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK
-+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV
-BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg
-IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60
-g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb
-zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw==
------END CERTIFICATE-----
-
-AffirmTrust Premium ECC
-=======================
------BEGIN CERTIFICATE-----
-MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV
-BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx
-MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U
-cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA
-IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ
-N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW
-BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK
-BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X
-57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM
-eQ==
------END CERTIFICATE-----
-
-Certum Trusted Network CA
-=========================
------BEGIN CERTIFICATE-----
-MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK
-ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy
-MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU
-ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC
-l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J
-J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4
-fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0
-cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB
-Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw
-DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj
-jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1
-mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj
-Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
------END CERTIFICATE-----
-
-Certinomis - Autorité Racine
-=============================
------BEGIN CERTIFICATE-----
-MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
-Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
-LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
-A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
-JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
-ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
-wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
-Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
-2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
-jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
-c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
-lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
-xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
-530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
-4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
-A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
-KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
-WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
-R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
-nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
-CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
-JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
-qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
-WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
-wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
-vgt2Fl43N+bYdJeimUV5
------END CERTIFICATE-----
-
-Root CA Generalitat Valenciana
-==============================
------BEGIN CERTIFICATE-----
-MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE
-ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290
-IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3
-WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE
-CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G
-CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2
-F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B
-ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ
-D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte
-JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB
-AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n
-dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB
-ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl
-AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA
-YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy
-AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
-aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt
-AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA
-YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu
-AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA
-OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0
-dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV
-BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G
-A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S
-b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh
-TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz
-Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63
-NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH
-iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt
-+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
------END CERTIFICATE-----
-
-A-Trust-nQual-03
-================
------BEGIN CERTIFICATE-----
-MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE
-Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
-a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R
-dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw
-RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0
-ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1
-c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA
-zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n
-yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE
-SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4
-iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V
-cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV
-eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40
-ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr
-sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd
-JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS
-mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6
-ahq97BvIxYSazQ==
------END CERTIFICATE-----
-
-TWCA Root Certification Authority
-=================================
------BEGIN CERTIFICATE-----
-MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ
-VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG
-EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB
-IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx
-QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC
-oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP
-4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r
-y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB
-BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG
-9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC
-mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW
-QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY
-T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny
-Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
------END CERTIFICATE-----
-
-Security Communication RootCA2
-==============================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
-U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh
-dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC
-SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy
-aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++
-+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R
-3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV
-spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K
-EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8
-QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
-CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj
-u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk
-3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q
-tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
-mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
------END CERTIFICATE-----
-
-EC-ACC
-======
------BEGIN CERTIFICATE-----
-MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE
-BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w
-ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD
-VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE
-CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT
-BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7
-MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt
-SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl
-Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh
-cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK
-w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT
-ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4
-HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a
-E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw
-0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD
-VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0
-Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l
-dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ
-lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa
-Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe
-l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2
-E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D
-5EI=
------END CERTIFICATE-----
-
-Hellenic Academic and Research Institutions RootCA 2011
-=======================================================
------BEGIN CERTIFICATE-----
-MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
-O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
-aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
-AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
-IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
-IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
-AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
-1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
-71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
-8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
-3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
-MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
-MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
-b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
-XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
-TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
-/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
-7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
------END CERTIFICATE-----
-
-Actalis Authentication Root CA
-==============================
------BEGIN CERTIFICATE-----
-MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM
-BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE
-AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky
-MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz
-IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
-IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ
-wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa
-by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6
-zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f
-YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2
-oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l
-EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7
-hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8
-EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5
-jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY
-iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
-ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI
-WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0
-JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx
-K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+
-Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC
-4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo
-2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz
-lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem
-OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9
-vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
------END CERTIFICATE-----
-
-Trustis FPS Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG
-EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290
-IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV
-BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ
-KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ
-RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk
-H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa
-cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt
-o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA
-AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd
-BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c
-GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC
-yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P
-8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV
-l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
-iB6XzCGcKQENZetX2fNXlrtIzYE=
------END CERTIFICATE-----
-
-StartCom Certification Authority
-================================
------BEGIN CERTIFICATE-----
-MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
-ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
-NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
-LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
-U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
-ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
-o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
-Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
-eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
-2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
-6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
-osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
-untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
-UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
-37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
-VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
-Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
-dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
-c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
-bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
-aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
-aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
-L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
-cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
-fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
-N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
-Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
-tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
-e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
-2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
-HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
-JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
-D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
------END CERTIFICATE-----
-
-StartCom Certification Authority G2
-===================================
------BEGIN CERTIFICATE-----
-MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
-U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
-ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
-o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
-4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
-Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
-Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
-O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
-vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
-nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
-FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
-z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
-BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
-KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
-2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
-J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
-JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
-/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
-nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
-blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
-l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
-7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
-obp573PYtlNXLfbQ4ddI
------END CERTIFICATE-----
-
-Buypass Class 2 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X
-DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1
-g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn
-9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b
-/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU
-CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff
-awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI
-zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn
-Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX
-Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs
-M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
-A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI
-osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S
-aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd
-DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD
-LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0
-oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC
-wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS
-CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN
-rJgWVqA=
------END CERTIFICATE-----
-
-Buypass Class 3 Root CA
-=======================
------BEGIN CERTIFICATE-----
-MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X
-DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1
-eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH
-sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR
-5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh
-7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ
-ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH
-2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV
-/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ
-RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA
-Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq
-j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD
-VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF
-AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
-cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G
-uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG
-Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8
-ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2
-KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz
-6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug
-UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe
-eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi
-Cp/HuZc=
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 3
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx
-MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK
-9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU
-NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF
-iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W
-0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr
-AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb
-fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT
-ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h
-P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml
-e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw==
------END CERTIFICATE-----
-
-EE Certification Centre Root CA
-===============================
------BEGIN CERTIFICATE-----
-MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy
-dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw
-MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB
-UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy
-ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM
-TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2
-rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw
-93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN
-P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T
-AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ
-MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF
-BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj
-xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM
-lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
-uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
-3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM
-dcGWxZ0=
------END CERTIFICATE-----
-
-TURKTRUST Certificate Services Provider Root 2007
-=================================================
------BEGIN CERTIFICATE-----
-MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
-MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
-QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
-DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
-a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
-BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
-bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
-YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
-KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
-KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
-rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
-AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
-BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
-Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
-aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
-Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
-BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
-poRq0Tl9
------END CERTIFICATE-----
-
-D-TRUST Root Class 3 CA 2 2009
-==============================
------BEGIN CERTIFICATE-----
-MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe
-Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE
-LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD
-ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA
-BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv
-KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z
-p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC
-AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ
-4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y
-eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw
-MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G
-PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw
-OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm
-2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
-o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV
-dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph
-X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I=
------END CERTIFICATE-----
-
-D-TRUST Root Class 3 CA 2 EV 2009
-=================================
------BEGIN CERTIFICATE-----
-MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
-OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK
-DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw
-OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS
-egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh
-zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T
-7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60
-sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35
-11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv
-cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v
-ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El
-MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp
-b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh
-c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+
-PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
-nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX
-ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA
-NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
-w9y4AyHqnxbxLFS1
------END CERTIFICATE-----
-
-PSCProcert
-==========
------BEGIN CERTIFICATE-----
-MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
-ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
-MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
-dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
-cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
-IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
-MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
-DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
-ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
-Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
-wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
-3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
-RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
-EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
-0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
-0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
-td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
-Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
-r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
-AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
-Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
-xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
-ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
-EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
-Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
-ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
-9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
-MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
-LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
-ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
-YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
-Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
-dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
-T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
-g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
-uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
-n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
-FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
-5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
-3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
-poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
-eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
------END CERTIFICATE-----
-
-China Internet Network Information Center EV Certificates Root
-==============================================================
------BEGIN CERTIFICATE-----
-MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV
-BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D
-aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg
-Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG
-A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM
-PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl
-cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y
-jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV
-98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H
-klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23
-KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC
-7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD
-glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5
-0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM
-7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
-ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0
-5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=
------END CERTIFICATE-----
-
-Swisscom Root CA 2
-==================
------BEGIN CERTIFICATE-----
-MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG
-EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy
-dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2
-MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln
-aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM
-LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo
-ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ
-wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH
-Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a
-SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS
-NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab
-mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY
-Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3
-qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
-HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
-BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu
-MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO
-v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ
-82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz
-o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs
-a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx
-OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW
-mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o
-+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC
-rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX
-5OfNeOI5wSsSnqaeG8XmDtkx2Q==
------END CERTIFICATE-----
-
-Swisscom Root EV CA 2
-=====================
------BEGIN CERTIFICATE-----
-MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE
-BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl
-cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN
-MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT
-HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg
-Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz
-o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy
-Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti
-GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li
-qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH
-Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG
-alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa
-m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox
-bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi
-xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/
-BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
-MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB
-bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL
-j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU
-wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7
-XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH
-59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/
-23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq
-J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA
-HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi
-uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW
-l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=
------END CERTIFICATE-----
-
-CA Disig Root R1
-================
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw
-EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
-ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx
-EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
-c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy
-3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8
-u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2
-m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk
-CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa
-YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6
-vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL
-LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX
-ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is
-XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ
-04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
-xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B
-LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM
-CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb
-VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85
-YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS
-ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix
-lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N
-UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ
-a7+h89n07eLw4+1knj0vllJPgFOL
------END CERTIFICATE-----
-
-CA Disig Root R2
-================
------BEGIN CERTIFICATE-----
-MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw
-EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
-ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx
-EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
-c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC
-w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia
-xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7
-A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S
-GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV
-g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa
-5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE
-koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A
-Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i
-Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV
-HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u
-Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
-tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV
-sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je
-dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8
-1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx
-mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01
-utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0
-sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg
-UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV
-7+ZtsH8tZ/3zbBt1RqPlShfppNcL
------END CERTIFICATE-----
-
-ACCVRAIZ1
-=========
------BEGIN CERTIFICATE-----
-MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB
-SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1
-MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH
-UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
-DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM
-jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0
-RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD
-aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ
-0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG
-WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7
-8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR
-5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J
-9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK
-Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw
-Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu
-Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
-VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM
-Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA
-QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh
-AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA
-YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj
-AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA
-IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk
-aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0
-dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2
-MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI
-hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E
-R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN
-YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49
-nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ
-TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3
-sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
-I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg
-Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd
-3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p
-EfbRD0tVNEYqi4Y7
------END CERTIFICATE-----
-
-TWCA Global Root CA
-===================
------BEGIN CERTIFICATE-----
-MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT
-CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD
-QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK
-EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg
-Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C
-nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV
-r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR
-Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV
-tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W
-KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99
-sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p
-yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn
-kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI
-zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC
-AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g
-cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
-LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M
-8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg
-/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg
-lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP
-A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m
-i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8
-EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3
-zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0=
------END CERTIFICATE-----
-
-TeliaSonera Root CA v1
-======================
------BEGIN CERTIFICATE-----
-MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE
-CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4
-MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW
-VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+
-6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA
-3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k
-B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn
-Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH
-oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3
-F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ
-oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7
-gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc
-TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB
-AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW
-DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm
-zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
-0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW
-pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV
-G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc
-c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT
-JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2
-qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6
-Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems
-WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
------END CERTIFICATE-----
-
-E-Tugra Certification Authority
-===============================
------BEGIN CERTIFICATE-----
-MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w
-DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls
-ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
-ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw
-NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx
-QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl
-cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD
-DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
-MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd
-hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K
-CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g
-ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ
-BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0
-E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz
-rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq
-jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
-rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5
-dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB
-/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG
-MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK
-kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO
-XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807
-VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo
-a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc
-dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV
-KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT
-Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0
-8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G
-C7TbO6Orb1wdtn7os4I07QZcJA==
------END CERTIFICATE-----
-
-T-TeleSec GlobalRoot Class 2
-============================
------BEGIN CERTIFICATE-----
-MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM
-IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU
-cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx
-MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz
-dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD
-ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ
-SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F
-vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970
-2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV
-WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA
-MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy
-YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4
-r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf
-vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR
-3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN
-9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg==
------END CERTIFICATE-----
-
-Atos TrustedRoot 2011
-=====================
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU
-cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4
-MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG
-A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV
-hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr
-54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+
-DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320
-HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR
-z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R
-l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ
-bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
-CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h
-k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh
-TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9
-61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G
-3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
------END CERTIFICATE-----
-
-QuoVadis Root CA 1 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE
-PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm
-PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6
-Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN
-ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l
-g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV
-7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX
-9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f
-iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg
-t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI
-hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
-MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3
-GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct
-Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP
-+V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh
-3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa
-wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6
-O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0
-FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV
-hMJKzRwuJIczYOXD
------END CERTIFICATE-----
-
-QuoVadis Root CA 2 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh
-ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY
-NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t
-oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o
-MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l
-V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo
-L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ
-sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD
-6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh
-lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI
-hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
-AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K
-pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9
-x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz
-dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X
-U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw
-mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD
-zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN
-JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr
-O3jtZsSOeWmD3n+M
------END CERTIFICATE-----
-
-QuoVadis Root CA 3 G3
-=====================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG
-A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv
-b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN
-MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg
-RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286
-IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL
-Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe
-6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3
-I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U
-VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7
-5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi
-Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM
-dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt
-rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
-AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI
-hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
-KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS
-t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ
-TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du
-DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib
-Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD
-hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX
-0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW
-dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2
-PpxxVJkES/1Y+Zj0
------END CERTIFICATE-----
-
-DigiCert Assured ID Root G2
-===========================
------BEGIN CERTIFICATE-----
-MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw
-IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw
-MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
-ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH
-35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq
-bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw
-VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP
-YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn
-lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO
-w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv
-0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz
-d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW
-hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M
-jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
-IhNzbM8m9Yop5w==
------END CERTIFICATE-----
-
-DigiCert Assured ID Root G3
-===========================
------BEGIN CERTIFICATE-----
-MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD
-VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
-MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ
-BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb
-RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs
-KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF
-UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy
-YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy
-1vUhZscv6pZjamVFkpUBtA==
------END CERTIFICATE-----
-
-DigiCert Global Root G2
-=======================
------BEGIN CERTIFICATE-----
-MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw
-HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx
-MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
-dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq
-hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ
-kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO
-3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV
-BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM
-UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB
-o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu
-5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr
-F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U
-WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH
-QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/
-iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
-MrY=
------END CERTIFICATE-----
-
-DigiCert Global Root G3
-=======================
------BEGIN CERTIFICATE-----
-MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV
-UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD
-VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw
-MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k
-aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C
-AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O
-YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP
-BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp
-Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y
-3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34
-VOKa5Vt8sycX
------END CERTIFICATE-----
-
-DigiCert Trusted Root G4
-========================
------BEGIN CERTIFICATE-----
-MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG
-EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw
-HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1
-MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G
-CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp
-pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o
-k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa
-vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY
-QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6
-MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm
-mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7
-f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH
-dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8
-oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
-DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
-ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY
-ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr
-yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy
-7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah
-ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN
-5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb
-/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa
-5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK
-G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
-82Z+
------END CERTIFICATE-----
-
-WoSign
-======
------BEGIN CERTIFICATE-----
-MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
-EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g
-QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ
-BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
-vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO
-CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX
-2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5
-KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR
-+ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez
-EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk
-lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2
-8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY
-yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C
-AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R
-8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
-LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq
-T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj
-y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC
-2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes
-5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/
-EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh
-mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx
-kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi
-kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w==
------END CERTIFICATE-----
-
-WoSign China
-============
------BEGIN CERTIFICATE-----
-MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG
-EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv
-geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD
-VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k
-8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5
-uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85
-dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5
-Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy
-b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc
-76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m
-+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6
-yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX
-GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
-EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA
-A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
-yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY
-r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115
-j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A
-kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97
-qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y
-jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB
-ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv
-T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO
-kI26oQ==
------END CERTIFICATE-----
-
-COMODO RSA Certification Authority
-==================================
------BEGIN CERTIFICATE-----
-MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE
-BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
-A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC
-R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE
-ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB
-dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn
-dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ
-FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+
-5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG
-x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX
-2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL
-OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3
-sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C
-GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5
-WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
-FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
-DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt
-rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+
-nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg
-tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW
-sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp
-pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA
-zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq
-ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52
-7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I
-LaZRfyHBNVOFBkpdn627G190
------END CERTIFICATE-----
-
-USERTrust RSA Certification Authority
-=====================================
------BEGIN CERTIFICATE-----
-MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE
-BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
-ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE
-BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK
-ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz
-0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j
-Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn
-RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O
-+T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq
-/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE
-Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM
-lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8
-yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+
-eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
-BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
-MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW
-FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ
-7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ
-Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM
-8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi
-FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi
-yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c
-J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw
-sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx
-Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9
------END CERTIFICATE-----
-
-USERTrust ECC Certification Authority
-=====================================
------BEGIN CERTIFICATE-----
-MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
-aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC
-VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
-aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv
-biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2
-0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez
-nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV
-HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB
-HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu
-9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
------END CERTIFICATE-----
-
-GlobalSign ECC Root CA - R4
-===========================
------BEGIN CERTIFICATE-----
-MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl
-OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P
-AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV
-MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF
-JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q=
------END CERTIFICATE-----
-
-GlobalSign ECC Root CA - R5
-===========================
------BEGIN CERTIFICATE-----
-MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb
-R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD
-EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6
-SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS
-h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
-BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
-uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
-yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
------END CERTIFICATE-----
-
-Staat der Nederlanden Root CA - G3
-==================================
------BEGIN CERTIFICATE-----
-MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC
-TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
-ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y
-olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t
-x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy
-EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K
-Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur
-mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5
-1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp
-07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo
-FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE
-41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB
-AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu
-yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
-U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq
-KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1
-v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA
-8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b
-8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r
-mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq
-1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI
-JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV
-tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk=
------END CERTIFICATE-----
-
-Staat der Nederlanden EV Root CA
-================================
------BEGIN CERTIFICATE-----
-MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE
-CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
-RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M
-MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl
-cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk
-SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW
-O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r
-0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8
-Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV
-XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr
-08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV
-0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd
-74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx
-fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa
-ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
-eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu
-c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq
-5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN
-b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN
-f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi
-5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
-WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK
-DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy
-eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
------END CERTIFICATE-----
-
-IdenTrust Commercial Root CA 1
-==============================
------BEGIN CERTIFICATE-----
-MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG
-EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS
-b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES
-MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB
-IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld
-hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/
-mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi
-1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C
-XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl
-3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy
-NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV
-WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg
-xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix
-uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
-AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI
-hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
-6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg
-ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt
-ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV
-YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX
-feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro
-kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe
-2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz
-Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R
-cGzM7vRX+Bi6hG6H
------END CERTIFICATE-----
-
-IdenTrust Public Sector Root CA 1
-=================================
------BEGIN CERTIFICATE-----
-MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG
-EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv
-ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV
-UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS
-b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy
-P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6
-Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI
-rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf
-qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS
-mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn
-ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh
-LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v
-iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL
-4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B
-Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw
-DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
-t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A
-mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt
-GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt
-m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx
-NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4
-Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI
-ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC
-ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ
-3Wl9af0AVqW3rLatt8o+Ae+c
------END CERTIFICATE-----
-
-Entrust Root Certification Authority - G2
-=========================================
------BEGIN CERTIFICATE-----
-MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
-BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
-bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
-b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
-HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
-DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
-OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
-eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
-MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
-/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
-HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
-s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
-TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
-AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
-0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
-iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
-Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
-nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
-vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
-e4pIb4tF9g==
------END CERTIFICATE-----
-
-Entrust Root Certification Authority - EC1
-==========================================
------BEGIN CERTIFICATE-----
-MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
-FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
-YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
-ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
-FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
-LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
-dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
-IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
-AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
-9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
-vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
-kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
------END CERTIFICATE-----
-
-CFCA EV ROOT
-============
------BEGIN CERTIFICATE-----
-MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE
-CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB
-IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw
-MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD
-DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV
-BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD
-7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN
-uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW
-ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7
-xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f
-py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K
-gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol
-hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ
-tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf
-BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
-/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
-ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q
-ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua
-4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG
-E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX
-BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn
-aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy
-PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX
-kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
-ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
------END CERTIFICATE-----
-
-TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
-=========================================================
------BEGIN CERTIFICATE-----
-MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
-BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
-bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
-RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
-ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
-SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
-n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
-ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
-jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
-ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
-9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
-4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
-HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
-hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
-BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
-URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
-lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
-B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
------END CERTIFICATE-----
-
-TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
-=========================================================
------BEGIN CERTIFICATE-----
-MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
-A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
-acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5
-MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL
-BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf
-aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm
-aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
-AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a
-2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED
-wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb
-HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV
-+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT
-9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
-9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R
-fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
-o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW
-hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1
-O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw==
------END CERTIFICATE-----
-
-Certinomis - Root CA
-====================
------BEGIN CERTIFICATE-----
-MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
-Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg
-LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx
-EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
-ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos
-P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
-d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap
-z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00
-8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x
-RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE
-6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t
-FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV
-PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
-i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj
-YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I
-6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
-AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
-WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw
-Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX
-lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ
-y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9
-Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng
-DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi
-I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM
-cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr
-hkIGuUE=
------END CERTIFICATE-----
diff --git a/milfs/toa/test.php b/milfs/toa/test.php
deleted file mode 100644
index c1d87aa..0000000
--- a/milfs/toa/test.php
+++ /dev/null
@@ -1,31 +0,0 @@
-oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
-$request_token = $connection->oauth('oauth/request_token');
-//$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
-$user = $connection->get("account/verify_credentials");
-//print $user->screen_name;
-print_r($user);
-// Post Update
-
-$content = $connection->post('statuses/update', array('status' => 'Bonito dia'));
-print_r( $content);
-print_r($url);
-
-
-//print_r($request_token); //print connection contentsa
-
-
-?>
\ No newline at end of file
diff --git a/milfs/toa/tests/AbstractSignatureMethodTest.php b/milfs/toa/tests/AbstractSignatureMethodTest.php
deleted file mode 100644
index 60a2a7f..0000000
--- a/milfs/toa/tests/AbstractSignatureMethodTest.php
+++ /dev/null
@@ -1,51 +0,0 @@
-assertEquals($this->name, $this->getClass()->getName());
- }
-
- /**
- * @dataProvider signatureDataProvider
- */
- public function testBuildSignature($expected, $request, $consumer, $token)
- {
- $this->assertEquals($expected, $this->getClass()->buildSignature($request, $consumer, $token));
- }
-
- protected function getRequest()
- {
- return $this->getMockBuilder('Abraham\TwitterOAuth\Request')
- ->disableOriginalConstructor()
- ->getMock();
- }
-
- protected function getConsumer($key = null, $secret = null, $callbackUrl = null)
- {
- return $this->getMockBuilder('Abraham\TwitterOAuth\Consumer')
- ->setConstructorArgs(array($key, $secret, $callbackUrl))
- ->getMock();
- }
-
- protected function getToken($key = null, $secret = null)
- {
- return $this->getMockBuilder('Abraham\TwitterOAuth\Token')
- ->setConstructorArgs(array($key, $secret))
- ->getMock();
- }
-}
diff --git a/milfs/toa/tests/ConsumerTest.php b/milfs/toa/tests/ConsumerTest.php
deleted file mode 100644
index 3ec810a..0000000
--- a/milfs/toa/tests/ConsumerTest.php
+++ /dev/null
@@ -1,16 +0,0 @@
-assertEquals("Consumer[key=$key,secret=$secret]", $consumer->__toString());
- }
-}
\ No newline at end of file
diff --git a/milfs/toa/tests/HmacSha1Test.php b/milfs/toa/tests/HmacSha1Test.php
deleted file mode 100644
index c17ce26..0000000
--- a/milfs/toa/tests/HmacSha1Test.php
+++ /dev/null
@@ -1,35 +0,0 @@
-getRequest(), $this->getConsumer(), $this->getToken()),
- array(
- 'EBw0gHngam3BTx8kfPfNNSyKem4=',
- $this->getRequest(),
- $this->getConsumer('key', 'secret'),
- $this->getToken()
- ),
- array(
- 'kDsHFZzws2a5M6cAQjfpdNBo+v8=',
- $this->getRequest(),
- $this->getConsumer('key', 'secret'),
- $this->getToken('key', 'secret')
- ),
- array('EBw0gHngam3BTx8kfPfNNSyKem4=', $this->getRequest(), $this->getConsumer('key', 'secret'), null),
- );
- }
-}
\ No newline at end of file
diff --git a/milfs/toa/tests/TokenTest.php b/milfs/toa/tests/TokenTest.php
deleted file mode 100644
index c7b36a4..0000000
--- a/milfs/toa/tests/TokenTest.php
+++ /dev/null
@@ -1,26 +0,0 @@
-assertEquals($expected, $token->__toString());
- }
-
- public function tokenProvider()
- {
- return array(
- array('oauth_token=key&oauth_token_secret=secret', 'key', 'secret'),
- array('oauth_token=key%2Bkey&oauth_token_secret=secret', 'key+key', 'secret'),
- array('oauth_token=key~key&oauth_token_secret=secret', 'key~key', 'secret'),
- );
- }
-}
\ No newline at end of file
diff --git a/milfs/toa/tests/TwitterOAuthTest.php b/milfs/toa/tests/TwitterOAuthTest.php
deleted file mode 100644
index 6b72995..0000000
--- a/milfs/toa/tests/TwitterOAuthTest.php
+++ /dev/null
@@ -1,256 +0,0 @@
-twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
- }
-
- public function testBuildClient()
- {
- $this->assertObjectHasAttribute('consumer', $this->twitter);
- $this->assertObjectHasAttribute('token', $this->twitter);
- }
-
- public function testSetOauthToken()
- {
- $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
- $twitter->setOauthToken(ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
- $this->assertObjectHasAttribute('consumer', $twitter);
- $this->assertObjectHasAttribute('token', $twitter);
- $twitter->get('friendships/show', array('target_screen_name' => 'twitterapi'));
- $this->assertEquals(200, $twitter->getLastHttpCode());
- }
-
- public function testOauth2Token()
- {
- $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
- $result = $twitter->oauth2('oauth2/token', array('grant_type' => 'client_credentials'));
- $this->assertEquals(200, $twitter->getLastHttpCode());
- $this->assertObjectHasAttribute('token_type', $result);
- $this->assertObjectHasAttribute('access_token', $result);
- $this->assertEquals('bearer', $result->token_type);
- return $result;
- }
-
- /**
- * @depends testOauth2Token
- */
- public function testBearerToken($accessToken)
- {
- $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, null, $accessToken->access_token);
- $result = $twitter->get('statuses/user_timeline', array('screen_name' => 'twitterapi'));
- if ($twitter->getLastHttpCode() !== 200) {
- $this->assertEquals('foo', substr($accessToken->access_token, 0, 75));
- $this->assertEquals('foo', print_r($result, true));
- }
- $this->assertEquals(200, $twitter->getLastHttpCode());
- return $accessToken;
- }
-
- // This causes issues for parallel run tests.
- // /**
- // * @depends testBearerToken
- // */
- // public function testOauth2TokenInvalidate($accessToken)
- // {
- // $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
- // // HACK: access_token is already urlencoded but gets urlencoded again breaking the invalidate request.
- // $result = $twitter->oauth2(
- // 'oauth2/invalidate_token',
- // array('access_token' => urldecode($accessToken->access_token))
- // );
- // $this->assertEquals(200, $twitter->getLastHttpCode());
- // $this->assertObjectHasAttribute('access_token', $result);
- // return $result;
- // }
-
- public function testOauthRequestToken()
- {
- $twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
- $result = $twitter->oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
- $this->assertEquals(200, $twitter->getLastHttpCode());
- $this->assertArrayHasKey('oauth_token', $result);
- $this->assertArrayHasKey('oauth_token_secret', $result);
- $this->assertArrayHasKey('oauth_callback_confirmed', $result);
- $this->assertEquals('true', $result['oauth_callback_confirmed']);
- return $result;
- }
-
- /**
- * @expectedException \Abraham\TwitterOAuth\TwitterOAuthException
- * @expectedExceptionMessage Could not authenticate you
- */
- public function testOauthRequestTokenException()
- {
- $twitter = new TwitterOAuth('CONSUMER_KEY', 'CONSUMER_SECRET');
- $result = $twitter->oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
- return $result;
- }
-
- /**
- * @expectedException \Abraham\TwitterOAuth\TwitterOAuthException
- * @expectedExceptionMessage Invalid oauth_verifier parameter
- * @depends testOauthRequestToken
- */
- public function testOauthAccessTokenTokenException(array $requestToken)
- {
- // Can't test this without a browser logging into Twitter so check for the correct error instead.
- $twitter = new TwitterOAuth(
- CONSUMER_KEY,
- CONSUMER_SECRET,
- $requestToken['oauth_token'],
- $requestToken['oauth_token_secret']
- );
- $twitter->oauth("oauth/access_token", array("oauth_verifier" => "fake_oauth_verifier"));
- }
-
- public function testUrl()
- {
- $url = $this->twitter->url('oauth/authorize', array('foo' => 'bar', 'baz' => 'qux'));
- $this->assertEquals('https://api.twitter.com/oauth/authorize?foo=bar&baz=qux', $url);
- }
-
- public function testGetAccountVerifyCredentials()
- {
- // Include entities boolean added to test parameter value cohearsion
- $this->twitter->get('account/verify_credentials', array("include_entities" => false));
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- }
-
- // BUG: testing is too unreliable for now
- // public function testSetProxy()
- // {
- // $this->twitter->setProxy(array(
- // 'CURLOPT_PROXY' => PROXY,
- // 'CURLOPT_PROXYUSERPWD' => PROXYUSERPWD,
- // 'CURLOPT_PROXYPORT' => PROXYPORT,
- // ));
- // $this->twitter->setTimeouts(60, 60);
- // $result = $this->twitter->get('account/verify_credentials');
- // $this->assertEquals(200, $this->twitter->getLastHttpCode());
- // $this->assertObjectHasAttribute('id', $result);
- // }
-
- public function testGetStatusesMentionsTimeline()
- {
- $this->twitter->get('statuses/mentions_timeline');
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- }
-
- public function testGetSearchTweets()
- {
- $result = $this->twitter->get('search/tweets', array('q' => 'twitter'));
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- return $result->statuses;
- }
-
- /**
- * @depends testGetSearchTweets
- */
- public function testGetSearchTweetsWithMaxId($statuses)
- {
- $maxId = array_pop($statuses)->id_str;
- $this->twitter->get('search/tweets', array('q' => 'twitter', 'max_id' => $maxId));
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- }
-
- public function testPostFavoritesCreate()
- {
- $result = $this->twitter->post('favorites/create', array('id' => '6242973112'));
- if ($this->twitter->getLastHttpCode() == 403) {
- // Status already favorited
- $this->assertEquals(139, $result->errors[0]->code);
- } else {
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- }
- }
-
- /**
- * @depends testPostFavoritesCreate
- */
- public function testPostFavoritesDestroy()
- {
- $this->twitter->post('favorites/destroy', array('id' => '6242973112'));
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- }
-
- public function testPostStatusesUpdateWithMedia()
- {
- $this->twitter->setTimeouts(60, 30);
- // Image source https://www.flickr.com/photos/titrans/8548825587/
- $file_path = __DIR__ . '/kitten.jpg';
- $result = $this->twitter->upload('media/upload', array('media' => $file_path));
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- $this->assertObjectHasAttribute('media_id_string', $result);
- $parameters = array('status' => 'Hello World ' . time(), 'media_ids' => $result->media_id_string);
- $result = $this->twitter->post('statuses/update', $parameters);
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- if ($this->twitter->getLastHttpCode() == 200) {
- $result = $this->twitter->post('statuses/destroy/' . $result->id_str);
- }
- return $result;
- }
-
- public function testPostStatusesUpdateWithMediaChunked()
- {
- $this->twitter->setTimeouts(60, 30);
- // Video source http://www.sample-videos.com/
- $file_path = __DIR__ . '/video.mp4';
- $result = $this->twitter->upload('media/upload', array('media' => $file_path, 'media_type' => 'video/mp4'), true);
- $this->assertEquals(201, $this->twitter->getLastHttpCode());
- $this->assertObjectHasAttribute('media_id_string', $result);
- $parameters = array('status' => 'Hello World ' . time(), 'media_ids' => $result->media_id_string);
- $result = $this->twitter->post('statuses/update', $parameters);
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- if ($this->twitter->getLastHttpCode() == 200) {
- $result = $this->twitter->post('statuses/destroy/' . $result->id_str);
- }
- return $result;
- }
-
- public function testPostStatusesUpdateUtf8()
- {
- $result = $this->twitter->post('statuses/update', array('status' => 'xこんにちは世界 ' . time()));
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- return $result;
- }
-
- /**
- * @depends testPostStatusesUpdateUtf8
- */
- public function testPostStatusesDestroy($status)
- {
- $this->twitter->post('statuses/destroy/' . $status->id_str);
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- }
-
- public function testLastResult()
- {
- $this->twitter->get('search/tweets', array('q' => 'twitter'));
- $this->assertEquals('search/tweets', $this->twitter->getLastApiPath());
- $this->assertEquals(200, $this->twitter->getLastHttpCode());
- $this->assertObjectHasAttribute('statuses', $this->twitter->getLastBody());
- }
-
- /**
- * @depends testLastResult
- */
- public function testResetLastResponse()
- {
- $this->twitter->resetLastResponse();
- $this->assertEquals('', $this->twitter->getLastApiPath());
- $this->assertEquals(0, $this->twitter->getLastHttpCode());
- $this->assertEquals(array(), $this->twitter->getLastBody());
- }
-}
diff --git a/milfs/toa/tests/Util/JsonDecoderTest.php b/milfs/toa/tests/Util/JsonDecoderTest.php
deleted file mode 100644
index 85c6a75..0000000
--- a/milfs/toa/tests/Util/JsonDecoderTest.php
+++ /dev/null
@@ -1,50 +0,0 @@
-assertEquals($expected, JsonDecoder::decode($input, $asArray));
- }
-
- public function jsonProvider()
- {
- return array(
- array('[]', true, array()),
- array('[1,2,3]', true, array(1, 2, 3)),
- array('[{"id": 556179961825226750}]', true, array(array('id' => 556179961825226750))),
- array('[]', false, array()),
- array('[1,2,3]', false, array(1, 2, 3)),
- array(
- '[{"id": 556179961825226750}]',
- false,
- array(
- $this->getClass(function ($object) {
- $object->id = 556179961825226750;
- return $object;
- })
- )
- ),
-
- );
- }
-
- /**
- * @param callable $callable
- *
- * @return stdClass
- */
- private function getClass(\Closure $callable)
- {
- $object = new \stdClass();
-
- return $callable($object);
- }
-}
diff --git a/milfs/toa/tests/bootstrap.php b/milfs/toa/tests/bootstrap.php
deleted file mode 100644
index 7cc9c27..0000000
--- a/milfs/toa/tests/bootstrap.php
+++ /dev/null
@@ -1,12 +0,0 @@
-a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML=" ",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" a ",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="x ",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML=" ",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h ]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:k.htmlSerialize?[0,"",""]:[1,"X","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" a ",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();ca ",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
\ No newline at end of file
diff --git a/milfs/xajax/jquery.min.js b/milfs/xajax/jquery.min.js
deleted file mode 100644
index 3dad93b..0000000
--- a/milfs/xajax/jquery.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="
",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d
b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" a ",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="x ",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML=" ",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h ]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:k.htmlSerialize?[0,"",""]:[1,"X","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" a ",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();ca ",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
\ No newline at end of file
diff --git a/milfs/xajax/xajax.inc.php b/milfs/xajax/xajax.inc.php
deleted file mode 100644
index e0c312a..0000000
--- a/milfs/xajax/xajax.inc.php
+++ /dev/null
@@ -1,857 +0,0 @@
-aFunctions = array();
- $this->aObjects = array();
- $this->aFunctionIncludeFiles = array();
- $this->sRequestURI = $sRequestURI;
- if ($this->sRequestURI == "")
- $this->sRequestURI = $this->_detectURI();
- $this->sWrapperPrefix = $sWrapperPrefix;
- $this->setCharEncoding($sEncoding);
- $this->bDebug = $bDebug;
- $this->bWaitCursor = true;
- $this->bExitAllowed = true;
- $this->bErrorHandler = false;
- $this->sLogFile = "";
- $this->bCleanBuffer = true;
- }
-
- // setRequestURI() sets the URI to which requests will be made
- // usage: $xajax->setRequestURI("http://xajax.sourceforge.net");
- function setRequestURI($sRequestURI)
- {
- $this->sRequestURI = $sRequestURI;
- }
-
- // debugOn() enables debug messages for xajax
- function debugOn()
- {
- $this->bDebug = true;
- }
-
- // debugOff() disables debug messages for xajax (default behavior)
- function debugOff()
- {
- $this->bDebug = true;
- }
-
- // statusMessagesOn() enables messages in the statusbar for xajax
- function statusMessagesOn()
- {
- $this->bStatusMessages = true;
- }
-
- // statusMessagesOff() disables messages in the statusbar for xajax (default behavior)
- function statusMessagesOff()
- {
- $this->bStatusMessages = false;
- }
-
- // waitCursor() enables the wait cursor to be displayed in the browser (default behavior)
- function waitCursorOn()
- {
- $this->bWaitCursor = true;
- }
-
- // waitCursorOff() disables the wait cursor to be displayed in the browser
- function waitCursorOff()
- {
- $this->bWaitCursor = false;
- }
-
- // exitAllowedOn() enables xajax to exit immediately after processing a request
- // and sending the response back to the browser (default behavior)
- function exitAllowedOn()
- {
- $this->bExitAllowed = true;
- }
-
- // exitAllowedOff() disables xajax's default behavior of exiting immediately
- // after processing a request and sending the response back to the browser
- function exitAllowedOff()
- {
- $this->bExitAllowed = false;
- }
-
- // errorHandlerOn() turns on xajax's error handling system so that PHP errors
- // that occur during a request are trapped and pushed to the browser in the
- // form of a Javascript alert
- function errorHandlerOn()
- {
- $this->bErrorHandler = true;
- }
- // errorHandlerOff() turns off xajax's error handling system (default behavior)
- function errorHandlerOff()
- {
- $this->bErrorHandler = false;
- }
-
- // setLogFile() specifies a log file that will be written to by xajax during
- // a request (used only by the error handling system at present). If you don't
- // invoke this method, or you pass in "", then no log file will be written to.
- // usage: $xajax->setLogFile("/xajax_logs/errors.log");
- function setLogFile($sFilename)
- {
- $this->sLogFile = $sFilename;
- }
-
- // cleanBufferOn() causes xajax to clean out all output buffers before outputting
- // a response (default behavior)
- function cleanBufferOn()
- {
- $this->bCleanBuffer = true;
- }
- // cleanBufferOff() turns off xajax's output buffer cleaning
- function cleanBufferOff()
- {
- $this->bCleanBuffer = false;
- }
-
- // setWrapperPrefix() sets the prefix that will be appended to the Javascript
- // wrapper functions (default is "xajax_").
- function setWrapperPrefix($sPrefix)
- {
- $this->sWrapperPrefix = $sPrefix;
- }
-
- // setCharEncoding() sets the character encoding to be used by xajax
- // usage: $xajax->setCharEncoding("utf-8");
- // *Note: to change the default character encoding for all xajax responses, set
- // the XAJAX_DEFAULT_CHAR_ENCODING constant near the beginning of the xajax.inc.php file
- function setCharEncoding($sEncoding)
- {
- $this->sEncoding = $sEncoding;
- }
-
- // registerFunction() registers a PHP function or method to be callable through
- // xajax in your Javascript. If you want to register a function, pass in the name
- // of that function. If you want to register a static class method, pass in an array
- // like so:
- // array("myFunctionName", "myClass", "myMethod")
- // For an object instance method, use an object variable for the second array element
- // (and in PHP 4 make sure you put an & before the variable to pass the object by
- // reference). Note: the function name is what you call via Javascript, so it can be
- // anything as long as it doesn't conflict with any other registered function name.
- //
- // $mFunction is a string containing the function name or an object callback array
- // $sRequestType is the RequestType (XAJAX_GET/XAJAX_POST) that should be used
- // for this function. Defaults to XAJAX_POST.
- // usage: $xajax->registerFunction("myFunction");
- // or: $xajax->registerFunction(array("myFunctionName", &$myObject, "myMethod"));
- function registerFunction($mFunction,$sRequestType=XAJAX_POST)
- {
- if (is_array($mFunction)) {
- $this->aFunctions[$mFunction[0]] = 1;
- $this->aFunctionRequestTypes[$mFunction[0]] = $sRequestType;
- $this->aObjects[$mFunction[0]] = array_slice($mFunction, 1);
- }
- else {
- $this->aFunctions[$mFunction] = 1;
- $this->aFunctionRequestTypes[$mFunction] = $sRequestType;
- }
- }
-
- // registerExternalFunction() registers a PHP function to be callable through xajax
- // which is located in some other file. If the function is requested the external
- // file will be included to define the function before the function is called
- // $mFunction is a string containing the function name or an object callback array
- // see registerFunction() for more info on object callback arrays
- // $sIncludeFile is a string containing the path and filename of the include file
- // $sRequestType is the RequestType (XAJAX_GET/XAJAX_POST) that should be used
- // for this function. Defaults to XAJAX_POST.
- // usage: $xajax->registerExternalFunction("myFunction","myFunction.inc.php",XAJAX_POST);
- function registerExternalFunction($mFunction,$sIncludeFile,$sRequestType=XAJAX_POST)
- {
- $this->registerFunction($mFunction, $sRequestType);
-
- if (is_array($mFunction)) {
- $this->aFunctionIncludeFiles[$mFunction[0]] = $sIncludeFile;
- }
- else {
- $this->aFunctionIncludeFiles[$mFunction] = $sIncludeFile;
- }
- }
-
- // registerCatchAllFunction() registers a PHP function to be called when xajax cannot
- // find the function being called via Javascript. Because this is technically
- // impossible when using "wrapped" functions, the catch-all feature is only useful
- // when you're directly using the xajax.call() Javascript method. Use the catch-all
- // feature when you want more dynamic ability to intercept unknown calls and handle
- // them in a custom way.
- // $mFunction is a string containing the function name or an object callback array
- // see registerFunction() for more info on object callback arrays
- // usage: $xajax->registerCatchAllFunction("myCatchAllFunction");
- function registerCatchAllFunction($mFunction)
- {
- if (is_array($mFunction)) {
- $this->sCatchAllFunction = $mFunction[0];
- $this->aObjects[$mFunction[0]] = array_slice($mFunction, 1);
- }
- else {
- $this->sCatchAllFunction = $mFunction;
- }
- }
-
- // registerPreFunction() registers a PHP function to be called before xajax calls
- // the requested function. xajax will automatically add the request function's response
- // to the pre-function's response to create a single response. Another feature is
- // the ability to return not just a response, but an array with the first element
- // being false (a boolean) and the second being the response. In this case, the
- // pre-function's response will be returned to the browser without xajax calling
- // the requested function.
- // $mFunction is a string containing the function name or an object callback array
- // see registerFunction() for more info on object callback arrays
- // usage $xajax->registerPreFunction("myPreFunction");
- function registerPreFunction($mFunction)
- {
- if (is_array($mFunction)) {
- $this->sPreFunction = $mFunction[0];
- $this->aObjects[$mFunction[0]] = array_slice($mFunction, 1);
- }
- else {
- $this->sPreFunction = $mFunction;
- }
- }
-
- // returns true if xajax can process the request, false if otherwise
- // you can use this to determine if xajax needs to process the request or not
- function canProcessRequests()
- {
- if ($this->getRequestMode() != -1) return true;
- return false;
- }
-
- // returns the current request mode, or -1 if there is none
- function getRequestMode()
- {
- if (!empty($_GET["xajax"]))
- return XAJAX_GET;
-
- if (!empty($_POST["xajax"]))
- return XAJAX_POST;
-
- return -1;
- }
-
- // processRequests() is the main communications engine of xajax
- // The engine handles all incoming xajax requests, calls the apporiate PHP functions
- // and passes the xml responses back to the javascript response handler
- // if your RequestURI is the same as your web page then this function should
- // be called before any headers or html has been sent.
- // usage: $xajax->processRequests()
- function processRequests()
- {
-
- $requestMode = -1;
- $sFunctionName = "";
- $bFoundFunction = true;
- $bFunctionIsCatchAll = false;
- $sFunctionNameForSpecial = "";
- $aArgs = array();
- $sPreResponse = "";
- $bEndRequest = false;
- $sResponse = "";
-
- $requestMode = $this->getRequestMode();
- if ($requestMode == -1) return;
-
- if ($requestMode == XAJAX_POST)
- {
- $sFunctionName = $_POST["xajax"];
-
- if (!empty($_POST["xajaxargs"]))
- $aArgs = $_POST["xajaxargs"];
- }
- else
- {
- header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
- header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
- header ("Cache-Control: no-cache, must-revalidate");
- header ("Pragma: no-cache");
- header("Content-type: text/xml");
-
- $sFunctionName = $_GET["xajax"];
-
- if (!empty($_GET["xajaxargs"]))
- $aArgs = $_GET["xajaxargs"];
- }
-
- // Use xajax error handler if necessary
- if ($this->bErrorHandler) {
- $GLOBALS['xajaxErrorHandlerText'] = "";
- set_error_handler("xajaxErrorHandler");
- }
-
- if ($this->sPreFunction) {
- if (!$this->_isFunctionCallable($this->sPreFunction)) {
- $bFoundFunction = false;
- $objResponse = new xajaxResponse();
- $objResponse->addAlert("Unknown Pre-Function ". $this->sPreFunction);
- $sResponse = $objResponse->getXML();
- }
- }
- //include any external dependencies associated with this function name
- if (array_key_exists($sFunctionName,$this->aFunctionIncludeFiles))
- {
- ob_start();
- include_once($this->aFunctionIncludeFiles[$sFunctionName]);
- ob_end_clean();
- }
-
- if ($bFoundFunction) {
- $sFunctionNameForSpecial = $sFunctionName;
- if (!array_key_exists($sFunctionName, $this->aFunctions))
- {
- if ($this->sCatchAllFunction) {
- $sFunctionName = $this->sCatchAllFunction;
- $bFunctionIsCatchAll = true;
- }
- else {
- $bFoundFunction = false;
- $objResponse = new xajaxResponse();
- $objResponse->addAlert("Unknown Function $sFunctionName.");
- $sResponse = $objResponse->getXML();
- }
- }
- else if ($this->aFunctionRequestTypes[$sFunctionName] != $requestMode)
- {
- $bFoundFunction = false;
- $objResponse = new xajaxResponse();
- $objResponse->addAlert("Incorrect Request Type.");
- $sResponse = $objResponse->getXML();
- }
- }
-
- if ($bFoundFunction)
- {
- for ($i = 0; $i < sizeof($aArgs); $i++)
- {
- // If magic quotes is on, then we need to strip the slashes from the args
- if (get_magic_quotes_gpc() == 1 && is_string($aArgs[$i])) {
-
- $aArgs[$i] = stripslashes($aArgs[$i]);
- }
- if (stristr($aArgs[$i],"
") != false)
- {
- $aArgs[$i] = $this->_xmlToArray("xjxobj",$aArgs[$i]);
- }
- else if (stristr($aArgs[$i],"") != false)
- {
- $aArgs[$i] = $this->_xmlToArray("xjxquery",$aArgs[$i]);
- }
- }
-
- if ($this->sPreFunction) {
- $mPreResponse = $this->_callFunction($this->sPreFunction, array($sFunctionNameForSpecial, $aArgs));
- if (is_array($mPreResponse) && $mPreResponse[0] === false) {
- $bEndRequest = true;
- $sPreResponse = $mPreResponse[1];
- }
- else {
- $sPreResponse = $mPreResponse;
- }
- if (is_a($sPreResponse, "xajaxResponse")) {
- $sPreResponse = $sPreResponse->getXML();
- }
- if ($bEndRequest) $sResponse = $sPreResponse;
- }
-
- if (!$bEndRequest) {
- if (!$this->_isFunctionCallable($sFunctionName)) {
- $objResponse = new xajaxResponse();
- $objResponse->addAlert("The Registered Function $sFunctionName Could Not Be Found.");
- $sResponse = $objResponse->getXML();
- }
- else {
- if ($bFunctionIsCatchAll) {
- $aArgs = array($sFunctionNameForSpecial, $aArgs);
- }
- $sResponse = $this->_callFunction($sFunctionName, $aArgs);
- }
- if (is_a($sResponse, "xajaxResponse")) {
- $sResponse = $sResponse->getXML();
- }
- if (!is_string($sResponse) || strpos($sResponse, "") === FALSE) {
- $objResponse = new xajaxResponse();
- $objResponse->addAlert("No XML Response Was Returned By Function $sFunctionName.");
- $sResponse = $objResponse->getXML();
- }
- else if ($sPreResponse != "") {
- $sNewResponse = new xajaxResponse();
- $sNewResponse->loadXML($sPreResponse);
- $sNewResponse->loadXML($sResponse);
- $sResponse = $sNewResponse->getXML();
- }
- }
- }
-
- $sContentHeader = "Content-type: text/xml;";
- if ($this->sEncoding && strlen(trim($this->sEncoding)) > 0)
- $sContentHeader .= " charset=".$this->sEncoding;
- header($sContentHeader);
- if ($this->bErrorHandler && !empty( $GLOBALS['xajaxErrorHandlerText'] )) {
- $sErrorResponse = new xajaxResponse();
- $sErrorResponse->addAlert("** PHP Error Messages: **" . $GLOBALS['xajaxErrorHandlerText']);
- if ($this->sLogFile) {
- $fH = @fopen($this->sLogFile, "a");
- if (!$fH) {
- $sErrorResponse->addAlert("** Logging Error **\n\nxajax was unable to write to the error log file:\n" . $this->sLogFile);
- }
- else {
- fwrite($fH, "** xajax Error Log - " . strftime("%b %e %Y %I:%M:%S %p") . " **" . $GLOBALS['xajaxErrorHandlerText'] . "\n\n\n");
- fclose($fH);
- }
- }
-
- $sErrorResponse->loadXML($sResponse);
- $sResponse = $sErrorResponse->getXML();
-
- }
- if ($this->bCleanBuffer) while (@ob_end_clean());
- print $sResponse;
- if ($this->bErrorHandler) restore_error_handler();
-
- if ($this->bExitAllowed)
- exit();
- }
-
- // printJavascript() prints the xajax javascript code into your page by printing
- // the output of the getJavascript() method. It should only be called between the
- // tags in your HTML page. Remember, if you only want to obtain the
- // result of this function, use getJavascript() instead.
- // $sJsURI is the relative address of the folder where xajax has been installed.
- // For instance, if your PHP file is "http://www.myserver.com/myfolder/mypage.php"
- // and xajax was installed in "http://www.myserver.com/anotherfolder", then
- // $sJsURI should be set to "../anotherfolder". Defaults to assuming xajax is in
- // the same folder as your PHP file.
- // $sJsFile is the relative folder/file pair of the xajax Javascript engine located
- // within the xajax installation folder. Defaults to xajax_js/xajax.js.
- // usage:
- //
- // ...
- // < ?php $xajax->printJavascript(); ? >
- function printJavascript($sJsURI="", $sJsFile=NULL, $sJsFullFilename=NULL)
- {
- print $this->getJavascript($sJsURI, $sJsFile, $sJsFullFilename);
- }
-
- // getJavascript() returns the xajax javascript code that should be added to
- // your HTML page between the tags. See printJavascript()
- // for information about the function arguments.
- // usage:
- // < ?php $xajaxJSHead = $xajax->getJavascript(); ? >
- //
- // ...
- // < ?php echo $xajaxJSHead; ? >
- function getJavascript($sJsURI="", $sJsFile=NULL, $sJsFullFilename=NULL)
- {
- if ($sJsFile == NULL) $sJsFile = "xajax_js/xajax.js";
-
- if ($sJsURI != "" && substr($sJsURI, -1) != "/") $sJsURI .= "/";
-
- $html = "\t\n";
-
- // Create a compressed file if necessary
- if ($sJsFullFilename) {
- $realJsFile = $sJsFullFilename;
- }
- else {
- $realPath = realpath(dirname(__FILE__));
- $realJsFile = $realPath . "/". $sJsFile;
- }
- $srcFile = str_replace(".js", "_uncompressed.js", $realJsFile);
- if (!file_exists($srcFile)) {
- trigger_error("The xajax uncompressed Javascript file could not be found in the " . dirname($realJsFile) . " folder. Error ", E_USER_ERROR);
- }
-
- if ($this->bDebug) {
- if (!@copy($srcFile, $realJsFile)) {
- trigger_error("The xajax uncompressed javascript file could not be copied to the " . dirname($realJsFile) . " folder. Error ", E_USER_ERROR);
- }
- }
- else if (!file_exists($realJsFile)) {
- require(dirname($realJsFile) . "/xajaxCompress.php");
- $javaScript = implode('', file($srcFile));
- $compressedScript = xajaxCompressJavascript($javaScript);
- $fH = @fopen($realJsFile, "w");
- if (!$fH) {
- trigger_error("The xajax compressed javascript file could not be written in the " . dirname($realJsFile) . " folder. Error ", E_USER_ERROR);
- }
- else {
- fwrite($fH, $compressedScript);
- fclose($fH);
- }
- }
-
- $html .= "\t\n";
-
- return $html;
- }
-
- // _detectURL() returns the current URL based upon the SERVER vars
- // used internally
- function _detectURI() {
- $aURL = array();
-
- // Try to get the request URL
- if (!empty($_SERVER['REQUEST_URI'])) {
- $aURL = parse_url($_SERVER['REQUEST_URI']);
- }
-
- // Fill in the empty values
- if (empty($aURL['scheme'])) {
- if (!empty($_SERVER['HTTP_SCHEME'])) {
- $aURL['scheme'] = $_SERVER['HTTP_SCHEME'];
- } else {
- $aURL['scheme'] = (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') ? 'https' : 'http';
- }
- }
-
- if (empty($aURL['host'])) {
- if (!empty($_SERVER['HTTP_HOST'])) {
- if (strpos($_SERVER['HTTP_HOST'], ':') > 0) {
- list($aURL['host'], $aURL['port']) = explode(':', $_SERVER['HTTP_HOST']);
- } else {
- $aURL['host'] = $_SERVER['HTTP_HOST'];
- }
- } else if (!empty($_SERVER['SERVER_NAME'])) {
- $aURL['host'] = $_SERVER['SERVER_NAME'];
- } else {
- print "xajax Error: xajax failed to automatically identify your Request URI.";
- print "Please set the Request URI explicitly when you instantiate the xajax object.";
- exit();
- }
- }
-
- if (empty($aURL['port']) && !empty($_SERVER['SERVER_PORT'])) {
- $aURL['port'] = $_SERVER['SERVER_PORT'];
- }
-
- if (empty($aURL['path'])) {
- if (!empty($_SERVER['PATH_INFO'])) {
- $sPath = parse_url($_SERVER['PATH_INFO']);
- } else {
- $sPath = parse_url($_SERVER['PHP_SELF']);
- }
- $aURL['path'] = $sPath['path'];
- unset($sPath);
- }
-
- if (!empty($aURL['query'])) {
- $aURL['query'] = '?'.$aURL['query'];
- }
-
- // Build the URL: Start with scheme, user and pass
- $sURL = $aURL['scheme'].'://';
- if (!empty($aURL['user'])) {
- $sURL.= $aURL['user'];
- if (!empty($aURL['pass'])) {
- $sURL.= ':'.$aURL['pass'];
- }
- $sURL.= '@';
- }
-
- // Add the host
- $sURL.= $aURL['host'];
-
- // Add the port if needed
- if (!empty($aURL['port']) && (($aURL['scheme'] == 'http' && $aURL['port'] != 80) || ($aURL['scheme'] == 'https' && $aURL['port'] != 443))) {
- $sURL.= ':'.$aURL['port'];
- }
-
- // Add the path and the query string
- $sURL.= $aURL['path'].@$aURL['query'];
-
- // Clean up
- unset($aURL);
- return $sURL;
- }
-
- // returns true if the function name is associated with an object callback,
- // false if not.
- // user internally
- function _isObjectCallback($sFunction)
- {
- if (array_key_exists($sFunction, $this->aObjects)) return true;
- return false;
- }
-
- // return true if the function or object callback can be called, false if not
- // user internally
- function _isFunctionCallable($sFunction)
- {
- if ($this->_isObjectCallback($sFunction)) {
- if (is_object($this->aObjects[$sFunction][0])) {
- return method_exists($this->aObjects[$sFunction][0], $this->aObjects[$sFunction][1]);
- }
- else {
- return is_callable($this->aObjects[$sFunction]);
- }
- }
- else {
- return function_exists($sFunction);
- }
- }
-
- // calls the function, class method, or object method with the supplied arguments
- // user internally
- function _callFunction($sFunction, $aArgs)
- {
- if ($this->_isObjectCallback($sFunction)) {
- $mReturn = call_user_func_array($this->aObjects[$sFunction], $aArgs);
- }
- else {
- $mReturn = call_user_func_array($sFunction, $aArgs);
- }
- return $mReturn;
- }
-
- // generates the javascript wrapper for the specified PHP function
- // used internally
- function _wrap($sFunction,$sRequestType=XAJAX_POST)
- {
- $js = "function ".$this->sWrapperPrefix."$sFunction(){return xajax.call(\"$sFunction\", arguments, ".$sRequestType.");}\n";
- return $js;
- }
-
- // _xmlToArray() takes a string containing xajax xjxobj xml or xjxquery xml
- // and builds an array representation of it to pass as an argument to
- // the php function being called. Returns an array.
- // used internally
- function _xmlToArray($rootTag, $sXml)
- {
- $aArray = array();
- $sXml = str_replace("<$rootTag>","<$rootTag>|~|",$sXml);
- $sXml = str_replace("$rootTag>","$rootTag>|~|",$sXml);
- $sXml = str_replace("","|~|",$sXml);
- $sXml = str_replace(" "," |~|",$sXml);
- $sXml = str_replace("","|~|",$sXml);
- $sXml = str_replace(" ","|~| |~|",$sXml);
- $sXml = str_replace("","|~|",$sXml);
- $sXml = str_replace(" ","|~| |~|",$sXml);
- $sXml = str_replace("","|~|",$sXml);
- $sXml = str_replace(" ","|~| |~|",$sXml);
-
- $this->aObjArray = explode("|~|",$sXml);
-
- $this->iPos = 0;
- $aArray = $this->_parseObjXml($rootTag);
-
- return $aArray;
- }
-
- // _parseObjXml() is a recursive function that generates an array from the
- // contents of $this->aObjArray. Returns an array.
- // used internally
- function _parseObjXml($rootTag)
- {
- $aArray = array();
-
- if ($rootTag == "xjxobj")
- {
- while(!stristr($this->aObjArray[$this->iPos]," "))
- {
- $this->iPos++;
- if(stristr($this->aObjArray[$this->iPos],"
"))
- {
- $key = "";
- $value = null;
-
- $this->iPos++;
- while(!stristr($this->aObjArray[$this->iPos]," "))
- {
- if(stristr($this->aObjArray[$this->iPos],"
"))
- {
- $this->iPos++;
- while(!stristr($this->aObjArray[$this->iPos]," "))
- {
- $key .= $this->aObjArray[$this->iPos];
- $this->iPos++;
- }
- }
- if(stristr($this->aObjArray[$this->iPos],"
"))
- {
- $this->iPos++;
- while(!stristr($this->aObjArray[$this->iPos]," "))
- {
- if(stristr($this->aObjArray[$this->iPos],"
"))
- {
- $value = $this->_parseObjXml("xjxobj");
- $this->iPos++;
- }
- else
- {
- $value .= $this->aObjArray[$this->iPos];
- }
- $this->iPos++;
- }
- }
- $this->iPos++;
- }
-
- $aArray[$key]=$value;
- }
- }
- }
-
- if ($rootTag == "xjxquery")
- {
- $sQuery = "";
- $this->iPos++;
- while(!stristr($this->aObjArray[$this->iPos],""))
- {
- if (stristr($this->aObjArray[$this->iPos],"") || stristr($this->aObjArray[$this->iPos]," "))
- {
- $this->iPos++;
- continue;
- }
- $sQuery .= $this->aObjArray[$this->iPos];
- $this->iPos++;
- }
-
- parse_str($sQuery, $aArray);
- // If magic quotes is on, then we need to strip the slashes from the
- // array values because of the parse_str pass which adds slashes
- if (get_magic_quotes_gpc() == 1) {
- $newArray = array();
- foreach ($aArray as $sKey => $sValue) {
- if (is_string($sValue))
- $newArray[$sKey] = stripslashes($sValue);
- else
- $newArray[$sKey] = $sValue;
- }
- $aArray = $newArray;
- }
- }
-
- return $aArray;
- }
-
-}// end class xajax
-
-// xajaxErrorHandler() is registered with PHP's set_error_handler() function if
-// the xajax error handling system is turned on
-// used by the xajax class
-function xajaxErrorHandler($errno, $errstr, $errfile, $errline)
-{
- $errorReporting = error_reporting();
- if ($errorReporting == 0) return;
-
- if ($errno == E_NOTICE) {
- $errTypeStr = "NOTICE";
- }
- else if ($errno == E_WARNING) {
- $errTypeStr = "WARNING";
- }
- else if ($errno == E_USER_NOTICE) {
- $errTypeStr = "USER NOTICE";
- }
- else if ($errno == E_USER_WARNING) {
- $errTypeStr = "USER WARNING";
- }
- else if ($errno == E_USER_ERROR) {
- $errTypeStr = "USER FATAL ERROR";
- }
- else if ($errno == E_STRICT) {
- return;
- }
- else {
- $errTypeStr = "UNKNOWN: $errno";
- }
- $GLOBALS['xajaxErrorHandlerText'] .= "\n----\n[$errTypeStr] $errstr\nerror in line $errline of file $errfile";
-}
-
-?>
diff --git a/milfs/xajax/xajaxResponse.inc.php b/milfs/xajax/xajaxResponse.inc.php
deleted file mode 100644
index 59f6ef0..0000000
--- a/milfs/xajax/xajaxResponse.inc.php
+++ /dev/null
@@ -1,301 +0,0 @@
-setCharEncoding($sEncoding);
- }
-
- // setCharEncoding() sets the character encoding for the response based on
- // $sEncoding, which is a string containing the character encoding to use. You
- // don't need to use this method normally, since the character encoding for the
- // response gets set automatically based on the XAJAX_DEFAULT_CHAR_ENCODING
- // constant.
- function setCharEncoding($sEncoding)
- {
- $this->sEncoding = $sEncoding;
- }
-
- // addAssign() adds an assign command message to the XML response
- // $sTarget is a string containing the id of an HTML element
- // $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.)
- // $sData is the data you want to set the attribute to
- // usage: $objResponse->addAssign("contentDiv", "innerHTML", "Some Text");
- function addAssign($sTarget,$sAttribute,$sData)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"as","t"=>$sTarget,"p"=>$sAttribute),$sData);
- }
-
- // addAppend() adds an append command message to the XML response
- // $sTarget is a string containing the id of an HTML element
- // $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.)
- // $sData is the data you want to append to the end of the attribute
- // usage: $objResponse->addAppend("contentDiv", "innerHTML", "Some New Text");
- function addAppend($sTarget,$sAttribute,$sData)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"ap","t"=>$sTarget,"p"=>$sAttribute),$sData);
- }
-
- // addPrepend() adds an prepend command message to the XML response
- // $sTarget is a string containing the id of an HTML element
- // $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.)
- // $sData is the data you want to prepend to the beginning of the attribute
- // usage: $objResponse->addPrepend("contentDiv", "innerHTML", "Some Starting Text");
- function addPrepend($sTarget,$sAttribute,$sData)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"pp","t"=>$sTarget,"p"=>$sAttribute),$sData);
- }
-
- // addReplace() adds an replace command message to the XML response
- // $sTarget is a string containing the id of an HTML element
- // $sAttribute is the part of the element you wish to modify ("innerHTML", "value", etc.)
- // $sSearch is a string to search for
- // $sData is a string to replace the search string when found in the attribute
- // usage: $objResponse->addReplace("contentDiv", "innerHTML", "text", "text ");
- function addReplace($sTarget,$sAttribute,$sSearch,$sData)
- {
- $sDta = " ";
- $this->xml .= $this->_cmdXML(array("n"=>"rp","t"=>$sTarget,"p"=>$sAttribute),$sDta);
- }
-
- // addClear() adds an clear command message to the XML response
- // $sTarget is a string containing the id of an HTML element
- // $sAttribute is the part of the element you wish to clear ("innerHTML", "value", etc.)
- // usage: $objResponse->addClear("contentDiv", "innerHTML");
- function addClear($sTarget,$sAttribute)
- {
- $this->addAssign($sTarget,$sAttribute,'');
- }
-
- // addAlert() adds an alert command message to the XML response
- // $sMsg is the text to be displayed in the Javascript alert box
- // usage: $objResponse->addAlert("This is important information");
- function addAlert($sMsg)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"al"),$sMsg);
- }
-
- // addRedirect() uses the addScript() method to add a Javascript redirect to
- // another URL
- // $sURL is the URL to redirect the client browser to
- // usage: $objResponse->addRedirect("http://www.xajaxproject.org");
- function addRedirect($sURL)
- {
- $this->addScript('window.location = "'.rawurlencode($sURL).'";');
- }
-
- // addScript() adds a Javascript command message to the XML response
- // $sJS is a string containing Javascript code to be executed
- // usage: $objResponse->addScript("var x = prompt('get some text');");
- function addScript($sJS)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"js"),$sJS);
- }
-
- // addRemove() adds a remove element command message to the XML response
- // $sTarget is a string containing the id of an HTML element to be removed
- // from your page
- // usage: $objResponse->addRemove("Div2");
- function addRemove($sTarget)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"rm","t"=>$sTarget),'');
- }
-
- // addCreate() adds a create element command message to the XML response
- // $sParent is a string containing the id of an HTML element to which the new
- // element will be appended.
- // $sTag is the tag to be added
- // $sId is the id to be assigned to the new element
- // $sType has been deprecated, use the addCreateInput() method instead
- // usage: $objResponse->addCreate("parentDiv", "h3", "myid");
- function addCreate($sParent, $sTag, $sId, $sType="")
- {
- if ($sType)
- {
- trigger_error("The \$sType parameter of addCreate has been deprecated. Use the addCreateInput() method instead.", E_USER_WARNING);
- return;
- }
- $this->xml .= $this->_cmdXML(array("n"=>"ce","t"=>$sParent,"p"=>$sId),$sTag);
- }
-
- // addInsert() adds an insert element command message to the XML response
- // $sBefore is a string containing the id of the child before which the new element
- // will be inserted
- // $sTag is the tag to be added
- // $sId is the id to be assigned to the new element
- // usage: $objResponse->addInsert("childDiv", "h3", "myid");
- function addInsert($sBefore, $sTag, $sId)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"ie","t"=>$sBefore,"p"=>$sId),$sTag);
- }
-
- // addCreateInput() adds a create input command message to the XML response
- // $sParent is a string containing the id of an HTML element to which the new
- // input will be appended
- // $sType is the type of input to be created (text, radio, checkbox, etc.)
- // $sName is the name to be assigned to the new input and the variable name when it is submitted
- // $sId is the id to be assigned to the new input
- // usage: $objResponse->addCreateInput("form1", "text", "username", "input1");
- function addCreateInput($sParent, $sType, $sName, $sId)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"ci","t"=>$sParent,"p"=>$sId,"c"=>$sType),$sName);
- }
-
- // addInsertInput() adds an insert input command message to the XML response
- // $sBefore is a string containing the id of the child before which the new element
- // will be inserted
- // $sType is the type of input to be created (text, radio, checkbox, etc.)
- // $sName is the name to be assigned to the new input and the variable name when it is submitted
- // $sId is the id to be assigned to the new input
- // usage: $objResponse->addInsertInput("input5", "text", "username", "input1");
- function addInsertInput($sBefore, $sType, $sName, $sId)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"ii","t"=>$sBefore,"p"=>$sId,"c"=>$sType),$sName);
- }
-
- // addEvent() adds an event command message to the XML response
- // $sTarget is a string containing the id of an HTML element
- // $sEvent is the event you wish to set ("click", "mouseover", etc.)
- // $sScript is the Javascript string you want to the event to invoke
- // usage: $objResponse->addEvent("contentDiv", "click", "alert(\'Hello World\');");
- function addEvent($sTarget,$sEvent,$sScript)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"ev","t"=>$sTarget,"p"=>$sEvent),$sScript);
- }
-
- // addHandler() adds a handler command message to the XML response
- // $sTarget is a string containing the id of an HTML element
- // $sEvent is the event you wish to set ("click", "mouseover", etc.)
- // $sHandler is a string containing the name of a Javascript function
- // that will handle the event. Multiple handlers can be added for the same event
- // usage: $objResponse->addHandler("contentDiv", "click", "content_click");
- function addHandler($sTarget,$sEvent,$sHandler)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"ah","t"=>$sTarget,"p"=>$sEvent),$sHandler);
- }
-
- // addRemoveHandler() adds a remove handler command message to the XML response
- // $sTarget is a string containing the id of an HTML element
- // $sEvent is the event you wish to remove ("click", "mouseover", etc.)
- // $sHandler is a string containing the name of a Javascript handler function
- // that you want to remove
- // usage: $objResponse->addRemoveHandler("contentDiv", "click", "content_click");
- function addRemoveHandler($sTarget,$sEvent,$sHandler)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"rh","t"=>$sTarget,"p"=>$sEvent),$sHandler);
- }
-
- // addIncludeScript() adds an include script command message to the XML response
- // $sFileName is a URL of the Javascript file to include
- // usage: $objResponse->addIncludeScript("functions.js");
- function addIncludeScript($sFileName)
- {
- $this->xml .= $this->_cmdXML(array("n"=>"in"),$sFileName);
- }
-
- // getXML() returns the XML to be returned from your function to the xajax
- // processor on your page. Since xajax 0.2, you can also return an xajaxResponse
- // object from your function directly, and xajax will automatically request the
- // XML using this method call.
- // usage: return $objResponse->getXML();
- function getXML()
- {
- $sXML = "sEncoding && strlen(trim($this->sEncoding)) > 0)
- $sXML .= " encoding=\"".$this->sEncoding."\"";
- $sXML .= " ?".">" . $this->xml . " ";
-
- return $sXML;
- }
-
- // loadXML() adds the commands of the provided response XML output to this
- // response object
- // $sXML is the response XML (returned from a getXML() method) to add to the
- // end of this response object
- // usage: $r1 = $objResponse1->getXML();
- // $objResponse2->loadXML($r1);
- // return $objResponse2->getXML();
- function loadXML($sXML)
- {
- $sNewXML = "";
- $iStartPos = strpos($sXML, "") + 5;
- $sNewXML = substr($sXML, $iStartPos);
- $iEndPos = strpos($sNewXML, " ");
- $sNewXML = substr($sNewXML, 0, $iEndPos);
- $this->xml .= $sNewXML;
- }
-
- // private method, used internally
- function _cmdXML($aAttributes, $sData)
- {
- $xml = " $sValue)
- $xml .= " $sAttribute=\"$sValue\"";
- if ($sData && !stristr($sData,' ";
- else if ($sData)
- $xml .= ">$sData";
- else
- $xml .= ">";
-
- return $xml;
- }
-
-}// end class xajaxResponse
-?>
\ No newline at end of file
diff --git a/milfs/xajax/xajax_js/xajax.js b/milfs/xajax/xajax_js/xajax.js
deleted file mode 100644
index 247b582..0000000
--- a/milfs/xajax/xajax_js/xajax.js
+++ /dev/null
@@ -1,551 +0,0 @@
-function Xajax()
-{
- if (xajaxDebug) this.DebugMessage = function(text) { alert("Xajax Debug:\n " + text) };
-
- this.workId = 'xajaxWork'+ new Date().getTime();
- this.depth = 0;
-
- //Get the XMLHttpRequest Object
- this.getRequestObject = function()
- {
- if (xajaxDebug) this.DebugMessage("Initializing Request Object..");
- var req;
- try
- {
- req=new ActiveXObject("Msxml2.XMLHTTP");
- }
- catch (e)
- {
- try
- {
- req=new ActiveXObject("Microsoft.XMLHTTP");
- }
- catch (e2)
- {
- req=null;
- }
- }
- if(!req && typeof XMLHttpRequest != "undefined")
- req = new XMLHttpRequest();
-
- if (xajaxDebug) {
- if (!req) this.DebugMessage("Request Object Instantiation failed.");
- }
-
- return req;
- }
-
- // xajax.$() is shorthand for document.getElementById()
- this.$ = function(sId)
- {
- if (!sId) {
- return null;
- }
- var returnObj = document.getElementById(sId);
- if (xajaxDebug && !returnObj && sId != this.workId) {
- this.DebugMessage("Element with the id \"" + sId + "\" not found.");
- }
- return returnObj;
- }
-
- // xajax.include(sFileName) dynamically includes an external javascript file
- this.include = function(sFileName)
- {
- var objHead = document.getElementsByTagName('head');
- var objScript = document.createElement('script');
- objScript.type = 'text/javascript';
- objScript.src = sFileName;
- objHead[0].appendChild(objScript);
- }
-
- // xajax.addHandler adds an event handler to an element
- this.addHandler = function(sElementId, sEvent, sFunctionName)
- {
- if (window.addEventListener)
- {
- eval("this.$('"+sElementId+"').addEventListener('"+sEvent+"',"+sFunctionName+",false);");
- }
- else
- {
- eval("this.$('"+sElementId+"').attachEvent('on"+sEvent+"',"+sFunctionName+",false);");
- }
- }
-
- // xajax.removeHandler removes an event handler from an element
- this.removeHandler = function(sElementId, sEvent, sFunctionName)
- {
- if (window.addEventListener)
- {
- eval("this.$('"+sElementId+"').removeEventListener('"+sEvent+"',"+sFunctionName+",false);");
- }
- else
- {
- eval("this.$('"+sElementId+"').detachEvent('on"+sEvent+"',"+sFunctionName+",false);");
- }
- }
-
- // xajax.create creates a new child node under a parent
- this.create = function(sParentId, sTag, sId)
- {
- var objParent = this.$(sParentId);
- objElement = document.createElement(sTag);
- objElement.setAttribute('id',sId);
- objParent.appendChild(objElement);
- }
-
- // xajax.insert inserts a new node before another node
- this.insert = function(sBeforeId, sTag, sId)
- {
- var objSibling = this.$(sBeforeId);
- objElement = document.createElement(sTag);
- objElement.setAttribute('id',sId);
- objSibling.parentNode.insertBefore(objElement, objSibling);
- }
-
- this.getInput = function(sType, sName, sId)
- {
- var Obj;
- if (sType == "radio" && !window.addEventListener)
- {
- Obj = document.createElement(' ');
- }
- else
- {
- Obj = document.createElement('input');
- Obj.setAttribute('type',sType);
- Obj.setAttribute('name',sName);
- Obj.setAttribute('id',sId);
- }
- return Obj;
- }
-
- // xajax.createInput creates a new input node under a parent
- this.createInput = function(sParentId, sType, sName, sId)
- {
- var objParent = this.$(sParentId);
- var objElement = this.getInput(sType, sName, sId);
- objParent.appendChild(objElement);
- }
-
- // xajax.insertInput creates a new input node before another node
- this.insertInput = function(sBeforeId, sType, sName, sId)
- {
- var objSibling = this.$(sBeforeId);
- var objElement = this.getInput(sType, sName, sId);
- objSibling.parentNode.insertBefore(objElement, objSibling);
- }
-
- // xajax.remove deletes an element
- this.remove = function(sId)
- {
- objElement = this.$(sId);
- if (objElement.parentNode && objElement.parentNode.removeChild)
- {
- objElement.parentNode.removeChild(objElement);
- }
- }
-
- //xajax.replace searches for text in an attribute of an element and replaces it
- //with a different text
- this.replace = function(sId,sAttribute,sSearch,sReplace)
- {
- var bFunction = false;
-
- if (sAttribute == "innerHTML")
- sSearch = this.getBrowserHTML(sSearch);
-
- eval("var txt=document.getElementById('"+sId+"')."+sAttribute);
- if (typeof txt == "function")
- {
- txt = txt.toString();
- bFunction = true;
- }
- if (txt.indexOf(sSearch)>-1)
- {
- var newTxt = '';
- while (txt.indexOf(sSearch) > -1)
- {
- x = txt.indexOf(sSearch)+sSearch.length+1;
- newTxt += txt.substr(0,x).replace(sSearch,sReplace);
- txt = txt.substr(x,txt.length-x);
- }
- newTxt += txt;
- if (bFunction)
- {
- eval("newTxt =" + newTxt);
- eval('this.$("'+sId+'").'+sAttribute+'=newTxt;');
- }
- else if (this.willChange(sId,sAttribute,newTxt))
- {
- eval('this.$("'+sId+'").'+sAttribute+'=newTxt;');
- }
- }
- }
-
- // xajax.getFormValues() builds a query string XML message from the elements of a form object
- this.getFormValues = function(frm)
- {
- var objForm;
- var submitDisabledElements = false;
- if (arguments.length > 1 && arguments[1] == true)
- submitDisabledElements = true;
-
- if (typeof(frm) == "string")
- objForm = this.$(frm);
- else
- objForm = frm;
- var sXml = "";
- if (objForm && objForm.tagName == 'FORM')
- {
- var formElements = objForm.elements;
- for( var i=0; i < formElements.length; i++)
- {
- if (formElements[i].type && (formElements[i].type == 'radio' || formElements[i].type == 'checkbox') && formElements[i].checked == false)
- continue;
- if (formElements[i].disabled && formElements[i].disabled == true && submitDisabledElements == false) continue;
- var name = formElements[i].name;
- if (name)
- {
- if (sXml != '')
- sXml += '&';
- if(formElements[i].type=='select-multiple')
- {
- for (var j = 0; j < formElements[i].length; j++)
- {
- if (formElements[i].options[j].selected == true) sXml += name+"="+encodeURIComponent(formElements[i].options[j].value)+"&";
- }
- }
- else
- {
- sXml += name+"="+encodeURIComponent(formElements[i].value);
- }
- }
- }
- }
-
- sXml +=" ";
-
- return sXml;
- }
-
- // Generates an XML message that xajax can understand from a javascript object
- this.objectToXML = function(obj)
- {
- var sXml = "";
- for (i in obj)
- {
- try
- {
- if (i == 'constructor')
- continue;
- if (obj[i] && typeof(obj[i]) == 'function')
- continue;
-
- var key = i;
- var value = obj[i];
- if (value && typeof(value)=="object" &&
- (value.constructor == Array
- ) && this.depth <= 50)
- {
- this.depth++;
- value = this.objectToXML(value);
- this.depth--;
- }
-
- sXml += ""+key+" "+value+" ";
-
- }
- catch(e)
- {
- if (xajaxDebug) this.DebugMessage(e);
- }
- }
- sXml += " ";
-
- return sXml;
- }
-
- // Sends a XMLHttpRequest to call the specified PHP function on the server
- // * sRequestType is optional -- defaults to POST
- this.call = function(sFunction, aArgs, sRequestType)
- {
- var i,r,postData;
- if (document.body && xajaxWaitCursor)
- document.body.style.cursor = 'wait';
- if (xajaxStatusMessages == true) window.status = 'Sending Request...';
- if (xajaxDebug) this.DebugMessage("Starting xajax...");
- if (sRequestType == null) {
- var xajaxRequestType = xajaxDefinedPost;
- }
- else {
- var xajaxRequestType = sRequestType;
- }
- var uri = xajaxRequestUri;
- var value;
- switch(xajaxRequestType)
- {
- case xajaxDefinedGet:{
- var uriGet = uri.indexOf("?")==-1?"?xajax="+encodeURIComponent(sFunction):"&xajax="+encodeURIComponent(sFunction);
- if (aArgs) {
- for (i = 0; i");
- if (r.responseXML)
- xajax.processResponse(r.responseXML);
- else {
- alert("Error: the XML response that was returned from the server is invalid.");
- document.body.style.cursor = 'default';
- if (xajaxStatusMessages == true) window.status = 'Invalid XML response error';
- }
- }
-
- delete r;
- }
- if (xajaxDebug) this.DebugMessage("Calling "+sFunction +" uri="+uri+" (post:"+ postData +")");
- r.send(postData);
- if (xajaxStatusMessages == true) window.status = 'Waiting for data...';
- delete r;
- return true;
- }
-
- //Gets the text as it would be if it were being retrieved from
- //the innerHTML property in the current browser
- this.getBrowserHTML = function(html)
- {
- tmpXajax = this.$(this.workId);
- if (tmpXajax == null)
- {
- tmpXajax = document.createElement("div");
- tmpXajax.setAttribute('id',this.workId);
- tmpXajax.style.display = "none";
- tmpXajax.style.visibility = "hidden";
- document.body.appendChild(tmpXajax);
- }
- tmpXajax.innerHTML = html;
- var browserHTML = tmpXajax.innerHTML;
- tmpXajax.innerHTML = '';
-
- return browserHTML;
- }
-
- // Tests if the new Data is the same as the extant data
- this.willChange = function(element, attribute, newData)
- {
- if (!document.body)
- {
- return true;
- }
- var oldData;
- if (attribute == "innerHTML")
- {
- newData = this.getBrowserHTML(newData);
- }
- eval("oldData=document.getElementById('"+element+"')."+attribute);
- if (newData != oldData)
- return true;
-
- return false;
- }
-
- //Process XML xajaxResponses returned from the request
- this.processResponse = function(xml)
- {
- if (xajaxStatusMessages == true) window.status = 'Processing...';
- var tmpXajax = null;
- xml = xml.documentElement;
- if (xml == null) {
- alert("Error: the XML response that was returned from the server cannot be processed.");
- document.body.style.cursor = 'default';
- if (xajaxStatusMessages == true) window.status = 'XML response processing error';
- return;
- }
- for (i=0; i 1)
- {
- for (j=0; j
\ No newline at end of file
diff --git a/milfs/xajax/xajax_js/xajax_uncompressed.js b/milfs/xajax/xajax_js/xajax_uncompressed.js
deleted file mode 100644
index 247b582..0000000
--- a/milfs/xajax/xajax_js/xajax_uncompressed.js
+++ /dev/null
@@ -1,551 +0,0 @@
-function Xajax()
-{
- if (xajaxDebug) this.DebugMessage = function(text) { alert("Xajax Debug:\n " + text) };
-
- this.workId = 'xajaxWork'+ new Date().getTime();
- this.depth = 0;
-
- //Get the XMLHttpRequest Object
- this.getRequestObject = function()
- {
- if (xajaxDebug) this.DebugMessage("Initializing Request Object..");
- var req;
- try
- {
- req=new ActiveXObject("Msxml2.XMLHTTP");
- }
- catch (e)
- {
- try
- {
- req=new ActiveXObject("Microsoft.XMLHTTP");
- }
- catch (e2)
- {
- req=null;
- }
- }
- if(!req && typeof XMLHttpRequest != "undefined")
- req = new XMLHttpRequest();
-
- if (xajaxDebug) {
- if (!req) this.DebugMessage("Request Object Instantiation failed.");
- }
-
- return req;
- }
-
- // xajax.$() is shorthand for document.getElementById()
- this.$ = function(sId)
- {
- if (!sId) {
- return null;
- }
- var returnObj = document.getElementById(sId);
- if (xajaxDebug && !returnObj && sId != this.workId) {
- this.DebugMessage("Element with the id \"" + sId + "\" not found.");
- }
- return returnObj;
- }
-
- // xajax.include(sFileName) dynamically includes an external javascript file
- this.include = function(sFileName)
- {
- var objHead = document.getElementsByTagName('head');
- var objScript = document.createElement('script');
- objScript.type = 'text/javascript';
- objScript.src = sFileName;
- objHead[0].appendChild(objScript);
- }
-
- // xajax.addHandler adds an event handler to an element
- this.addHandler = function(sElementId, sEvent, sFunctionName)
- {
- if (window.addEventListener)
- {
- eval("this.$('"+sElementId+"').addEventListener('"+sEvent+"',"+sFunctionName+",false);");
- }
- else
- {
- eval("this.$('"+sElementId+"').attachEvent('on"+sEvent+"',"+sFunctionName+",false);");
- }
- }
-
- // xajax.removeHandler removes an event handler from an element
- this.removeHandler = function(sElementId, sEvent, sFunctionName)
- {
- if (window.addEventListener)
- {
- eval("this.$('"+sElementId+"').removeEventListener('"+sEvent+"',"+sFunctionName+",false);");
- }
- else
- {
- eval("this.$('"+sElementId+"').detachEvent('on"+sEvent+"',"+sFunctionName+",false);");
- }
- }
-
- // xajax.create creates a new child node under a parent
- this.create = function(sParentId, sTag, sId)
- {
- var objParent = this.$(sParentId);
- objElement = document.createElement(sTag);
- objElement.setAttribute('id',sId);
- objParent.appendChild(objElement);
- }
-
- // xajax.insert inserts a new node before another node
- this.insert = function(sBeforeId, sTag, sId)
- {
- var objSibling = this.$(sBeforeId);
- objElement = document.createElement(sTag);
- objElement.setAttribute('id',sId);
- objSibling.parentNode.insertBefore(objElement, objSibling);
- }
-
- this.getInput = function(sType, sName, sId)
- {
- var Obj;
- if (sType == "radio" && !window.addEventListener)
- {
- Obj = document.createElement(' ');
- }
- else
- {
- Obj = document.createElement('input');
- Obj.setAttribute('type',sType);
- Obj.setAttribute('name',sName);
- Obj.setAttribute('id',sId);
- }
- return Obj;
- }
-
- // xajax.createInput creates a new input node under a parent
- this.createInput = function(sParentId, sType, sName, sId)
- {
- var objParent = this.$(sParentId);
- var objElement = this.getInput(sType, sName, sId);
- objParent.appendChild(objElement);
- }
-
- // xajax.insertInput creates a new input node before another node
- this.insertInput = function(sBeforeId, sType, sName, sId)
- {
- var objSibling = this.$(sBeforeId);
- var objElement = this.getInput(sType, sName, sId);
- objSibling.parentNode.insertBefore(objElement, objSibling);
- }
-
- // xajax.remove deletes an element
- this.remove = function(sId)
- {
- objElement = this.$(sId);
- if (objElement.parentNode && objElement.parentNode.removeChild)
- {
- objElement.parentNode.removeChild(objElement);
- }
- }
-
- //xajax.replace searches for text in an attribute of an element and replaces it
- //with a different text
- this.replace = function(sId,sAttribute,sSearch,sReplace)
- {
- var bFunction = false;
-
- if (sAttribute == "innerHTML")
- sSearch = this.getBrowserHTML(sSearch);
-
- eval("var txt=document.getElementById('"+sId+"')."+sAttribute);
- if (typeof txt == "function")
- {
- txt = txt.toString();
- bFunction = true;
- }
- if (txt.indexOf(sSearch)>-1)
- {
- var newTxt = '';
- while (txt.indexOf(sSearch) > -1)
- {
- x = txt.indexOf(sSearch)+sSearch.length+1;
- newTxt += txt.substr(0,x).replace(sSearch,sReplace);
- txt = txt.substr(x,txt.length-x);
- }
- newTxt += txt;
- if (bFunction)
- {
- eval("newTxt =" + newTxt);
- eval('this.$("'+sId+'").'+sAttribute+'=newTxt;');
- }
- else if (this.willChange(sId,sAttribute,newTxt))
- {
- eval('this.$("'+sId+'").'+sAttribute+'=newTxt;');
- }
- }
- }
-
- // xajax.getFormValues() builds a query string XML message from the elements of a form object
- this.getFormValues = function(frm)
- {
- var objForm;
- var submitDisabledElements = false;
- if (arguments.length > 1 && arguments[1] == true)
- submitDisabledElements = true;
-
- if (typeof(frm) == "string")
- objForm = this.$(frm);
- else
- objForm = frm;
- var sXml = "";
- if (objForm && objForm.tagName == 'FORM')
- {
- var formElements = objForm.elements;
- for( var i=0; i < formElements.length; i++)
- {
- if (formElements[i].type && (formElements[i].type == 'radio' || formElements[i].type == 'checkbox') && formElements[i].checked == false)
- continue;
- if (formElements[i].disabled && formElements[i].disabled == true && submitDisabledElements == false) continue;
- var name = formElements[i].name;
- if (name)
- {
- if (sXml != '')
- sXml += '&';
- if(formElements[i].type=='select-multiple')
- {
- for (var j = 0; j < formElements[i].length; j++)
- {
- if (formElements[i].options[j].selected == true) sXml += name+"="+encodeURIComponent(formElements[i].options[j].value)+"&";
- }
- }
- else
- {
- sXml += name+"="+encodeURIComponent(formElements[i].value);
- }
- }
- }
- }
-
- sXml +=" ";
-
- return sXml;
- }
-
- // Generates an XML message that xajax can understand from a javascript object
- this.objectToXML = function(obj)
- {
- var sXml = "";
- for (i in obj)
- {
- try
- {
- if (i == 'constructor')
- continue;
- if (obj[i] && typeof(obj[i]) == 'function')
- continue;
-
- var key = i;
- var value = obj[i];
- if (value && typeof(value)=="object" &&
- (value.constructor == Array
- ) && this.depth <= 50)
- {
- this.depth++;
- value = this.objectToXML(value);
- this.depth--;
- }
-
- sXml += ""+key+" "+value+" ";
-
- }
- catch(e)
- {
- if (xajaxDebug) this.DebugMessage(e);
- }
- }
- sXml += " ";
-
- return sXml;
- }
-
- // Sends a XMLHttpRequest to call the specified PHP function on the server
- // * sRequestType is optional -- defaults to POST
- this.call = function(sFunction, aArgs, sRequestType)
- {
- var i,r,postData;
- if (document.body && xajaxWaitCursor)
- document.body.style.cursor = 'wait';
- if (xajaxStatusMessages == true) window.status = 'Sending Request...';
- if (xajaxDebug) this.DebugMessage("Starting xajax...");
- if (sRequestType == null) {
- var xajaxRequestType = xajaxDefinedPost;
- }
- else {
- var xajaxRequestType = sRequestType;
- }
- var uri = xajaxRequestUri;
- var value;
- switch(xajaxRequestType)
- {
- case xajaxDefinedGet:{
- var uriGet = uri.indexOf("?")==-1?"?xajax="+encodeURIComponent(sFunction):"&xajax="+encodeURIComponent(sFunction);
- if (aArgs) {
- for (i = 0; i");
- if (r.responseXML)
- xajax.processResponse(r.responseXML);
- else {
- alert("Error: the XML response that was returned from the server is invalid.");
- document.body.style.cursor = 'default';
- if (xajaxStatusMessages == true) window.status = 'Invalid XML response error';
- }
- }
-
- delete r;
- }
- if (xajaxDebug) this.DebugMessage("Calling "+sFunction +" uri="+uri+" (post:"+ postData +")");
- r.send(postData);
- if (xajaxStatusMessages == true) window.status = 'Waiting for data...';
- delete r;
- return true;
- }
-
- //Gets the text as it would be if it were being retrieved from
- //the innerHTML property in the current browser
- this.getBrowserHTML = function(html)
- {
- tmpXajax = this.$(this.workId);
- if (tmpXajax == null)
- {
- tmpXajax = document.createElement("div");
- tmpXajax.setAttribute('id',this.workId);
- tmpXajax.style.display = "none";
- tmpXajax.style.visibility = "hidden";
- document.body.appendChild(tmpXajax);
- }
- tmpXajax.innerHTML = html;
- var browserHTML = tmpXajax.innerHTML;
- tmpXajax.innerHTML = '';
-
- return browserHTML;
- }
-
- // Tests if the new Data is the same as the extant data
- this.willChange = function(element, attribute, newData)
- {
- if (!document.body)
- {
- return true;
- }
- var oldData;
- if (attribute == "innerHTML")
- {
- newData = this.getBrowserHTML(newData);
- }
- eval("oldData=document.getElementById('"+element+"')."+attribute);
- if (newData != oldData)
- return true;
-
- return false;
- }
-
- //Process XML xajaxResponses returned from the request
- this.processResponse = function(xml)
- {
- if (xajaxStatusMessages == true) window.status = 'Processing...';
- var tmpXajax = null;
- xml = xml.documentElement;
- if (xml == null) {
- alert("Error: the XML response that was returned from the server cannot be processed.");
- document.body.style.cursor = 'default';
- if (xajaxStatusMessages == true) window.status = 'XML response processing error';
- return;
- }
- for (i=0; i 1)
- {
- for (j=0; j